Java中的==和equals方法

原创 2017年10月15日 11:25:19
今天给大家带来的是java中的==和equals的解答,在这里我就直接进入主题,相信很多初学者都会对个问题困惑,不知道什么时候用==什么时候用equals。

1: ==:当数据类型是基础数据类型时比较是字面值,当数据类型是封装数据类型的时候比较的是内存地址
2; equals:比较两值的字面值,不比较内存地址,这个方法只能由类去调用
public class Test {

	public static void main(String[] args){
		
		String str = "java";
		String str1 = "java";

  Integer IntOne = 150;
  Integer Intwo = 150;

  int intz = 77;
  int intx = 77;
  System.out.println("intz和intx字面值比较的结果:"+(intz == intx));
		System.out.println("两个字符串的地址是否相符:"+(str==str1));            //true
  System.out.println("两个字符串的字面值是否相符:"+(str.equals(str1)));            //true

   System.out.println("IntOne和Intwo字面值比较:"+(IntOne.equals(Intwo)));  //true
   System.out.println("IntOne和Intwo内存地址的比较:"+(IntOne == Intwo));    //false
	}
}


大家可以看到,结果是返回true,这也就说明了,这两字符串的内存地址是一样的,而且字面值也相等。从这里也就可以总结出一个结论:内存地址相等的字面值一定相等,而字面值相等的内存地址不一定相等。

==能用于基础数据类型也能用于封装数据类型,而equals只能用于封装数据类型,也就是说equals方法只能由类去调用,而封装数据类型就是一个类,如果不是类的话那它的那些方法哪来的,大家要清楚的明白只能类才有方法,这样就说的通了,我这里就不对封装数据类型中的方法进行讲解,具体请参照java api文档。这就是两种方式用法的区别所在,在开发中大多数都是用equals方法,很少使用==。

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何正确的重写equals() 和 hashCode()方法

equals和hashCode重写技巧
  • zzg1229059735
  • zzg1229059735
  • 2016年05月25日 15:36
  • 6353

Java-正确使用equals和hashCode方法

基本摘抄自Java 中正确使用 hashCode 和 equals 方法 hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个...
  • qing0706
  • qing0706
  • 2016年01月27日 14:09
  • 1787

java中 equals()方法 与 “==”的区别

摘要java语言的 equals() 方法 与 “==” 的区别,是每个初学者都会遇到过的问题。之前自己也很清楚,可日子一长,又渐渐遗忘,于是整理出一篇博客,复习一下。...
  • echosilly
  • echosilly
  • 2016年06月26日 18:04
  • 2271

Java中两个对象的比较 equals()方法和==号的区别

在Java中,时不时我们会把两个对象进行,然而得到的结果却不是我们想的结果,这是怎么回事呢? 一、两种形式的比较:比较时,我们要弄清楚是哪一种比较。       1.值类型比较       即内容...
  • BlueSky_USC
  • BlueSky_USC
  • 2016年07月07日 10:28
  • 10519

java重载与重写的区别+重写父类equals方法的完美实现

【0】README0.1) 本文章节【1】和【2】的内容转自 http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html ; ...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2015年11月09日 22:53
  • 1289

Java SE String的equals方法与"=="的区别浅析

equal与"=="在String里的区别
  • around_you
  • around_you
  • 2017年05月06日 10:06
  • 114

java基础:Object的equals方法

一:看第一个例子 public class Cat1 { private String color; private int height; private int weight...
  • u013628152
  • u013628152
  • 2015年02月01日 16:20
  • 3321

Java bean 下 覆盖equals 和HashCode方法 的实现和作用

1.原理 有时候使用集合的时候我们希望集合里面的对象要是不一样的,但是每个对象都进行new 操作实例对象,我们在使用对象的引用去equals比较都是为false,即会导致这两个对象引用变量一直不同,但...
  • qq_33599978
  • qq_33599978
  • 2017年04月26日 21:52
  • 473

java中hashMap使用一个对象作为key时,对key进行唯一性表达重写equals()方法

HashMappackage itcast02;public class Student { //学生姓名 private String name; //学生年龄 pr...
  • euller
  • euller
  • 2017年04月17日 17:53
  • 988

Java判断相等(==和equals方法)

Java中判断两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals方法。如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否相对。如果变量是引...
  • accountwcx
  • accountwcx
  • 2014年05月08日 15:43
  • 13988
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中的==和equals方法
举报原因:
原因补充:

(最多只允许输入30个字)