字符串常量池(String Constant Pool)深入解析
来源:互联网 发布:淘宝专业版免费的模板 编辑:程序博客网 时间:2024/05/22 08:23
字符串常量池(String Constant Pool)
1:概述
字符串的分配和其他对象分配一样,是需要消耗高昂的时间和空间的,JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:
使用字符串常量池:每当我们创建字符串常量池时,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么久直接返回常量池中的实例引用,如果字符串不存在常量池中,就会实例化该字符串并且放到常量池中
由于String字符串的不可变性我们可以十分肯定常量池中一定不存在两个相同的字符串
2:分类
1:静态常量池
即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。
2:运行时常量池(Runtime Constant Pool)
1:是方法区的一部分,Class文件中除了有类的版本.字段.方法.接口等描述信息外,还有一项重要的数据就是常量池,用于存放编译器生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池存放
2;intern()方法
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(用equals(Object) 方法确定),则返回池中的字符串。否则,将此String 对象添加到池中,并返回此 String 对象的引用。
3:jvm常量池内存图
阅读全文
0 0
- 字符串常量池(String Constant Pool)深入解析
- java String深入constant pool
- Constant Pool常量池的概念
- The String Constant Pool
- Java字符串池(String Pool)深度解析
- String类的内存解析——字符串常量池
- Java String with Constant pool, heap&stack
- 关于 String对象 常量池 字符串常量
- 字符串拘留池(string interning pool)
- java string pool(java 字符串池)
- Java String Pool (字符串池)
- Java String类对象引用、字符串常量和String Pool 相互关系的学习
- Constant Pool
- String和字符串常量池
- String.intern()-字符串常量池
- String.intern()-字符串常量池
- 深入理解Java String 池概念(String pool concept)
- String和String Pool解析
- Nginx学习(2)
- 周六的交流17.10.28_网络安全
- input输入手机号每四位数增加个空格
- CPDA学员请注意:老师们又在研究课程新内容啦!
- spring AspectJ的Execution表达式
- 字符串常量池(String Constant Pool)深入解析
- 图像分割之(二)Graph Cut(图割)
- 创建用户故事地图的步骤
- CSS中的圣杯布局与双飞翼布局
- 如何使用appium desktop 获取Android APP 控件的id
- 2017-10-31C#引申的一个例题——不重复抽取元素的组合
- IOS项目新手引导页图片适配方案
- PCI/PCIe基础——配置空间
- SpringBoot和PostGIS环境搭建(Hibernate4)