字符串专栏复习

首先考虑String的两种创建方式:

String a="1"

String b=new String("1")

这里我们就直接说结果,a="1"是直接去常量池里面找,有就栈引用,没有创建再引用

new String("1")是通过new对象引用,先去常量池寻找有“1”,有就在堆中创建字符串对象,引用的常量池的“1”,然后栈引用堆的对象。

这里有一个知识点,直接引用常量池和创建堆引用常量池。

String有一个本地方法,可以直接调用线程池里的字符串,

字符串专栏复习_第1张图片

 如果我们都使用new String来创建字符串,每次都会在堆里面创建对象,造成很大的资源浪费,所以我们直接用="",只要常量池里面有,所有的引用都是一样的。

你可能感兴趣的:(java基础,java,jvm,javascript)