引用类型和基类型

<pre name="code" class="java">class Test{
	 	long width;  
	    public Test(long l) {   
	        width = l;  
	    }  
	 public static void main(String[] args) { 
		 
		 Test a, b, c;  
		 a = new Test(42L);   
		 b = new Test(42L);   
		 c = b;   
		 long s = 42L;  
		 System.out.println(a==b);   
		 System.out.println(a==c);
//		 System.out.println(a==s); 编译不通过
	         System.out.println(b==c);
		 System.out.println(a.equals(s));
			}
}


 

输出为:

false
false
true
false

分析:

//声明了3个Square类型的变量a, b, c
//在stack中分配3个内存,名字为a, b, c
Square a, b, c; 
//在heap中分配了一块新内存,里边包含自己的成员变量width值为48L,然后stack中的a指向这块内存
a =  new Square(42L);
//在heap中分配了一块新内存,其中包含自己的成员变量width值为48L,然后stack中的b指向这块内存
b =  new Square(42L);   
//stack中的c也指向b所指向的内存
c = b;
//在stack中分配了一块内存,值为42
long s = 42L; 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值