技术有限,才疏学浅,如有表述不正确或有不足,欢迎吐槽、指导和交流。
————————————————————————————————————
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 版权协议,转载请附上原文出处链接和本声明。