关于equals()和==的使用区别
一、基本使用方法说明
[1]对于String类而言,==是用来比较栈中的内存地址的,而equals是用来比较两个字符串所包含的内容是否相同。
[2]对于非String类而言,==与equals()都是用来比较内存地址的。
s1 = new String("abc"); Student s1 = new Student("abc");
s2 = new String("abc"); Student s2 = new Student("abc");
s3 = "abc";
s4 = "abc";
s3 == s4为true
s1 == s2为false; s1 ==s2 为false
s1equals()s2为true s1 equals()s2为false
解释:对于两个类来说,s1与s2均为新创建的对象,因此变量地址是不一样的,而变量内容是一样的。
对于String类而言,类中重写了equals()方法,用于比较字符串的内容。
但如果在student类中加上s1 = s2,则输出结果均为false,因为此时两个地址相同
对于s3和s4而言,两者均为"abc"创造的对象,所以地址相同
二、具体运用环境
1、java中的八种基本类型比较大小只能使用==,不能使用equals();编译出错
public class TestEquals {
public static void main(String[] args)
{
int a = 3;
int b = 4;
int c = 3;
System.out.println(a == b);//结果是false
System.out.println(a == c);//结果是true
System.out.println(a.equals(c));//错误,编译不能通过,equals方法
//不能运用与基本类型的比较
2、对于基本类型的包装类型,如Boolean、Character、Byte、Shot、Integer、Long、Float、Double,他们的用法与String类一样,==用来比较地址,而equals()用来比较内容
public class TestEquals {
public static void main(String[] args)
{
Integer n1 = new Integer(30);
Integer n2 = new Integer(30);
Integer n3 = new Integer(31);
System.out.println(n1 == n2);//结果是false
System.out.println(n1 == n3);// 结果显示false
System.out.println(n1.equals(n2));//结果是true
System.out.println(n1.equals(n3));//结果是false
}
}
其他的Double、Character、Float等也一样
3、
分享到:
相关推荐
Equals 和==的区别 公共变量和属性的区别 总结一下。
主要介绍了Java中==与equals的区别小结,本文总结结论:== 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内容是否相等,而 == 比较的是两个对象引用的地址是否相等,...
1.5 小结 11 第2章 基本数据类型——构建Java 大厦的基础 12 2.1 源代码注释 12 2.1.1 单行注释 12 2.1.2 区域注释 12 2.1.3 文档注释 13 2.2 基本数据类型 14 2.2.1 整型 15 2.2.2 浮点型 17 ...
1.9 小结 第2章 数据类型 2.1 基本数值类型 2.1.1 整数类型 2.1.2 浮点类型 2.1.3 decimal类型 2.1.4 字面值 2.2 更多基本类型 2.2.1 布尔类型 2.2.2 字符类型 2.2.3 字符串 2.3 null和void 2.3.1 null...
162 8.5.8 重写equals方法 163 8.6 final与继承的关系 164 8.7 abstract与继承的关系 165 8.8 什么是多态 166 8.9 什么是枚举类 168 8.10 什么是反射机制 169 8.11 什么是泛型 170 8.12 综合练习 172 8.13 小结 172 ...
如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...
如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...
1.4 小结 20 第2章 数据类型 21 2.1 基本数值类型 21 2.1.1 整数类型 22 2.1.2 浮点类型 23 2.1.3 decimal类型 23 2.1.4 字面值 24 2.2 更多基本类型 27 2.2.1 布尔类型 27 2.2.2...
1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种基本结构 25 2.1.3 面向对象程序设计简介 27 2.1.4 面向对象的基本特征 28 2.2 UML...
第1章 概述 1 1.1 精心设计的框架所具备的品质 2 ...B.4.6 与使用规范有关的FxCop规则 287 B.4.7 与设计模式有关的FxCop规则 291 附录C API规范样例 292 术语表 299 推荐读物 303 索引 305
本书为框架设计师和广大开发人员设计高质量的软件提供了权威的指南...B.4.6 与使用规范有关的FxCop规则 287 B.4.7 与设计模式有关的FxCop规则 291 附录C API规范样例 292 术语表 299 推荐读物 303 索引 305
操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和...
1.String类 知识点: 1.String认识 2.比较方式 3.判断方法 4.转换方法 5.其他一些方法 1.1String类认识 String类在java.lang包中,java使用String类创建一个字符串变量,... equals 比较两个变量包含的内容 String s
操作与使用技巧 61 1.6.4 常见开发调试技巧 66 1.6.5 错误异常处理方法 70 本章常见技术面试题 76 常见面试技巧之面试前的准备 76 本章小结 77 第2章 细节决定成败 79 2.1 Equals()和运算符==的区别 80 2.2 const和...
本章小结 第2章 细节决定成败 2.1 equals()和运算符==的区别 2.2 const和readonly的区别 2.3 private、protected、public和internal的区别 2.4 sealed、new、virtual、abstract与override 2.5 ...
小结 [第9节] 1.2.1为什么需要封装1 [第10节] 1.2.1为什么需要封装2 [第11节] 1.2.2如何实现封装2 [第12节] 1.2.3如何使用包1 [第13节] 1.2.3如何使用包2 [第14节] 1.2.4类成员的访问控制1 [第15节] 1.2.4类成员的...
本章小结 第2章 细节决定成败 2.1 equals()和运算符==的区别 2.2 const和readonly的区别 2.3 private、protected、public和internal的区别 2.4 sealed、new、virtual、abstract与override 2.5 ...
本章小结 第2章 细节决定成败 2.1 equals()和运算符==的区别 2.2 const和readonly的区别 2.3 private、protected、public和internal的区别 2.4 sealed、new、virtual、abstract与override 2.5 ...
本章小结 第2章 细节决定成败 2.1 equals()和运算符==的区别 2.2 const和readonly的区别 2.3 private、protected、public和internal的区别 2.4 sealed、new、virtual、abstract与override 2.5 ...