在java语言中,经常会使用equal 和 ==,具体区别如下:
==:
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
1、比较的是操作符两端的操作数是否是同一个对象。
2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如:
int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆。
equals:
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。
String s="abce"是一种非常特殊的形式,和new 有本质的区别。它是java中唯一不需要new 就可以产生对象的途径。以String s="abce";形式赋值在java中叫直接量,它是在常量池中而不是象new一样放在压缩堆中。
这种形式的字符串,在JVM内部发生字符串拘留,即当声明这样的一个字符串后,JVM会在常量池中先查找有有没有一个值为"abcd"的对象。
如果有,就会把它赋给当前引用.即原来那个引用和现在这个引用指点向了同一对象,如果没有,则在常量池中新创建一个"abcd",下一次如果有String s1 = "abcd";又会将s1指向"abcd"这个对象,即以这形式声明的字符串,只要值相等,任何多个引用都指向同一对象.
而String s = new String("abcd");和其它任何对象一样.每调用一次就产生一个对象,只要它们调用。
也可以这么理解: String str = "hello"; 先在内存中找是不是有"hello"这个对象,如果有,就让str指向那个"hello".如果内存里没有"hello",就创建一个新的对象保存"hello".
String str=new String ("hello") 就是不管内存里是不是已经有"hello"这个对象,都新建一个对象保存"hello"。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等
参考资料:百度百科——java
equal和==有什么区别
功能不同: "=="是判断两个变量或实例是不是指向同一个内存空间。 "equals"是判断两个变量或实例所指向的内存空间的值是不是相同。 扩展资料 运行速度不同:"=="比"equals"运行速度快,因为"=="只是比较引用。"equals"比"=="运行速度要慢。equals()方法特点:1、自反性:x.equals(...
equal 和 == 的区别
在java语言中,经常会使用equal 和 ==,具体区别如下:==:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。1、比较的是操作符两端的操作数是否是同一个对象。2、两边的操作数必须是同一类型的(可以...
equal 和 == 的区别
equal比较值,==比较地址
Java中关于==和equal的区别 以及equals方法重写
== 和 Equals 的区别 1. == 是一个运算符。2.Equals则是string对象的方法,可以.(点)出来。我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较 1、基本数据类型比较 ==和Equals都比较两个值是否相等。相等为true 否则为false;2、引用对象比较 ==和Equals都是比较栈内存中的地址...
Java中==和equal有什么区别
如str1与str2、str2与str3、str1与str3的比较结果。总的来说,"=="关注的是对象的引用,而equals()关注的是对象内容的匹配。记住,对于字符串和数组等引用类型,通常我们使用equals()进行值的比较,而对于基本类型,如int,使用"=="就足够了,因为它们没有自己的equals()方法。
==和equel的区别
==比较是否为同一个对象,而equal比较值是否相同
Java中==和equal有什么区别
Java中==和equal的区别为:1、== 表示 判断2个变量或对象实例是否指向同一个内存空间,equals()表示 判断2个变量或对象实例所指向的内存空间的值是否相同。2、== 表示 对内存地址进行比较,equals()表示 对字符串的内容进行比较。3、== 表示引用是否相同,equals() 表示值是否相同。
Java中关于==和equal的区别 以及equals方法重写
“==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。public boolean equals(Object obj) { if(this == obj)return false;if(obj == null)return false;if(getClass() != obj.getClass() )return false;MyClass other = (MyClass)obj...
java中equals和==有什么区别,判断变量是否为空时null放在前和放在后有...
equals 只是比较值是否相同 而==则是比较两个变量 是不是同一个变量,也应时是说 要看看这两个变量是不是引用的同一个地址,java 中只有引用地址相同的两个变量才被视为== 如果明白值传递与地址传递的话,这个问题应该不难理解 null放在前面就是为了避免变量为空时 引了空指针异常 如: if(a==...
equals是什么意思(equals和等号的区别)
equal的意思有:adj.平等的;相等的;胜任的 vt.等于;比得上 n.对手;匹敌;同辈;相等的事物 equals,电脑的编程语言,被用来检测两个对象是否相等,即两个对象的内容是否相等。equals和等号的区别 这里的等号应当是双等号,即==,这二者都用于比较2个元素是否相等,但有着本质区别。如果是基本类型...