永发信息网

java中eques与==的区别

答案:1  悬赏:40  手机版
解决时间 2021-04-16 00:15
java中eques与==的区别
最佳答案

String s1 = null;
String s2 = null;
System.out.println(s1==s2);//true
//System.out.println(s1.equals(s2));//NullPointerException
s1 = s2;
System.out.println(s1==s2);//true
//System.out.println(s1.equals(s2));//NullPointerException
System.out.println("***1***");


s1 = null;
s2 = "";
System.out.println(s1==s2);//false
//System.out.println(s1.equals(s2));//NullPointerException
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***2***");


s1 = "";
s2 = null;
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//false
s1 = s2;
System.out.println(s1==s2);//true
//System.out.println(s1.equals(s2));//NullPointerException
System.out.println("***3***");


s1 = "";
s2 = "";
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***4***");
s1 = new String("");
s2 = new String("");
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//true
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***5***");


s1 = "null";
s2 = "null";
System.out.println(s1==s2);//ture
System.out.println(s1.equals(s2));//true
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***6***");
s1 = new String("null");
s2 = new String("null");
System.out.println(s1==s2);//flase
System.out.println(s1.equals(s2));//true
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***7***");


s1 = "abc";
s2 = "abc";
System.out.println(s1==s2);//ture
System.out.println(s1.equals(s2));//true
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***8***");
s1 = new String("abc");
s2 = new String("abc");
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//true
s1 = s2;
System.out.println(s1==s2);//true
System.out.println(s1.equals(s2));//true
System.out.println("***9***");


总结:


凡是比较基本类型只能用==,比较结果你看到的字面值相等就会相等,


什么叫基本类型? byte,short,int,long,char,float,double这几种就是基本类型.基本类型不是对象所以不存在用equals比较.
凡是比较引用类型(对象),==比较的是两个引用是不是指向同一个内存地址,equals比较的是两个引用的字面值是不是相同,什么叫字面值?你能看到的值就是字面值,比如:String s="abc"; abc就是字面值.
基本类型的包装类型是对象类型,所以除非两个相同字面值的引用指向同一内存地址,值才会相等,比如:
Integer a=new Integer(3);Integer b=a;//互相赋值这样用等号或equals比较都会得出true,记住一点,凡是两个引用都用了new去初始化,那==比较的结果都只会是false,互相之间有了赋值,比较结果就为true.
比较不好理解的一点:
String a="abc";
String b="abc";
a==b和a.equals(b);结果都会为true,因为没有用new去新建对象,其实a和b都指向的是同一个String对象"abc",改成:
String a=new String("abc");
String b=new String"abc");
后==的结果就是false了.总之参照上面的说明,不难理解.

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
空间怎么升级?四大空间指数需要达到多少?
听说我国有在外国建立场地的打算?
上海高中招收外地学生。。
What do you plan ________ tonight? A.w
新婚朋友圈祝福语,简易的祝福语发送朋友圈
京鲁医药(荫子镇耩上村中心卫生室西南)地址有
One stone kills two birds.是什么意思?
诛仙2终级合欢的暴击加点法 高手进
描写农村风光诗词,养生诗词
诛仙里帮派灵气有什么用啊
从广东到云南腾冲的汽车有没有
The day is not far away___modern communica
湖北省,农村户口好还是城市户口好?
怎样查一个药品是否是医保品种
用显微镜观察根尖纵切片,先用10倍的物镜,后
推荐资讯
今天的火箭对阵爵士的比赛谁赢?
eexcel表格 我想打一下那个时间表,8点到8点3
男丁又穷想复修阳宅现座正东向西大门艮寅山头
求救催收函的格式?
忠祥装饰城这个地址在什么地方,我要处理点事
为什么我的CF登入后进不去?????
我这个是什么罗汉
思想道德教育的核心是什么啊?
切沃VSAC米兰哪个电视转播?
矩阵里面E(A)是什么
人,能够拥有十全十美吗?
3DMAX9安装问题 拜托了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?