java引用问题(—)

为了美观起见,将说明性问题用注释引起来,这样只是为了美观

基本的类型只有一块存储空间(stack中),而引用类型在内存中有两块存储空间(stack和heap中)。


public
class test { /** * 首先要了解,在没有new一个新的对象时候,内存是不会另外的开辟一段存储内容相同的内存空间 * 也就是说,不论基本类型,还是其他类型,都不会创建新的存储空间 * 其次了解的是,当new一个对象时候,new一个基本类型的变量,内存是不会新分配内存空间(它存储的stack栈中) * 而其他类型将会分配新的存储空间,其中一个用stack栈存储,一块用heap堆存储。 * @param args */ public static void main(String[] args) { /** * 首先要明白,equal是比较的值相等 * 而==比较的引用地址的相等 */ String a = "sss"; String b = a;//b = "ss";没有new String c = new String(a);//c = new String("sss");new一个新的对象类型 System.out.println(a == b);//true System.out.println(a == c);//false int i = 33; int j = i;//j = 33; int ii = new Integer(i);//ii = new Integer(33); System.out.println(i == j);//true System.out.println(i == ii);//true Cla cla = new Cla();//i am A Cla clab = cla; Cla claa = new Cla();//i am A System.out.println(cla == clab);//true System.out.println(cla == claa);//flase // } } class Cla { Cla() { System.out.println("i am A"); } }
珍惜现在,珍惜每一分,每一秒。 从不放弃,坚持。。。。。
原文地址:https://www.cnblogs.com/feiguo/p/3674420.html