关于String str="abc"与String str= new String("abc")区别
来源:互联网 发布:教务系统的数据库设计 编辑:程序博客网 时间:2024/05/21 06:21
看到一个面试题说是String str1="abc"与String str2="abc"打印 str1==str2的结果,结果搞错了下面说明下这个问题,先看下代码
String str1 = "abc";String str2 = "abc";System.out.println(str1==str2);System.out.println("====================分割线=====================================");String str3 = new String("abc");String str4 = new String("abc"); System.out.println(str3==str4);
测试结果如下
解释下原因,第一个true是因为,String是final的,他存储在方法区的常量区,看下图
显然“abc”在常量区只有一份,所以在多的引用,都是指向内存中同一个地址,所以结果是true
但如果是new 一个String对象呢,结果就会有所不同,此时在堆区会有一个对象被创建,如下图
从图中可以看出使用new 创建字符串时,会在堆区(heap)创建一个对象,它们都会引用常量区的一个字符串,所以,str3和str4不同。
阅读全文
0 0
- 关于String str="abc"与String str= new String("abc")区别
- String str="abc" 与 String str = new String("abc")区别
- java中String str="abc"与String str1=new String("abc")区别
- 关于String str="abc"
- 关于String str="abc"
- String str="abc"和String str=new String("abc")的区别
- String str="abc"和String str=new String("abc")区别
- String str = new String("abc")和String str = "abc"区别
- Java 中 String str = new String(“abc”) & String str = “abc” 区别
- 关于String str =new String("abc")和 String str = "abc"的比较
- String str=new String()+"abc"
- String str="abc" 与 String str = new String("abc");详解
- String str="abc" 与 String str = new String("abc")
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- 关于String str = new String("abc")的详解
- java基础经典问题String str=new String("abc")和String str="abc"
- Java的内存机制 String str = "abc" 和String str = new String("abc")的区别
- CNN笔记:通俗理解卷积神经网络
- <button>和<input type="button">的区别
- js重写Date日期对象的add方法
- 2017 Multi-University Training Contest
- AR博物馆、景区实景导览工具、AR校园方案-十二居
- 关于String str="abc"与String str= new String("abc")区别
- maven
- ES6正则表达式扩展
- django中传参数给模板
- java写的AES文件加解密模块
- 深入分析java线程池的实现原理
- WebDAV服务漏洞利用工具DAVTest
- 性能优化-OnTrimMemory
- 技巧:Vimdiff 使用