JAVA注解怎么赋值
发布网友
发布时间:2022-04-22 06:58
我来回答
共1个回答
热心网友
时间:2022-06-17 02:17
Java运行时会维护一个String Pool(String池, String常量池, 字符串缓冲区)
String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。
而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区
String s = "a*";
创建s之前系统会先在"池子"中查找是否已经存在这个字符串, 如果存在则直接符号该字符串的句柄
如果不存在, 系统会创建一个新"a*"字符串, 并返回句柄, 以后再有"a*"被要求创建, 系统不会创建新的,而是直接返回已经存在的字符串的句柄
String s = new String("a*");
系统不会去"池子"中查找, 直接在内存中新开辟一块空间, 初始化为"a*",并返回句柄!