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

为什么s1是变量? ( // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象)

http://img1.sycdn.imooc.com//55d5af7d0001bb9f08340420.jpg为什么不是同一个

正在回答

1 回答

s1是一个方法内部变量,在类加载、验证、准备、解析、初始化等过程中是不会对s1变量进行正式赋值的,只有在使用时才对其进行初始化。 String是一个对象,s3、s4的变量赋值隐藏了一个初始化实例的过程String s3 = new String(),既然s3与s4是不同的实例对象,那么它们的内存地址也就不一样了。当使用equals()方法时,s3与s4相等,是因为比较的是字符值而不是内存地址。

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

梁冲 提问者

非常感谢!
2015-08-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么s1是变量? ( // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象)

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