JDK1.7之下的inern用法
来源:互联网 发布:java microservice 编辑:程序博客网 时间:2024/05/16 14:25
JDK1.7之下的inern用法:
String s = new String("1aaa"); s.intern(); String s2 = "1aaa"; System.out.println(s2 == s.intern()); trueSystem.out.println(s == s.intern()); false
String s = new String(“1aaa”);
生成了常量池的“1”和堆空间中的字符串对象。 s为堆空间的内存地址。
s.inern() 检查对象s是否在常量池中存在,如果存在然后返回该字符串在常量池中的地址。
String s2 = “1aaa”; s2指向的是“1aaa” 在常量池中的地址。因此
s2 == s.intern()为true。
String s3 = new String("1a") + new String("1a"); s3.intern(); String s4 = "1a1a"; System.out.println(s4 == s3.intern()); true
String s3 = new String(“1a”) + new String(“1a”);
在常量池中生成字符串la,并在堆中生成s3指向的堆空间,内容为lala。
此时常量池中没有lala
s3.intern(); 检查常量池中是否有lala,如果没有,则将lala放入常量池中。并返回常量池的地址。
s.inern检查常量池中是否存在某一个常量,如果存在则返回这个常量的值。
如果不存在,将字符串s的内容放入String常量池中,具体在JDK1.7中常量池不需要再存储一份对象了,可以直接存储堆中的引用,也就是s==s.inern 返回true。
PS: s==s.inern并不总是成立。如果常量池中已经存在了这个字符串,则s==s.inern并不相等。
阅读全文
0 0
- JDK1.7之下的inern用法
- String.inern的应用
- JDK1.5,JDK1.6,JDK1.7 各自的新特性
- JDK1.5后的实用新用法
- JDK1.7的性能
- 压力之下的团队概念
- myeclipse之下tomcat7的配置
- 关于图片之下的背景图片
- 奇怪的Python之下划线
- jdk1.7的新特性
- jdk1.7的新特性
- Jdk1.7环境变量的配置
- jdk1.7的新特性
- Jdk1.7环境变量的配置
- JDK1.7的新特性
- Jdk1.7环境变量的配置
- JDK1.7的新特性
- jdk1.7的新特性
- 第五章 数组与字符串 5.1 数组
- 矩阵、向量求导法则
- JavaWeb JSP 9个隐含对象
- Spring Web:Java 替代 web.xml 原理
- UVA 1609 Foul Play
- JDK1.7之下的inern用法
- (十七)SVG 实例-可交互式中国地图
- SuperSocket基础二
- Octave语法
- 排序算法之插入排序(Java)
- 如何自定义注解实现简单的权限控制
- 小白算法练习 简单背包问题专题004 多重背包 二进制化 POJ dp
- P1433 吃奶酪
- 热传播测地线距离的计算