==和equals的区别
来源:互联网 发布:自制qq头像软件 编辑:程序博客网 时间:2024/06/05 02:55
总结一下
==和equals的区别:
==: 1.用于判断基本类型变量的值是否相等
2.用于判断引用类型的内存地址是否相等
equals:继承于Object类
1.默认也是判断引用类型的内存地址是否相等
2.equals可以被重写,规则可以重新定义
String类的equals方法:
String类,重写了equals方法,
判断的是字符串的字符序列的值,是否相等。
判断的是 字符串的内容是否相等
下面我举个实例:
String a="123";
String b="123";
a==b 输出的结果:true;
a.equals(b) 输出的结果: true;
原因是: a==b比较的是内存地址,栈里面是 a,b,“123”放在常量池中,它不会再去创建,而是直接运用,所以 a==b,相等,a.equals(b) 默认比较的是 内存地址,但String里面重写了equals方法,所以比较的是内容,所以a.equals(b) 输出的结果为true;
2.String a=new String("123");
String b=new String("123");
a==b 输出的结果:false;
a.equals(b) 输出的结果: true;
原因是: a==b比较的是内存地址,栈里面是 a,b,当每次new出一个对象的时候,它都会在堆里面开辟一个空间。所以比较地址时为false;
a.equals(b) 默认比较的是 内存地址,但String里面重写了equals方法,所以比较的是内容,所以a.equals(b) 输出的结果为true;
3. String a="123";
String b=new String("123");
原因是: a==b比较的是内存地址,栈里面是 a,b,当每次new出一个对象的时候,它都会在堆里面开辟一个空间。
a的123在常量池中,所以地址不相等,equals比较同上。
- “=”和“equals()”的区别
- java ==和equals、equals和hashCode的区别
- 关于“==”和“equals”的区别
- 关于Equals 和== 的区别
- equals和==的区别
- equals 和 == 的区别
- equals 和 == 的区别
- ==和Equals的区别
- equals 和 == 的区别
- equals 和 == 的区别
- equals和==的区别
- equals 和 == 的区别
- equals和==的区别
- 关于==和equals的区别
- Equals和“==”的区别
- == 和equals() 的区别
- equals("")和“==”的区别
- equals 和 == 的区别
- 20170315 c++上机作业—两个类的交互
- 查看APK的签名信息
- php5.4升级到php7
- base64
- 44_面向对象_17_封装
- ==和equals的区别
- 4-3 两个有序链表序列的合并
- GAN资料汇总
- 设置minimize records_per_block表存储情况
- Day03-JavaScript01
- 《红皮书》总结
- SQL入门书籍内容汇总
- 学生操作系统“三种文件”
- 学生管理操作系统-总览