equals是什么按键(equals使用方法)

http://www.itjxue.com  2023-02-14 02:07  来源:未知  点击次数: 

equals是什么意思

1.equals的本意——即在Object对象中定义的equals()方法有什么样的意义。

(此处先附上==的作用,后面仍有叙述。因为==和equals()方法的关系是很密切的,后面有我自己的看法。

==用于比较引用和比较基本数据类型时具有不同的功能:

比较基本数据类型,如果两个值相同,则结果为true

而在比较引用时,如果引用指向内存中的同一对象,结果为true)

public boolean equals(Object obj)

其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false.

public class Fish {

private int weight;

private String color;

public Fish(int weight, String color) {

this.color = color;

this.weight = weight;

}

public int getWeight() {

return weight;

}

public void setWeight(int weight) {

this.weight = weight;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

}

public class EqualsTest {

public static void main(String[] args) {

Fish f1 = new Fish(1, "blue");

Fish f2 = new Fish(1, "blue");

System.out.println(f1 == f2);

System.out.println(f1.equals(f2));

}

}

——————运行结果为——————

false

false

由此可见,equals()方法的本意为确定两个对象的引用是否相同。

2.而JDK类中有一些类覆盖了oject类的equals()方法,比较规则为:如果两个对象的类型一致,并且内容一致,则返回true,这些类有:

java.io.file,java.util.Date,java.lang.string,包装类(Integer,Double等)

public class EqualsTest {

public static void main(String[] args) {

String s1=new String("sss");

String s2=new String("sss");

System.out.println(s1==s2);

System.out.println(s1.equals(s2));

}

}

————————运行结果为——————

false

true

由此知道,在String中equals()方法被进行了覆盖,使其意义变为比较两个对象的内容是否一致

3.如果我们要自己覆盖equals()方法,让其比较内容或者有别的使用方法(当然我们一般都是用于比较内容的,但是覆盖的方法中真正的实现究竟是什么样的,谁知道呢O(∩_∩)O~)

public class Fish {

private int weight;

private String color;

public Fish(int weight, String color) {

this.color = color;

this.weight = weight;

}

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((color == null) ? 0 : color.hashCode());

result = prime * result + weight;

return result;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Fish other = (Fish) obj;

if (color == null) {

if (other.color != null)

return false;

} else if (!color.equals(other.color))

return false;

if (weight != other.weight)

return false;

return true;

}

public int getWeight() {

return weight;

}

public void setWeight(int weight) {

this.weight = weight;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

}

public class EqualsTest {

public static void main(String[] args) {

Fish f1 = new Fish(1, "blue");

Fish f2 = new Fish(1, "blue");

System.out.println(f1 == f2);

System.out.println(f1.equals(f2));

}

}

——————运行结果为——————

false

true

此例子中我复写了equals()方法和hashcode()方法,使得equals()方法脱离的本意,不再是比较两个对象的引用是否相同,而是比较其内容是否相同。

以上内容为一般书上的总结,下面是我自己想到的一些东西。

我们可以知道计算机归根到底进行的只是一些二进制数的与或非运算,加法乘法运算。由此有了些基本的运算符,所有的函数本质上其实现都是使用基本运算符来实现的。而==是基本运算符中的一个,它的作用:用于比较引用和比较基本数据类型时具有不同的功能:

比较基本数据类型,如果两个值相同,则结果为true

而在比较引用时,如果引用指向内存中的同一对象,结果为true

而equals()作为方法,我们可以推测知道,它其中的实现所使用的肯定是==运算符。再进一步的思考,equals()本意不正是==运算符进行对象比较时候的作用吗。那么,既然是两者有同样的作用,为什么还要弄出一个equals()方法来呢。因为==运算符不允许我们进行覆盖,也就是说它限制了我们的表达。在上面的第三个例子中,我们复写equals()方法,达到比较对象内容是否相同的目的。而这些通过==运算符是做不到的。

equals和==的区别是什么?

一、含义不同:

==是一个比较运算符,基本数据类型比较的是值,引用数据类型比较的是地址值。(比较地址值即是指是否为同一个对象的引用)

equals()是一个方法,只能比较引用数据类型。重写前比较的是地址值,重写后比一般是比较对象的属性。

二、引用不同:

值类型(int,char,long,bolean等)都是用=判断相等性。对象引用的话,=判断引用所指的对象是否是同一个。equals是Object的成员函数,有些类会覆盖(overide)这个方法,用于判断对象的等价性。

三、方法不同:

String里的方法,如果==号比较不相等,还会进行一下值的比较。所以equals方法具体的作用要看当前的那个类是如何实现重写父类中该方法的。如果没有重写该方法,那么他和==号等价。

扩展资料:

Eg:s1 = new String("sony"); //创建的是字符串对象

s1.equals("sony"); //返回true

s1 == "sony" //返回false

//如果

s1 = "sony";

s1 == "sony" //返回true

//如果

s1 = "sony";

s2 = "sony";

s1.equals(s2); 或者string.equals(s1,s2);//返回true

参考资料来源:百度百科-equals

电脑equals是哪个键

这个应该是指 等号 键,就是 = 这个符号,

在键盘数字0的右边第二个

怎么用计算器求排列组合?求具体步骤....

支持计算排列组合的科学计算器,可以通过计算器来求排列组合。

一、通过计算器求组合数:

求5个中选出3个的组合数C(5,3):

1、拿出科学计算器,按下右上角的电源键打开计算器。

2、打开计算器后,先按下组合数中第一个数字5。

3、找到计算器上的nCr键,按下【nCr】键,此键是用来求解组合数的键。

4、接着按下组合数中第二个数字3。

5、之后直接按等号键【=】,即可得出计算结果:【C(5,3)=(5×4×3×2×1)÷(3×2×1×2×1)=10】。

二、通过计算器来求排列数:

求5个中选出3个的排列P(5,3)。

1、按下shift键,可以实现切换nCr键为nPr键,后面会用到。

2、首先按下排列数中第一个数字5。

3、按下nCr键,此时的nCr键已经切换为【nPr】键,此键是用来求解排列数的键。

4、接着按下组合数中第二个数字3。

5、之后直接按等号键【=】,即可得出计算结果:【P(5,3)=(5×4×3)÷(2×1)=60】

equals到底是什么意思

equals 是函数:(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

equals和==的区别是什么?

equals和==的区别是功能不同,定义不同,运行速度不同。

1、功能不同

"=="是判断两个变量或实例是不是指向同一个内存空间。

"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。

2、定义不同

"equals"在JAVA中是一个方法。

"=="在JAVA中只是一个运算符合。

3、运行速度不同

"=="比"equals"运行速度快,因为"=="只是比较引用。

"equals"比"=="运行速度要慢。

equals和==简介

==既可以比较基本类型也可以比较引用类型 ,对于基本类型就是比较值,对于引用类型比较的就是内存地址,equals是属于java.lang.Ojbect类里的方法,如果该方法没有被重写过,默认也是==。

我们可以看到string类的equals方法是被重写过的,而且string类在日常开发中用的比较多,久而久之,就形成了equals是比较值得错误观点,具体要看这里有没有重写Ojbect的hashCode方法和equals方法来判断。

如果重写了equals()没有重写hashCode(),这两个实例类有可能是逻辑上相等,但是jvm只看Ojbect.hashCode()方法,所以jvm还是认为这是两个对象,因此违反了相等的对象必须具有相等的散列码,所以重写equals方法的时候一般都需要同时重写hashCode方法。

(责任编辑:IT教学网)

更多

推荐时间特效文章