【黑马程序员】equals和==的区别
来源:互联网 发布:java专业入门课程 编辑:程序博客网 时间:2024/05/17 07:26
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
首先, == 是一个运算符。而Equals则是String对象的方法。
其次,equals是比较值,==是比较地址(在比较基本数据类型的时候,==比较的也是值,本文只讨论比较引用数据类型),举例如下:
String aa=new String("a");String aa1=new String("a");System.out.println(aa==aa1);System.out.println(aa.equals(aa1));
以上输出结果为flase,true。
aa,aa1值一样但地址不一样
String aa2="1";String aa3="1";System.out.println(aa2==aa3);System.out.println(aa2.equals(aa3));
以上输出结果为true true ,因为aa2 aa3指向同一个”1”,所以地址、值都相同
那么问题来了,此时为什么aa2和aa3都指向同一个”1”而不是new一个String呢?是因为Java中有一个叫字符串缓冲池的东西,程序在运行的时候会创建一个字符串缓冲池。
当使用String aa2 = “1” 这样的表达式创建字符串的时候,程序首先会在这个String缓冲池中寻找相同值的对象,在第二个程序中,aa2先被放到了池中,所以在aa3被创建的时候,程序找到了具有相同值的aa2,将aa3指向aa2所引用的对象”1”
第一段程序中,使用了 new 操作符,他明白的告诉程序内存,要创建个新的,于是一个新的”a”String对象被创建在内存中。他们的值相同,但是位置不同,算是资源浪费吧!
0 0
- 黑马程序员_java中equals和==的区别
- 黑马程序员---- java中 equals 和 ==的区别
- 黑马程序员----------equals和==的区别以及用法
- 黑马程序员-equals和==的用法以及区别
- 黑马程序员-==和equals的区别
- 黑马程序员---equals和"=="的区别
- 黑马程序员——equals和==的区别
- 【黑马程序员】equals和==的区别
- 黑马程序员----"=="和equals方法区别
- 黑马程序员—C# equals与==的区别
- 黑马程序员--equals与==的区别
- 黑马程序员——Java基础---关于equals和==的区别的理解
- 黑马程序员——关于java中equals和==的区别
- 黑马程序员——Java基础---equals和"=="的区别
- 黑马程序员——Java面试题——equals和==的区别
- 黑马程序员——Java中equals和==的区别
- 黑马程序员--关于equals和“==”
- 黑马程序员------- "==",equals和hashcode
- 关键路径
- 75.百度地图的URL分享--iOS 调用百度地图App进行导航
- HDU 1002 A + B Problem II
- UIWebView 清除缓存
- windows8 下基于vs2013开发环境CGAL配置(cmake,cgal,qt.boost,qglviewer)教程
- 【黑马程序员】equals和==的区别
- Python学习-语录
- UIViewController的生命周期
- uestc 1221 Ancient Go
- 数式の演算子と関数
- 【转载】Log4j之高级配置
- EventBus使用详解(一)——初步使用EventBus
- Spring与Velocity
- Spring整合JMS(一)——基于ActiveMQ实现