
String字符串
向往周全
菜鸟。
展开
-
使用双引号创建字符串跟直接使用new String()创建有什么区别
使用双引号创建字符串跟直接new String()创建有什么区别 JVM内存划分为 栈内存 堆内存 方法区内存,然而在方法区内存中有一块是划分给字符串常量池的,直接使用双引号创建字符串的形式会在第一次创建字符串的时候把字符串放到字符串常量池中,再次直接使用双引号创建字符串的时候,会去到字符串常量池中看是否存在要创建的字符串,如果存在那么会直接把内存地址赋值给标识符,如果不存在,才会在常量池 中重新创建一个新的字符串并把内存地址赋值给该标识符,所以有了上图的输出结果。 ...原创 2020-12-15 15:08:10 · 913 阅读 · 0 评论 -
String字符串一旦创建不可以更改?
String字符串一单创建不可以更改? 我这里不是改了么?什么情况??? 下面来解释一下吧 String s = "HelloWorld"; System.out.println(s);//HelloWorld s = "aaa123"; System.out.println(s);//aaa123 1.String是引用类型 2.s中保存内存地址 3.s重新指向aaa123 4.s是替换内存地址 都知道String是引用类型,既然是引用类型,那么s中保存的一定是指向内存中的某个内存地址,所以再给s重原创 2020-12-15 14:42:48 · 3403 阅读 · 1 评论