作者:丶Pz https://www.cnblogs.com/panzi/p/11956782.html 在之前的面试经历中,对于 的考察还是挺频繁的,大致考察以下几个知识点: String 常量池 new String() == 和 equals 的区别 native 方法 String.inte ...
分类:
编程语言 时间:
2020-05-22 09:35:12
阅读次数:
72
众所周知,JDK1.8版本中, String常量池 已经从 方法区 中的 运行时常量池 分离到堆中了,那么在堆中的 String常量池 里存的是String对象还是引用呢?直接查看API: 翻译:String类的intern()方法:一个初始为空的字符串池,它由类String独自维护。当调用 int ...
分类:
其他好文 时间:
2020-04-26 18:48:25
阅读次数:
171
1. String StringBuffer StringBuilder区别 StringBuffer线程安全 StringBuilder 非线程安全 String 常量池字符串的引用 2. final 关键字 变量: 初始化之后值不可修改 类: 不能被继承 方法: 防止继承类修改其含义 3. sy ...
分类:
编程语言 时间:
2020-03-31 21:19:00
阅读次数:
74
一、两种创建字符串类型的方法 String str1="Iloveyou";//str1变量值为地址值(这里存疑吧,目前水平还不够,貌似Java中是哈希码),字符串放入String常量池,不开辟新空间 String str2=new String("Iloveyou");//str2变量为地址值(同 ...
分类:
编程语言 时间:
2020-03-13 20:35:09
阅读次数:
66
享元模式 含义: 说到享元模式,第一个想到的应该就是池技术了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。 比如我们每次创建字符串对象时,都需要创建一个新的字符串对象的话,内存开销会很大,所以如果第一次创建了字符串对象“adam“,下次再创建 ...
分类:
其他好文 时间:
2020-02-17 20:06:14
阅读次数:
80
https://www.cnblogs.com/panzi/p/11956782.html 前言 在之前的面试经历中,对于String的考察还是挺频繁的,大致考察以下几个知识点: String 常量池 new String() == 和 equals 的区别 native 方法 String.int ...
分类:
编程语言 时间:
2019-11-29 14:25:09
阅读次数:
69
1:JVM为了减少字符串对象重复创建,其维护了一个特殊的内存,这段内存就是字符串常量池 2:使用new创建的字符串对象,如果想将这个对象的引用加入到字符串常量池,可以使用intern方法;str1.intern() 3:字符串常量池存放的是对象引用,不是对象本身 4:字符串常量池实现的前提条件就是J ...
分类:
其他好文 时间:
2019-05-23 14:27:32
阅读次数:
119
Java内存分配: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,以及成员方法中的局部变量 ◆堆:存放对象本身(成员变量+成员方法的引用) ◆静态域:存放在对象中用static定义的静态成员 ◆常量池:存放常量 ◆非RAM存储:硬盘等永久存储空间 栈的存取速度比堆快,仅次于寄 ...
分类:
编程语言 时间:
2019-05-12 15:53:47
阅读次数:
153
使用synchronized的时候,一般要防止String 常量池造成的坑。 比如,一个函数中包含: synchronized("A") { } 还有另外一个函数中包含: synchronized("A") { } 因为常量池的原因 :比如下面,A和B实际上是同一个对象。 String a = "A ...
分类:
其他好文 时间:
2018-11-01 01:08:19
阅读次数:
208
public class TestString { public static void main(String[] args) { /** * **** String类型、包装类型、常量池(与堆、栈) * * * 1)== :比较桟区地址 * 2)equals:String/Integer的 eq ...
分类:
其他好文 时间:
2018-08-29 01:01:53
阅读次数:
195