java缓存池原理讲解

Java缓存池的原理讲解

本文内容

String.intern原理

String 类是一个不可变的类,即String 对象一旦创建就不允许修改。在java7之后,创建String 对象引用会判断该对象是否存在于缓存池,如果存在直接返回缓存池结果, 如果不存在,则会将当前堆中对象的引用存放在缓存池中,在返回其引用地址。

String a=new String(“a”) 和 String a="a"的区别

只有new生成的才是对象,每个对象之间互相独立,没有new的对象都是引用,即指向一个缓存池的地址。

String a = new String(“a”)

new一个新的对象存放在堆中。他们是独立的,也就是说,同时new两个相同值的字符串对象,他们本质上地址是不相同的,只是表面上值相同。

String a="a"

每次声明,JVM会先从字符串缓存池中查找是否有值为“a”的引用地址,如果有,则直接返回此地址,如果没有则将声明一个字符串常量并将其放入字符串缓存池中并返回此地址。

发布了42 篇原创文章 · 获赞 21 · 访问量 2886

猜你喜欢

转载自blog.csdn.net/Late_whale/article/details/103738723