java equals是什么意思,.equals()到底是什么意思
各位老铁们好,相信很多人对java equals是什么意思都不是特别的了解,因此呢,今天就来为大家分享下关于java equals是什么意思以及.equals()到底是什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
关于java的equals()的用法
既然用户和密码可以用
String y=request.getParameter("hu");
String m=request.getParameter("ma");
这样的形式表示那和他们比较的数据为什么不可以呢??
这个需要先把要比较的数据从数据库或者文件里读出来存进数组然后用for配合if就行了
比如你一共有10个用户你得到一个二位数组 str[9][1]用这个来储存用户的帐号和密码
然后用
for(int i=0;i<str.length;i++)
{
if(y.equals(str[i][0])&&m.equals(str[i][1]))
{
//如果有符合条件的就跳出循环
}
}
这样就行了...............
*****************************************************************************************************
不过.......如果真的是写jsp的话这个用户登录完全不需要你自己写代码可以用xml配合容器来实现效果
java中users[i].name.equals(name))怎么理解
前言
这一篇文章是对java的Object的方法的equals的描述,也包括对重写方法写的一些理解。
一、Object类的equals方法?
1. Object是什么?
首先要明确Object类中有什么,它是什么?
Object类在《java核心技术1》中是这样描述的是Java中所有类的始祖,每个类都是尤其扩展出来的。所以我们创建的类应该都会有应该有这样的表达:
public class Classname extends Object{}
登录后复制
但其实上公司早已经考虑过这个问题了,所以每个类都是默认继承Object的。所以直接就可以就可以引用Object类中的方法,编译器是不会报错的。
2. equals方法的解析
1、为什么需要这个方法?
因为传统的逻辑判断“==”,是去判断数据在内存堆中地址,基础数据在堆中内存是相同的,所以“==”最后是对数据的值来进行比较的。
2、 equals方法在书上的解析
在《Java核心技术1》中对equals方法的描述是用于检查一个对象是否等于另一个对象,这两个对象是否具有相同的引用。然后接下来我会使用代码,以及代码运行的结果对这个方法进行讲解。
/*
我们创造一个Employee类来验证——一个对象是否等于另一个对象,这两个对象是否具有相同的引用
*/
public class Employee extends Person{
private int salary;
private int worktime;
public Employee(String name, String sex,int salary, int worktime){
this.name= name;
this.sex= sex;
this.salary= salary;
this.worktime= worktime;
}
/*
现在我们目标是使用equals方法
具体实现是:
1.首先先使用Employee类来进行信息的比对
2.再使用Student类和Employee类进行比对
*/
//step1
Employee employee1= new Employee("啊狗","男",2000,12);
Employee employee2= new Employee("啊狗","男",2000,12);
//现在我们创造两个数据皆相同的对象我们现在进行equals方法的判断
System.out.println(employee1.equals(employee2));
登录后复制

终端会给我们输出false,我们可以开调试来看看为什么会输出flase。我们可以看到employee1和employee2地址会不同,这就能解释到《Java核心技术1》对Object类中的equals方法是对比一个对象是否等于另外一个对象。这不仅仅局限于数据的相同,也需要去判断数据存放的地址是否相同。
3.对上公司的Object类方法的理解
深入的我们可以去看看上公司如何写Object类的equals方法。
public boolean equals(Object obj)
return(this== obj);
}
登录后复制
这里的equals方法接入的是Object类,(this== obj)这句话的意思是当前对象和传入obj地址是否相等,因为“==”的作用就是比较两者地址是否相同。
4.对上公司对重写的equals方法的一些理解
那么接下来我们研究方向就是如何让两个数据相同的对象相同,这一点由为之重要。上公司已经非常贴心地为我们重写好了这个方法,我们可以一起看看这个方法地实现。
@Override
public boolean equals(Object o){
if(this== o) return true;
if(o== null|| getClass()!= o.getClass()) return false;
Employee employee=(Employee) o;
return salary== employee.salary&& worktime== employee.worktime;
}
登录后复制
if(this== o) return true;
登录后复制
这句话是自反性的体现,先使用this调用当前对象,然后再将对象o放入判断语句中,也就是书中所说的对于非空引用x,x.equals(x)会返回true。
if(o== null|| getClass()!= o.getClass()) return false;
登录后复制
这句话是将调用getClass()方法,因为两个不同的类不可以做比较,会直接返回false的。具体我们可以利用我们的Student类和Employee类来做比较。
Employee employee1= new Employee("啊狗","男",2000,12);
Student student= new Student("啊猫","男",18,"智能科学");
//2.再使用Student类和Employee类进行比对
System.out.println(employee1.equals(student));
登录后复制
无论从直观上还是客观上来看,我们都能会觉得终端会输出false,事实如此,确实最后终端是输出了false。
Employee employee=(Employee) o;
登录后复制
这句话又是什么意思呢?这个涉及一个强制类型转化的知识,因为所有类都默认继承或者间接继承Object类,因为前面已经使用getClass方法来判断类是否相同,所以这里不需要进行instanceof来判断两个类是否相同,如果两个类不同的话,直接运行java会抛出ClassExceptionError错误。这一步就是让传入的值获得自己私有得信息,这一个点是涉及多态的缺点的缘由。
return salary== employee.salary&& worktime== employee.worktime;
登录后复制
这一句话我们可以通过调试来看看到底相比较的是什么?我们可以看到是将当前对象的salary和worktime的值来和传入对象的salary和worktime的值比较,这样就可以免除“==”比较地址而造成最后的结果和主观感觉不一样的预期。
这篇文章是我第一次写博客,文章结合《java核心技术1》对Object类中的equals方法的一点理解的,本来想写Object类常用API的一个汇总,但是鉴于能力的不足,所以最后仅仅只是写了equals方法的理解。这一次编写博客的过程中,我明显发现自己对很多不理解的地方,本文如果有讲解错误,或者讲解不当的地方,希望大家能指正我的错误,感谢!
java中a.equal("b")和b.equal("a")有什么区别
a.equal("b")表示a这个string是否等于字符串b;
b.equal("a")表示b这个string是否等于字符串a;
如果你是想要判定a和b两个string对象是否相同,建议不要加括号,写成:
a.equal(b)和b.equal(a)这个比较好。
a.equal(b)和b.equal(a)表达式表达的意思是一样的,都是为了判定a和b两个string对象是否相同,但是,前者表示a对象不能为空,否则会报错,后者表示b对象不能为空,否则报错
.equals()到底是什么意思
.equals()在Java中判断是否相等,与==的区别是.equals()只判断值是否相等,不管两者是否存在同一地址。而==则是判断值与存在地址都得相等
扩展资料:
由equals的源码可以看出这里定义的equals与==是等效的(Object类中的equals没什么区别),不同的原因就在于有些类(像String、Integer等类)对equals进行了重写,但是没有对equals进行重写的类(比如我们自己写的类)就只能从Object类中继承equals方法,其equals方法与==就也是等效的,除非我们在此类中重写equals。
另外,"=="比"equals"运行速度快,因为"=="只是比较引用。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!