1.string
答案:true false
分析:java中的变量以及基本数据类型的值都存在栈内存中,栈内存中的值是共享的。常量池的值也是共享的。
a变量:对于字符串常量的想加,在编译时就已经合并成"taobao",所以他会首先去字符串常量池看是否已经存在,所以a和message的指向地址是一样的.
b+c:由于编译器不会在运行前优化,而且字符串相加是通过StringBuilder来构造产生String,是一个新的对象,所以会存在于堆内存,自然地他们的地址就不一样。
答案:true false
分析:java中的变量以及基本数据类型的值都存在栈内存中,栈内存中的值是共享的。常量池的值也是共享的。
a变量:对于字符串常量的想加,在编译时就已经合并成"taobao",所以他会首先去字符串常量池看是否已经存在,所以a和message的指向地址是一样的.
b+c:由于编译器不会在运行前优化,而且字符串相加是通过StringBuilder来构造产生String,是一个新的对象,所以会存在于堆内存,自然地他们的地址就不一样。