=以及==和equals的比较
来源:互联网 发布:阿里云 smtp发不出 编辑:程序博客网 时间:2024/05/04 10:40
2-1_ 对于“=”,即将右边的值赋给左边变量,右边不论是什么,只要能生成一个值就行。对于常量的赋值,例如a=b,只是将右边的内容复制给左边,即使再修改a的内容,b(右值不受影响);对于对象的赋值,例如c=d,我们实际是将一个对象的引用(d)赋给另一个对象的引用(c),那么c和d都指向原来d的对象(内存空间)。
2-2_
一、java当中的数据类型和“==”的含义:
基本数据类型(也称原始数据类型) ,他们之间的比较,应用双等号(==),比较的是他们的值。
复合数据类型(类):当他们用(==)进行比较的时候,对象实体的内存地址,即堆内存的地址。
二、equals()方法介绍:
JAVA当中所有的类都是继承于Object这个超类的,在Object类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地址,但在一些类库当中这个方法被复写了,如String等,在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
所以说,对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是内存中的存放位置的地址值,跟双等号(==)的结果相同;如果被复写,按照复写的要求来。
三、String中的equals()和==比较:
equals()比较的是字符串的内容是否相等,==比较的是字符串实体的内存地址是否相等。
String ff=”bb”;
String hh = “bb”;
System.out.println(ff==hh);//结果为true,并没有开辟新的内存空间,引用的指向是一样的。
String gg = new String(“bb”);
System.out.println(ff==gg);//结果为false,内存地址不一样了。
System.out.println(ff.equals(gg));//结果为true,内容一致
- =以及==和equals的比较
- java-数值,对象比较---"=="和"equals"以及自动装箱后的比较
- 【Java基础】equals和==的区别以及Integer(-128~127)值的==和equals比较
- ==和equals的比较
- equals 和 ==的比较
- equals和==的比较
- equals()方法和==的比较
- Java 的==和equals比较
- ==和equals的比较
- Equals和==的比较
- 对象的比较==和equals()
- String的== 和equals 比较
- equals方法和==的比较
- java中 equals的用法(object 和 其他类),以及与 == 的比较
- 比较 EQUALS() 和 ==
- 比较“==”和equals
- equals和==比较
- Equals和==比较
- String相关
- 为电脑加装固态硬盘
- 初见Java多线程(二、线程的创建与启动)
- 我的前端入门之html标签
- Mybatis中foreach循环
- =以及==和equals的比较
- 容易_431_反转整数(7)
- 页面a跳转到页面b指定位置的方法
- LintCode 单词切分
- PyCUDA
- 字节码指令-深度解析try catch finally的执行顺序
- React-Router使用
- JAVA数据结构之循环队列的实现
- 磁盘加锁结论