介绍
这篇文章主要介绍了java中==与=有什么区别,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
对比分析:
==:它的作用是判断两个对象的地址是不是相等。即:判断两个对象是不是同一个对象。(基本数据类型比较的是值,引用数据类型==比较的是内存地址)。
=():它的作用也是判断两个对象是否相等。但它一般有两种使用情况,如下:
情况1:类没有覆盖=()方法。则通过=()比较该类的两个对象时,等价于通过==比较这两个对象。
情况2:类覆盖了=()方法。一般,我们都覆盖=()方法来两个对象的内容相等;若它们的内容相等,则返回真正的(即,认为这两个对象相等)。
代码示例:
公共类test1 { 公共静态void main (String [] args) { 字符串a=新的字符串(“ab");//一个为一个引用 字符串b=新的字符串(“ab");//b为另一个引用,对象的内容一样 字符串aa=癮b";//放在常量池中 字符串bb=癮b";//从常量池中查找 如果(aa==bb)//真实的 System.out.println (“aa==bb"); 如果(a==b)//假,非同一对象 System.out.println (“==b"); 如果(a.equals (b))//真实的 System.out.println (“aEQb"); 如果(42==42.0)//真实的 System.out.println (“true"); } }
字符串中平等的方法是被重写过的,因为对象的=方法是比较的对象的内存地址,而字符串的=方法比较的是对象的值。当创建字符串类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个字符串对象。
感谢你能够认真阅读完这篇文章,希望小编分享java中==与=有什么区别内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!