"=="和equals的区别

来源:互联网 发布:美玩吧软件 编辑:程序博客网 时间:2024/06/11 04:33

“==”对于基本数据类型,判断两个变量的值是否相等;而对于引用类型,则判断引用是否指向堆内存的同一块地址。

equal用于比较两个对象的值是否相同【不是比地址】

①String作为一个基本类型来使用

如果值不相同,对象就不相同,所以"==" 和equals结果一样

String s1 = "java";String s2 = "java";System.out.println(s1==s2);            //trueSystem.out.println(s1.equals(s2));    //true

如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。

如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。

②String作为一个对象来使用

String s1 = new String("java");String s2 = new String("java");System.out.println(s1==s2);            //falseSystem.out.println(s1.equals(s2));    //true




0 0
原创粉丝点击