String

2019-10-31 16:04:45来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

String

/**
 * String 没有显示的继承关系,则默认继承Object
 *  会继承Object中的方法,如equals,String中对equals进行了重写
 *  重写之后比较的是字符串的值是否相等
 *  Object中的equals中怎么比较两个对象是否相等,就是 == 比较
 *  == 比较的是内容的地址
 *  Student类如果没有重写equals,则通过equals比较两个始终是否相等,等价 ==
 *  
 *  自己重写equals方法,判断两个学生是否相等
 *  
 */
public class StringDemo {

    public static void main(String[] args) {
        //存储在常量区:先找,如果没有再创建
        String s1 = "Hello Java!";
        String s2 = "Hello Java!";
        // new 是在堆中,每new一次,就会在堆中新建一次
        String s3 = new String("Hello Java!");
        String s4 = new String("Hello Java!");

        // == 比较的是地址
        System.out.println(s1 == s2);//true
        System.out.println(s1 == s3);//false
        System.out.println(s3 == s4);//false
        //编译器对final修饰的变量,在编译期会进行宏替换
        final String s5 = "Hello Java";
        String s6 = s5 + "!";//编译之后的结果
        System.out.println(s1 == s6);//true;当去掉final,就为false
    }
    
}


原文链接:https://www.cnblogs.com/w1357988857/p/11771498.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:@EnableTransactionalManager 发生了什么

下一篇:关于如何获取项目所部署的本机IP和端口的问题