String s1 = “abc”和 String s2 = new String(“abc”)到底创建了几个对象
由于String 对象赋值后不能再修改,这就是不可变对象,如果对字符串修改,那么将会创建新的对象。注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里,如果是运行时对字符串相加或相减会放到堆中(放之前会先验证方法区中是否含有相同的字符串常量,如果存在,把地址返回,如果不存在,先将字符串常量放到池中,然后再返回该对象的地址)观察以下代码:public class StringTest02 {public static void main(String[] args) { S
原创
2021-10-15 22:02:14 ·
1935 阅读 ·
0 评论