==和equls
2015-10-14 21:56
148 查看
==和equls是初学java的时候比较容易混淆的概念。我也遇到过这类基础问题的错误使用的问题。
==和equls都是比较是否等于的方法,返回值是布尔型true或是false。
==:比较等等前后值的引用是否相同。
Equls:比较equls前后的值是否相同。
public
static void main(String[]
args) {
Integeri1 = new Integer(10);
Integeri2 = new Integer(10);
System.out.println(i1 ==
i2);
}
//out:false
i1 和i2虽然值一样,但是指向的对象是不一样的,根据定义,==操作返回的是false。
但是要注意的是,如果i1和i2用int来修饰,那么返回的是true。
这里就要注意了,基本类型只需要==和!=来判断。
Equls用string来演示,能很直观的了解equls和==的区别。
public
staticvoidmain(String[]
args){
Strings1 =
"abc";
Strings2 =
"abc";
Strings3 = new String("abc");
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
}
//true
//false
//true
//true
三个Strin对象,s1和s2是在String常量池中,而s3是新实例化的,新开辟了的空间,那么根据我上面提到的==和equls的用法,s1和s2都是指向一个对象,返回的是true。但是,s1(s2)和s3相比,s3是新实例化的对象,指向新开辟的空间,s1==s3返回false。而由于s1,s2,s3的值都是"abc",所以用equls来比较,返回的是true。
==和equls都是比较是否等于的方法,返回值是布尔型true或是false。
==:比较等等前后值的引用是否相同。
Equls:比较equls前后的值是否相同。
public
static void main(String[]
args) {
Integeri1 = new Integer(10);
Integeri2 = new Integer(10);
System.out.println(i1 ==
i2);
}
//out:false
i1 和i2虽然值一样,但是指向的对象是不一样的,根据定义,==操作返回的是false。
但是要注意的是,如果i1和i2用int来修饰,那么返回的是true。
这里就要注意了,基本类型只需要==和!=来判断。
Equls用string来演示,能很直观的了解equls和==的区别。
public
staticvoidmain(String[]
args){
Strings1 =
"abc";
Strings2 =
"abc";
Strings3 = new String("abc");
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
}
//true
//false
//true
//true
三个Strin对象,s1和s2是在String常量池中,而s3是新实例化的,新开辟了的空间,那么根据我上面提到的==和equls的用法,s1和s2都是指向一个对象,返回的是true。但是,s1(s2)和s3相比,s3是新实例化的对象,指向新开辟的空间,s1==s3返回false。而由于s1,s2,s3的值都是"abc",所以用equls来比较,返回的是true。
相关文章推荐
- 结巴分词
- Android数据解析获取JSONObject的key值-Iterator应用
- 在Google使用Borg进行大规模集群的管理 5-6
- action请求参数决定结果
- 找出一个二维数组中的“鞍点”,即该位置上的元素在该行中 最大,在该列中最小(也可能没有“鞍点”),打印有关信息。(提示:注意特 殊情况:没鞍点或多个鞍点)
- Window下安装Theano,并运行深度学习算法
- 相同的字符串常量是可以共享内存的
- 交换排序——快速排序
- use PostgreSQL async Notification as a chat group
- 第117讲:Hadoop集群之安装IP配置、Slaves、namenode和secondarynamenode的配置学习笔记
- 日经春秋 20151014
- Scala的安装
- Java进程监控与分析
- 动态规划—0-1背包问题
- 排序算法之直接插入排序(java实现)
- 什么叫做VC维
- 史上最全github使用方法:github入门到精通--备用
- CodeBlocks配置pthread环境
- 求一个字符串中最长的字符串
- PostgreSQL partial/sub commit within function