黑马程序员技术交流社区

标题: java基础测试 [打印本页]

作者: 璇伶    时间: 2015-4-25 10:10
标题: java基础测试
本帖最后由 璇伶 于 2015-4-25 20:18 编辑

public class Test {

                public static void main(String[] args) {

                       String s = "abc";
                       String value = new String ("abc");
                       System.out.println(s == value);

                }

       }
写运行结果并分析理由
作者: lily15    时间: 2015-4-25 10:26
false
String s = "abc";//有一个对象
String value = new String ("abc");//有两个对象
作者: qian0217wei    时间: 2015-4-25 10:42
false
s==value比较的是s和value地址值,它们属于不同的对象,地址值也不同,所以打印结果为false
作者: wu1123    时间: 2015-4-25 10:45
结果是false ,因为虽然都是abc但是他们是不同的字符串,只是字符串的值相同。
用equals比的话结果是false。(s==value是不是比较两个字符串的地址?)
作者: 大西洋    时间: 2015-4-25 10:59
结果是false~  第二个String使用new关键字实例化,这样会在内存中再创建一个新的abc,value变量就会指向新的内存地址~  这样一来他们比较的结果就是false~
作者: ixue    时间: 2015-4-25 11:06
比较的是对象地址,不是其中的内容
作者: 1017161726    时间: 2015-4-25 11:49
如果你分得清引用类型和基础类型的区别,你就明白了。字符串是引用的。
equals比较的是内存地址。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2