课程
/后端开发
/Java
/Java入门第三季
为什么不是同一个
2015-08-20
源自:Java入门第三季 2-2
正在回答
s1是一个方法内部变量,在类加载、验证、准备、解析、初始化等过程中是不会对s1变量进行正式赋值的,只有在使用时才对其进行初始化。 String是一个对象,s3、s4的变量赋值隐藏了一个初始化实例的过程String s3 = new String(),既然s3与s4是不同的实例对象,那么它们的内存地址也就不一样了。当使用equals()方法时,s3与s4相等,是因为比较的是字符值而不是内存地址。
梁冲 提问者
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
1 回答为什么s1是变量? ( // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象) 当时==时是比较两个变量的地址?equals比较的是他们的内容值?
1 回答为什么s1是变量,运行时才知道具体值????
3 回答s1是变量,s4在运行时才知道具体值, 运行时指的是什么时候啊?这里不是一行行运行的吗?
2 回答我不理解:s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象,在我的代码中s3和s4应该是一样的呀,还有就是“ //定义字符串s3,保存“I love”和s1拼接后的内容”到底应该怎样写呀?求答
3 回答为什么s1==s2是true,s3==s4是false