new String和调用intern() 的关系
来源:互联网 发布:网络营销策划方案例文 编辑:程序博客网 时间:2024/06/04 23:28
一、变量地址改成intern 池中地址,还是保持堆地址不变
当new String 一个对象时,想把字符存入Intern池中,哪么调用.intern().
jvm 首先查找:如有池中没有,则在池中建立一个字符串,返回地址,哪么变量的地址指向池中新建的地址。
如有池中有了,则变量的地址不变,还是堆地址,但是.intern()=Intern池中地址
1、例子1
String str1 = new String("you")+ new String("can");System.out.println(str1.intern() == str1);
System.out.println(str1 == "youcan"); true
true
2、例子2
String str2 = "youcan";//新加的一行代码,其余不变String str1 = new String("you")+ new String("can");
System.out.println(str1.intern() == str1);
System.out.println(str1 == "youcan"); false
false
3、图形解释
图1:str1.intern(),首先看Intern 池有没有youcan,没有则Intern 池建立一个 youcan,返回地址01,str1地址由堆地址=04改成=池中01
str1.intern() =01=str1,youcan=01=str1
图2:str1.intern(),首先看Intern 池有没有youcan,有则返回地址str1.intern()=01, 但是str地址不变,还是堆地址=04
str1.intern()=01 不等于 str=04 false
youcan=01 不等于 str1=04 false
阅读全文
0 0
- new String和调用intern() 的关系
- Java的String和intern
- String的赋值操作,intern,==等的关系
- a string intern pool,new string 存贮
- String中intern的方法 String.intern();
- String.intern()详解,关于String s2 = new String("ja") + new String("va"); s2.intern();
- String的intern()方法
- string里面的intern()
- String的intern方法
- String的Intern方法
- string的intern()方法
- String.intern()的使用
- Java (JDK7)中的String常量和String.intern的实现
- String.intern、new String()、以及String =""总结:
- String中intern的方法
- String中intern的方法
- String中intern的方法
- Java -- String的intern方法
- 使用Servlet Filter实现系统登录权限校验
- Kotlin基础教程-访问修饰符
- pandas 下的 one hot encoder 及 pd.get_dummies() 与 sklearn.preprocessing 下的 OneHotEncoder 的区别
- Synchronized关键字的使用
- android利用servlet获取服务器数据库数据进行登录
- new String和调用intern() 的关系
- js 获取多选框CheckBox选中及选中值
- 1222: 排序
- [JavaEE] 使用Apache Common Lang包中的 EqualsBuilder和HashCodeBuilder
- Mybatis id自增,插入数据后返回id
- 物资调度
- SDUT 3920 Special Judge Ⅱ
- Java内存模型
- git常用命令-工作中常用