String a =new String(“abc”);和String b=”abc”;的区别
来源:互联网 发布:java 浅拷贝 编辑:程序博客网 时间:2024/04/29 10:28
看图有助于理解:
String a =new String(“abc”)实际上是创建了两个对象(假设之前String的常量池中没有创建任何对象),一个是“abc”,是new String()。“abc”创建后就会放入常量池中(下次创建 String对象时先查找常量池 有需要的就使用, 没有就重新创建并存入常量池),而String a=new String(“abc”)这是在堆里面创建了一个空白对象 ,并将a初始化(如图),在去查找常量池是否有“abc”。因之前已创建,所以就直接使用常量池中的“abc”的一份拷贝(副本)放人对应堆中地址(这两块内存中的内容是一眼的,用equals()可以得出)。
可参考==与equals:http://blog.csdn.net/fiempty/article/details/8640605
初学java以上说明如有不妥之处,请见谅。
- String a =new String(“abc”);和String b=”abc”;的区别
- String a="abc"和String b=new String("abc")的区别及String相关常用操作
- String a = "abc" 与String b = new String("abc")的区别
- new String("abc")与String a="abc"的区别
- new String("abc")和“abc”的区别
- new String("abc")和“abc”的区别
- String a = "abc" 和String a = new String("abc")的不同
- Java栈与堆 数据类型包装类的值不可修改 String a =“abc”和 String b = new String("abc")的区别
- String str1="abc";和String str2=new String("abc");的区别
- String s="abc"和String s=new String("abc")的区别
- String str1="abc";和String str2=new String("abc");的区别
- String str="abc"和String str=new String("abc")的区别
- String str1="abc";和String str2=new String("abc");的区别
- String s1 = new String("abc")和String s2 = "abc"的区别
- String str1="abc";和String str2=new String("abc");的区别
- 关于JAVA中String="abc"和String=new String("abc")的区别与联系
- 有如下4个变量: String a="abc"; String b="abc"; String c=new String("abc"); String d=new String("abc"); 为什么
- 学习笔记之区分String a="abc"; String b="abc"; String c=new String("abc"); String d=new String("abc");
- 基础备忘之c++内存分布:代码段、全局数据区、栈、堆
- 如何在 Linux 服务器上安装 Red5?
- 配置hadoop平台
- eclipse 的 Red5 插件安装简介
- 解决jQuery的EasyUI的datagrid数据表格中行的垂直居中问题。
- String a =new String(“abc”);和String b=”abc”;的区别
- DNS的最简化搭建
- 如何使用 Red5 插件创建 Red5 项目?
- OpenCV2.4版本学习笔记(一)
- 递归与尾递归总结
- JavaScript就这么回事(好收藏,哪天忘了可以查一查)
- 路线图
- struts2项目之与普通web的区别(一)
- 使用 Eclipse 创建第一个 Red5 应用程序示例 - 使用 Red5 在线录制视频