Java中的字符串
Java中的字符串
在日常工作或者面试题目中经常会问道,字符串是否相等的问题,其实考察的知识点就是,字符串的创建。
- 通过字面量(直接通过双引号"")声明字符串的方式, 虚拟机首先会到字符串常量池中查找该字符串是否已经存在. 如果存在会直接返回该引用, 如果不存在则会在堆内存中创建该字符串对象, 然后到字符串常量池中注册该字符串。
- 使用new关键字创建字符串对象的时候,JVM将不会查询字符串常量池, 它将会直接在堆内存中创建一个字符串对象, 并返回给所属变量.
- 当调用intern()方法时, 首先会去常量池中查找是否有该字符串对应的引用, 如果有就直接返回该字符串; 如果没有, 就会在常量池中注册该字符串的引用, 然后返回该字符串