java中“==”和equal区别
来源:互联网 发布:绘画人偶软件 编辑:程序博客网 时间:2024/06/01 08:54
“==”是用来比较两个String对象在内存中的存放地址是否相同的。
String test1 = "test";String test2 = "test";String test3 = new String(test2);String test4 =new String(test2);blooean result1 = (test1==test2);blooean result2 = (test3==test4);
其中:result1为true,result2为false。
原因:程序在运行时有一个字符串缓存机制,当String test1 = “test”的时候,程序先从缓存池中查找是否有相同的String 对象,如果有的话就不会重新生成而是用缓存池中的字符串对象;如果在字符串缓存池中没找到相同的字符串对象时才会在内存中开辟一块内存区新建字符串对象。对于test1,当test1建立以后会将“test”字符串放入缓存池中,所以运行 String test2 = “test”的时候就会直接从缓存池中取出相同的对象,也就说,test1和test2的内存地址是相同的,所以,result1是true。对于new来说,每new一次就会在内存中开辟一片内存区域,test3和test4的内存地址是不同的,所以result2是false。
再说“equal方法”:
equal方法是object类的方法,object类中的equal方法也使用“==”实现的,也就是说,如果直接继承object类的equal方法,则也是比较两个对象在内存中的地址是否相同,但是在String中将继承自object的equal方法覆盖啦!
string中的equal方法是比较字符串内容是否相同。
0 0
- java中==和 equal区别
- java中“==”和equal区别
- java中equal 和 ==的区别
- Java中equal和"=="的区别
- java中equal()方法和==的区别
- Java中equal和"=="的区别
- Java中equal和==的区别
- JAVA中“==”和"equal"的区别
- Java中equal和"=="的区别
- java中==和equal的区别
- Java中equal和==的区别
- java中equal 和 ==的区别
- Java中== 和equal的区别
- java中 == 、 equal和instanceof 的区别
- Java中==和equal有什么区别
- Java中“==”和equal()的区别
- Java中“==”和equal的区别
- java中“==”和“equal()”的区别
- git命令行学习小结
- 频率域滤波基础之三(读数字图像处理学习halcon)
- jni
- VS 调试动态库
- Integer包装类常用方法
- java中“==”和equal区别
- 生成一个唯一的id
- 【消息队列MQ】ActiveMq的通信方式
- LA 7457 Discrete Logarithm Problem
- Android 粘性广播StickyBroadcast的使用
- java wait()notify释放锁
- Scala学习整理[第十五章 样本类和模式匹配]<Programming In Scala>
- jQuery - AJAX get() 和 post() 方法
- 文章标题