JavaSE8基础 ==和equals 比较两个引用类型的变量的地址值是否相同

os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)

code:

package jizuiku.eleven302;

public class Demo {
	public static void main(String[] args) {

		Demo d0 = new Demo();//d0指向一个对象
		Demo d1 = new Demo();//d1指向另外一个对象
		Demo d2 = d1;//d0、d1同一个地址的两个名字

		System.out.println(d0 == d1);
		System.out.println(d0 == d0);
		System.out.println(d2 == d1);

		System.out.println("----------------");

		System.out.println(d0.equals(d1));
		System.out.println(d0.equals(d0));
		System.out.println(d2.equals(d1));

	}
}

result:

SourceCode:

    public boolean equals(Object obj) {
        return (this == obj);
    }


Java优秀,值得学习。
学习资源:API手册+Java源码。

时间: 2024-08-24 02:17:17

JavaSE8基础 ==和equals 比较两个引用类型的变量的地址值是否相同的相关文章

JavaSE8基础 String equals 判断两个字符串的内容是否相同(区分大小写)

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t02; public class Demo { public static void main(String[] args) { // 判断两个字符串的内容相同吗 String s1 = "jizuiku"; String s2 = "abcdef&q

JavaSE8基础 String equalsIgnoreCase 判断两个字符串的内容是否相同 (不区分大小写)

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t02; public class Demo { public static void main(String[] args) { // 判断两个字符串的内容相同吗 不区分大小写 String s1 = "jizuiku"; String s2 = "a

JavaSE8基础 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /* * 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量 */ //基类 class Person { public int num = 1; } //子类 class Javaer extends Person { //子类中的成员变量与父类重名了 public int num

JavaSE8基础 final 修饰引用类型的局部变量 地址值不能变

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /* * final 修饰引用类型的局部变量. * 引用类型是地址值,地址值不能变! */ class Test { public int num = 1; } class Demo { public void test() { final Test t = new Test(); System.out.pr

【Java基础】“equals” 和 “==”的理解

简述:==: 用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同:当用于引用类型的时候,是比较对象(内存地址)是否相同:equals: java.lang包中的Object类有public boolean equals(Object obj) { return (this == obj) }方法,它比较两个对象是否相等: 故对于引用类型在一定程度上,"==" 和 "equals"的功能是一致的,都是比较对象(内存地址)是否相同: 1.JDK常用类的“==”

c#学习基础(2)存储、值类型和引用类型、变量

程序运行时,它的数据必须存储在内存中,数据项需要多大的内存.存储在什么地方以及如何存储都依赖该数据项的类型 运行中的程序使用两个区域来存储数据:栈和堆 栈是一个内存数组,是一个LIFO(last in first out后进先出)的数据结构 栈存储几种类型的数据: 某些类型变量的值 程序当前执行环境 传递给方法的参数 栈有以下几大特征 数据只能从栈的顶端插入和删除 把数据放到栈顶端称为入栈push 从栈顶删除数据称为出栈pop 堆是一块内存区域,在队里可以分配大块的内存用于存储某类型的数据. 与

[Java基础] Java float保留两位小数或多位小数

方法1:用Math.round计算,这里返回的数字格式的. float price=89.89; int itemNum=3; float totalPrice=price*itemNum; float num=(float)(Math.round(totalPrice*100)/100);//如果要求精确4位就*10000然后/10000 方法2:用DecimalFormat 返回的是String格式的.该类对十进制进行全面的封装.像%号,千分位,小数精度.科学计算. float price=

类的继承定义一个computer类在此基础上派生出两个子类(继承与多态绑定)

题目如下 定义一个计算机类(Computer),并在它的基础上派生出两个子类:台上机(Desktop)和便携机类(Notebook),在Computer中定义几个方法,并在子类Desktop和Notebook中覆盖这些方法.在main方法中利用对象类型转换将类Desktop和Notebook的对象分别赋值给Computer对象,并应用多态调用这些方法. 实验目的 (1)       理解继承的概念,掌握继承的语法. (2)       学习定义和使用子类. (3)       掌握继承过程中的方

java中用equals比较两个内容相同的字符数组

********************************************你在数组上调用函数equals,比较的是c和ch的地址改成if(Arrays.equals(ch,c));就可以比较c和ch的内容了******************************************** java.sun.com上说,The equals method for class Object implements the most discriminating possible e