equals和=,==的区别
一. ==和equals的区别
1. ==是运算符
2. equals是String对象的方法
一般有两种类型的比较
1. 基本数据类型的比较
2. 引用对象的比较
1. 基本数据类型的比较
==和equals都比较的是值是否相等,相等则为true,否则为false
2. 引用对象的比较
==和equals都是比较是栈内存中的地址是否相等,相等则为true,否则为false
注意:
1. String是一个特殊的引用数据类型,==比较的是字符串对象的引用地址是否一样,equals比较的是栈中的内容是否一致。
String ss = new String("abc");
String sss = new String("abc");
if(ss == sss){
System.out.println("ss == sss is true");
}
if(ss.equals(sss)){
System.out.println("ss equals sss is true");
}
控制台输出:
ss != sss
ss equals sss
表明:ss和sss在栈中的内存地址不同,但是在堆中的内容是相同的。
String ss = new String("abc");
String ssss = ss;
//判断ss和ssss在栈中的引用地址是否一样
if(ss == ssss){
System.out.println("ss == ssss");
}else{
System.out.println("ss != ssss");
}
//判断ss和ssss在堆中的内容是否一样
if(ss.equals(ssss)){
System.out.println("ss equals ssss");
}else{
System.out.println("ss not equals ssss");
}
控制台输出:
ss == ssss
ss equals ssss
这表明ss和ssss是相同的对象,并且他们在堆中的内容一样
2. 引用对象的比较
TestBean obj1 = new TestBean();
TestBean obj2 = new TestBean();
TestBean obj3 = obj1;
if(obj1 == obj2){
System.out.println("obj1 == obj2");
}else{
System.out.println("obj1 != obj2");
}
if(obj1 == obj3){
System.out.println("obj1 == obj3");
}else{
System.out.println("obj1 != obj3");
}
控制台输出:
obj1!= obj2
obj1== obj3
表明obj1和obj2不是同一个对象,在栈中的引用地址不同
obj1和obj3是相同的对象,在栈中的引用地址相同
二. =和equals ==的区别
=表示的是赋值,即将=右边的值赋给左边的变量。equals和==是表示操作
equals和=,==的区别的更多相关文章
- java equals和==的区别
大概说equals和==都比较的是什么: 1. boolean tem = a == b; 首先==比较的肯定是地址,从堆栈的角度说也就是说==比较的是栈上面的内容.因为栈是用来存放地址或是java中 ...
- equals与==的区别
equals与==的区别. 下面是equals的源码 public boolean equals(Object anObject) { if (this == anObject) { //如果两个对象 ...
- equals和==的区别 你真的掌握了吗?
PS:最近读Java编程思想的时候发现了一些小问题.就是equals方法和==,感觉自己是真正掌握了,其实并没有.简单的记录一下. 学习内容: 1.equals 和 == 的区别 equals和== ...
- 【ASP.net】Equals 和 == 的区别
在比较Equals 和 ==的区别前.我们先来了解下相关的知识 C#数据类型 1.值类型 值类型有: 值类型包括:简单类型.结构类型.枚举类型:引用类型包括:Object 类型.类类型.接口.代表元. ...
- 【java】由equals和==的区别引出的常量池知识
equals和==的区别,百度查到的结果大都是:equals比较的是值,==比较的是引用地址. String str1 = "abc"; String str2 = "a ...
- 比较compareTo与equals及==的区别
1.compareTo: 附上:源码: public int compareTo(String anotherString) { int len1 = value.length; ...
- Java笔记——equals和==的区别
摔在这里几次,还是记下来吧. 原文:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2452156.html -------------- ...
- java中equals和==的区别 (转)
java中equals和==的区别 值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引 ...
- equals()和hashCode()区别?
equals()和hashCode()区别? ------------------------------------------------- equals():反映的是对象或变量具体的值,即两个对 ...
- 【转】Java中equals和==的区别
[转]Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boole ...
随机推荐
- js整理2
字符串 类型 var a = "abc"; var b = new String( a ); var c = Object( a ); typeof a; // "str ...
- BZOJ2652 : 三角板
首先旋转坐标系,假设$(x,y)$被$(X,Y)$遮挡等价于$X\leq x$且$Y\leq y$. 对于每种坐标系建立两棵线段树: 第一棵按$x$维护已经加入的点的$y$的最小值: 第二棵按$x$维 ...
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...
- 无线Web开发经验谈
http://am-team.github.io/amg/dev-exp-doc.html
- POJ 1753 (开关问题+高斯消元法)
题目链接: http://poj.org/problem?id=1753 题目大意:一堆格子,或白或白.每次可以把一个改变一个格子颜色,其上下左右四个格子颜色也改变.问最后使格子全部白或全部黑,求最小 ...
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- A Simple C++ Template Class that Matches a String to a Wildcard Pattern
A recently implemented enhanced wildcard string matcher, features of which including, Supporting wil ...
- [BZOJ2794][Poi2012]Cloakroom
2794: [Poi2012]Cloakroom Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 167 Solved: 119[Submit][St ...
- SolrCloud-如何在.NET程序中使用
https://github.com/vladen/SolrNet 原来我们在我们的项目里用的是根据数据库路由到不同的单机Solr服务器,但是这样的话,每次Solr配置的修改都要修改三台不通的服务器, ...
- ArcGIS Engine中的数据访问
ArcGIS Engine中的数据访问 数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文 ...