黑马程序员技术交流社区

标题: 能看懂么? [打印本页]

作者: autumnforest    时间: 2015-11-12 00:53
标题: 能看懂么?
public class Exec8 {
        public static void main(String[] args) {
                String s1 = "a";
                String s2 = "b";
                String s3 = "ab";
                String s4 = "ab";
                System.out.println(s3 == s4); //结果为true,享元机制
                String s5 = "a" + "b";
                System.out.println(s3 == s5); //结果为true,常量优化机制
                String s6 = s1 + s2;
                System.out.println(s3 == s6); //结果为false,两个变量相加
                String s7 = new String("ab");
                System.out.println(s3 == s7); //结果为false,s7引用的实体在堆内存中
                final String s8 = "a";
                final String s9 = "b";
                String s10 = s8 + s9;
                System.out.println(s3 == s10); //结果为true,原理同s3 == s5,被final修饰的变量也是常量,同样享受常量优化机制
        }
}
作者: xiao15779706    时间: 2015-11-12 08:59
赞一个,感觉很厉害的样子。今天才刚开始学到String
作者: 洛荣神川    时间: 2015-11-12 09:34
学习了 ,使用字符串应该注意的细节
作者: z13561291    时间: 2015-11-12 12:33
不用== 用equals就有很多不同结果了吧?
作者: jia7604112    时间: 2015-11-12 23:11
感觉好复杂的样子
作者: 零尘    时间: 2015-11-12 23:14
==和 equals,是 java基础里面挺绕的东西,建议了解下底层知识




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2