public class EqualTest {
public static void main(String[] args) {
//对于基本类型的变量。"=="和"equal"的区别
int
t1=57;
int
t2=67;
int
t3=124;
int
t4=124;
//“==”对于基本数据类型,判断两个变量的值是否相等。
Boolean
result1=(t1==t2);
Boolean
result2=((t1+t2)==t3);
Boolean
result3=(t3==t4);
System.out.println("\n\n-----【t1==t2】"+result1+"\n-----【(t1+t2)=t3】"+result2+"\n-----【t3=t4】"+result3);
//“equal”不能用于基本数据类型。只能用于类变量。对于基本数据类型要用其包装类。
Integer
i1=new Integer(t1);
Integer
i2=new Integer(t2);
Integer
i3=new Integer(t3);
Integer
i4=new Integer(t4);
Boolean
ri1=i1.equals(i2);
Boolean
ri2=i3.equals(i1+i2);
Boolean
ri3=i3.equals(i4);
System.out.println("\n\n-----【i1.equals(i2)】"+ri1+"\n-----【i3.equals(i1+i2)】"+ri2+"\n-----【i3.equals(i4)】"+ri3);
//对于对象变量,"=="和"equal"的区别
String
st1="wasiker ";
String
st2="is super man";
String
st3="wasiker is super man";
String
st4="wasiker is super man";
Boolean
b1=(st1==st2);
Boolean
b2=(st1+st2)==st3;
Boolean
b3=(st3==st4);
System.out.println("\n\n-----【st1==st2】"+b1+"\n-----【(st1+st2)==st3】"+b2+"\n-----【st3==st4】"+b3);
//因为对象变量的存储的是对象在内存中的路径,即内存地址。所以用“==”比较时,即使
//对象的值相等,但是他们的内存地址不同,所以==的结果为false。故“==”用于比较两
//个变量的值是否相等,而不是变量引用的对象是否相等
Boolean
r1=st1.equals(st2);
Boolean
r2=(st1+st2).equals(st3);
Boolean
r3=st3.equals(st4);
System.out.println("\n\n-----【st1.equals(st2)】"+r1+"\n-----【(st1+st2).equals(st3)】"+r2+"\n-----【st3.equals(st4)】"+r3);
//equal用于比较两个对象是否相同。
}
}
运行结果为:
-----【t1==t2】false
-----【(t1+t2)=t3】true
-----【t3=t4】true
-----【i1.equals(i2)】false
-----【i3.equals(i1+i2)】true
-----【i3.equals(i4)】true
-----【st1==st2】false
-----【(st1+st2)==st3】false
-----【st3==st4】true
-----【st1.equals(st2)】false
-----【(st1+st2).equals(st3)】true
-----【st3.equals(st4)】true
总之:
“==”比较的是值【变量(栈)内存中存放的对象的(堆)内存地址】
equal用于比较两个对象的值是否相同【不是比地址】
【特别注意】Object类中的equals方法和“==”是一样的,比较的是地址,没有区别,而String类,Integer类等等一些类,是重写了equals方
法,才使得equals和“==不同”,所以,当自己创建类时,自动继承了Object的equals方法,要想实现不同的等于比较,必须重写equals方法。
"=="比"equal"运行速度快,因为"=="只是比较引用
转自:http://blog.sina.com.cn/s/blog_608105cb0100i59b.html
分享到:
相关推荐
### equal与==的区别 在Java编程语言中,`equal`方法和`==`操作符都是用来比较对象之间是否相等的工具,但它们之间存在重要的差异。本文将从三个方面进行详细的对比分析:字符串的比较、非字符串对象的比较以及基本...
Java 中关于 == 和 equal 的区别 及其 equals() 方法重写 Java 语言是 Sun 公司的开发成果,其主要特点是可以执行强,与平台的无关性使其实用性更强。但是 Java 中的 == 与 equal 是有区别的。 == 操作符是 Java ...
"浅析Java中String类型中“==”与“equal”的区别" ...理解 “==” 和 “equal” 操作符的区别对于使用 Java 中的 String 类型非常重要。只有当我们正确地使用这两个操作符时,才能编写出正确的程序。
Java 中的 == 和 equals() 是两个不同的比较方法,它们之间有着很大的区别。== 操作符专门用来比较两个变量的值是否相等,也就是比较变量所对应的内存中所存储的数值是否相同。用于比较两个基本类型的数据或两个引用...
【Java面试题】equals与==的区别
在Java编程语言中,`==` 和 `equals()` 是两种常用的比较操作符,它们在不同...理解和掌握这两个操作符的区别是编写高质量 Java 代码的关键。在实际开发中,合理地使用它们能帮助我们编写出更加准确和易于维护的代码。
在理解 `==` 和 `equals` 之前,我们需要了解堆和栈的区别。堆是一种动态分配的内存区域,由程序员自己申请和释放,而栈是一种自动分配的内存区域,由编译器自动分配和释放。堆和栈的区别体现在以下几个方面: 1. ...
了解这两者的区别对于编写正确的代码至关重要。 首先,我们来看Java中的数据类型。Java的数据类型分为两大类:基本数据类型(原始数据类型)和复合数据类型(类)。基本数据类型包括`byte`, `short`, `char`, `int`...
在Java编程语言中,`equals`方法与`==`操作符是进行对象比较时最常用的两种方式,但它们之间存在着显著的区别。理解这些差异对于正确地处理对象比较至关重要。 ### `==` 操作符 `==`操作符主要用于比较两个基本...
在Java编程语言中,`equals()` 和 `==` 运算符经常被用来比较对象,但它们之间存在着显著的区别。理解这些差异对于编写正确、健壮的代码至关重要。以下是关于 `equals()` 和 `==` 在Java中的详细解释。 首先,`==` ...
Verilog HDL(硬件描述语言)是一种广泛使用的语言,用于数字系统的建模、设计和验证。它允许工程师以一种类似于...同时,它也展示了wire类型和reg类型的区别,以及`always`块的使用,这些都是Verilog HDL编程的基础。
在Java编程语言中,`equals()`方法和`==`运算符是用于比较对象之间关系的两种常见方式,但它们有着显著的区别。理解这些差异对于编写正确的代码至关重要。 首先,`==`运算符主要用于比较基本类型(如int、char、...
每种函数在特定场景下都有其独特的用途,理解它们的区别对于编写精确的代码至关重要。 1. **equal?**: - `equal?` 是用来判断两个对象是否在内存中是同一个实例,也就是说它们是否有相同的`object_id`。它是最...
#### 补充知识:Python2与Python3中的不等于运算符区别 在Python的不同版本中,不等于运算符的表示方式有所不同: - **Python 2**:在Python 2中,可以使用`<>`或`!=`来表示不等于。例如: ```python print(23 ...
可以使用在基本数据类型变量和引用数据类型变量中 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同) 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用...
== == :既可以比较基本类型,也可以比较引用类型,如果比较八大数据类型主要比较的是值,比较引用类型主要比较的是内存地址值 equals(没有被重写过) ...总结:==跟equals的区别 1. ==既可以比较基本
总的来说,掌握JavaScript中的`==`和`===`的区别是每个前端开发者的基本功。正确使用它们能确保代码的健壮性和可预测性,减少因类型转换引发的错误。通过实践和学习,如"why-equal-or-not"这样的资源,我们可以更好...
在源码分析和工具使用中,理解这些运算符的区别至关重要。例如,在调试代码时,我们可能需要确定变量是否严格等于特定的值,而不是仅仅值相等。这有助于找出潜在的类型错误或逻辑问题。 在进行自动化脚本编写或者...
本次实验中,通过描述语言完成一位比较器功能,并在 modelsim 中完成比较功能仿真测试,熟悉了 modelsim 软件的仿真调试,了解了数据流描述与行为级描述的区别。 五、结论 通过本次实验,掌握了 VHDL 语言的基本...
在JavaScript编程中,“shallow equal”(浅比较)是一种用于检查两个对象是否具有相同属性值的方法,但不考虑嵌套对象或数组的深层结构。它通常用于比较简单对象,不涉及复杂的引用类型。本篇文章将深入探讨...