Java中从源码看==和equals()以及compareTo()和compareToIgnore()的原理和区别

  • Post author:
  • Post category:java


技术有限,才疏学浅,如有表述不正确或有不足,欢迎吐槽、指导和交流。

————————————————————————————————————

Java中 == 和 equals()的使用非常频繁, 以及String类的compareTo()和compareToIgnoreCase()的使用也很多,这里根据源代码分析一下各自的原理和区别。




1、== 运算符

== 是一个比较运算符。可用于基本数据类型或引用数据类型。

基本数据类型直接用值比较是否相同;

举个栗子:

	int a = 5;
	int b = 5;
	System.out.print(a == b);//结果输出true

引用数据类型,比较引用的内存地址值,引用的内存地址相同返回true,不同返回false。

例子1:

	User a = new User("zhangsan");   //new一个对象,声明变量名a保存该对象的内存地址
	User b = a;   //声明另一个变量名b,将a保存的内存地址赋值给b
	System.out.print(a == b);  //二者保存的内存地址相同,都指向同一个对象,输出true

例子2:

	User a = new User("zhangsan");//new一个对象,声明变量名a保存该对象的内存地址
	User b = new User("zhangsan");//再new一个对象,声明变量名b保存



版权声明:本文为ouyaku5原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。