以下创建对象应该怎么理解:
1.Data data = new Data(); 创建了一个对象空间还是一个对象?????跟String a = "你好" 同一个意思???2.Data1[] data1 = new Data1[5]; 创建的是空间???
data1[0] dat2 = new Data1[1]; 创建一个对象????跪求.一般类创建对象..与创建对象数组对象有什么区别...概念如何理解....
在线等....
1.Data data = new Data(); 创建了一个对象空间还是一个对象?????跟String a = "你好" 同一个意思???2.Data1[] data1 = new Data1[5]; 创建的是空间???
data1[0] dat2 = new Data1[1]; 创建一个对象????跪求.一般类创建对象..与创建对象数组对象有什么区别...概念如何理解....
在线等....
否则就会报null异常
Data data = new Data(); // 在堆中创建一个对象。因为有newData1[] data1 = new Data1[5]; //在堆中构造一个数组
---------------------------
创建的是一个对象,跟String a =new String("你好");是一个意思。String a="你好"涉及到字符串池的问题,这是因为String这个类的特殊性2.Data1[] data1 = new Data1[5]; 创建的是空间???
-----------------------------
同1楼所说,对象数组只是声明了一个对象数组占用的空间,具体用的时候还需要实例化对象,如
data1[0]=new Data1();
基本同一个意思,都是让变量指向一个对象,区别在于前者是在堆中生成一个对象,后者直接指向常量池的对象2
2.Data1[] data1 = new Data1[5]; //相当于你买了5块地皮,地皮上什么都没有,就是荒地
data1[0] = new Data(); //注意数组元素的使用,相当于你在第1块地皮上盖了个房子