使用双引号创建字符串跟直接使用new String()创建有什么区别
使用双引号创建字符串跟直接new String()创建有什么区别JVM内存划分为 栈内存 堆内存 方法区内存,然而在方法区内存中有一块是划分给字符串常量池的,直接使用双引号创建字符串的形式会在第一次创建字符串的时候把字符串放到字符串常量池中,再次直接使用双引号创建字符串的时候,会去到字符串常量池中看是否存在要创建的字符串,如果存在那么会直接把内存地址赋值给标识符,如果不存在,才会在常量池 中重新创建一个新的字符串并把内存地址赋值给该标识符,所以有了上图的输出结果。...
复制链接