A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白春秋 中级黑马   /  2015-3-8 09:56  /  1020 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String  str1="abc";
String  str1=new String("abc");
这两种方法有区别在哪里呢,最好说得简单的

3 个回复

倒序浏览
第一句话,将一个String 类型的引用  指向若缓冲区中已存在的字符串“abc”,则str1指向该字符串,没有在堆内存中创建对象,如不存在则创建字符串“abc”,并指向它,在堆内存中创建了一个对象。
第二句话,先在堆内存中申请一块内存,其中的赋值为“abc”,并用字符串引用str1 指向该字符串。

回复 使用道具 举报
这个标题怎么看着和问题没啥关系呢
回复 使用道具 举报
我讲下自己的简单理解,我认为第一个是“定义一个abc  String型变量赋值给str1      第二个是创建一个String 的新对象,并给值abc   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马