equals == 和compare to
来源:互联网 发布:手机淘宝不能照片搜索 编辑:程序博客网 时间:2024/06/05 03:53
1.基础的数据类型可以用==号去进行比较,不能用equals比较
2.==比较的是对象的地址,Object.java里的equals方法内部是用==实现的,因此比较的也是地址。至于String,因为String类是Object类的子类,所以比较的是内容。
String a = "qwe";
String b = "qwe";
如果字符串常量池中存在qwe,则该语句并不会创建对象,只是讲字符串常量池中的引用返回而已。
如果字符串常量池中不存在qwe,则会创建并放入字符串常量池,并返回引用,此时会有一个对象进行创建。
也就是当b=b+1的时候会创建一个对象
String a = b;//这里只是让a这个变量也指向的地址为 1的区域,并没有重新申请内存,因此是地址传递
因此System.out.print(a==b);返回的是TRUE;
String s1 = new String("java");String s2 = new String("java");
因为会生成两个地址,所以因此System.out.print(S1==S2);返回的是FALSE;equals返回的是TRUE。eql
3.1
compare to比较的前后两个字符串的asc码的差值参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值,如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。
BigDecimal类型的比较用compare to 1是大于,0是等于,-1是小宇,前者大、小、等于、后者。
对于BigDecimal的大小比较,用equals方法的话会不仅会比较值的大小,还会比较两个对象的精确度。
BigDecimal的compare to方法中有个matchScale的处理,意思是把精确度低的那个对象转换为高精确度,然后1.2就回等于1.20,用equals因为会比较精度问题,所以会导致1.2不等于1.20
0 0
- equals == 和compare to
- Java中的equals(),==,compareTo()和compare()
- Java中的浮点数比较 == equals 和 compare
- Java中的浮点数比较 == equals 和 compare
- Java中的浮点数比较 == equals 和 compare
- Java学习笔记-== compare 和 equals
- Java中的equals(),==,compareTo()和compare()
- Java中的浮点数比较 == equals 和 compare
- java中字符定义,及==、equals与compare To()的区别
- ==, .equals(), compareTo(), and compare() (之一)
- ==, .equals(), compareTo(), and compare() (之一)
- java中compare和equals的区别
- equals 和 ==, equals 和 hashcode
- == equals和Arrays.equals
- "=="和"equals()"
- equals和==
- equals和==
- equals和==
- laravel5 Eloquent 怎么实现事务
- Google Protobuf 3版本介绍
- mysql中tinyint(1)和zerofill是什么意思
- java学习-基础(3)
- Objective-C文字加阴影方法总结
- equals == 和compare to
- 枚举Enmu
- Rancher-API使用珠玑
- 管道命令和xargs的区别(经典解释)
- RedHat9中如何安装gcc
- Android底部导航栏组件:BottomNavigationBar
- Apache官网搭建HTTP服务器的例子
- FTP文件传输协议两种方式的工作原理
- vmware虚拟机Linux(redhat)上用户密码忘记了怎么办?