为了账号安全,请及时绑定邮箱和手机立即绑定

s1,s2只创建一个,这是一种java规定么?还是什么语法?

String s1 = "爱慕课"

String s2 = "爱慕课" 

// 讲解中说多次出现的字符常量,java编译程序只创建一个,所以返回true,下面又说s1是堆中开辟了空间的。我想问,这分明是两个对象啊,在堆中创建的怎么还能只创建一个呢?这是一种java规定(死记硬背?)么?为什么new出来的就不只创建一个呢

而且创建的到底是字符常量还是对象啊?

还有就是有new和没有new的区别?

正在回答

1 回答

java中对象是通过new关键字创建出来的,比如Object o=new Object();new 出来的具体类才是对象,而o只是引用,保存对象在内存中的地址;但是字符串比较特殊,String s1="爱慕课"; s1是引用,"爱慕课" 是对象;如果String s1=new String("爱慕课");这是就创建两个对象,一个是 new 出来的;一个是:“爱慕课” 本身;

5 回复 有任何疑惑可以回复我~
#1

花小明 提问者

非常感谢!
2016-07-22 回复 有任何疑惑可以回复我~
#2

花小明 提问者

后者,如果s1也是对象,那s1还是“爱慕课”的引用了么
2016-07-22 回复 有任何疑惑可以回复我~
#3

花小明 提问者 回复 花小明 提问者

还是s1也只是一个未知对象的引用...
2016-07-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

s1,s2只创建一个,这是一种java规定么?还是什么语法?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信