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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 璇伶 中级黑马   /  2015-4-25 10:10  /  715 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 璇伶 于 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);

                }

       }
写运行结果并分析理由

6 个回复

倒序浏览
false
String s = "abc";//有一个对象
String value = new String ("abc");//有两个对象
回复 使用道具 举报
false
s==value比较的是s和value地址值,它们属于不同的对象,地址值也不同,所以打印结果为false
回复 使用道具 举报
结果是false ,因为虽然都是abc但是他们是不同的字符串,只是字符串的值相同。
用equals比的话结果是false。(s==value是不是比较两个字符串的地址?)
回复 使用道具 举报
结果是false~  第二个String使用new关键字实例化,这样会在内存中再创建一个新的abc,value变量就会指向新的内存地址~  这样一来他们比较的结果就是false~
回复 使用道具 举报
比较的是对象地址,不是其中的内容
回复 使用道具 举报
如果你分得清引用类型和基础类型的区别,你就明白了。字符串是引用的。
equals比较的是内存地址。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马