黑马程序员技术交流社区

标题: 有关JAVA中引用类型的内存占用问题。老师帮帮忙 [打印本页]

作者: slatop@qq.com    时间: 2013-5-16 02:41
标题: 有关JAVA中引用类型的内存占用问题。老师帮帮忙
本帖最后由 slatop@qq.com 于 2013-5-16 10:14 编辑

有类
class CTest
{
}
Main函数中
CTest[] testArr = new CTest[10];
问1:上面这行是不是只在内存中产生一个10个数组的引用,并没有产生实际的CTest对象
问2:那么请问上面一行代码实际在内存中开辟了多大的空间?

其实我是想问,JAVA中所有的引用占用的内存是不是大小一样?如果引用保存的只是指针,那么任何类型的引用肯定都是一样的。32位下的大小是4个字节吗?

CTest[] testArr = new CTest[3]; 3*4 =12字节?
CTest test = new CTest();  4+object类型的大小?
int num = new int(); 4+4=8个字节?
int[]arr =new int[3];3*4+4=16字节?


作者: liuelxiwd    时间: 2013-5-16 08:32
java中用的是unicode编码;
byte  1个字节
short 2个字节
char  2个字节
int   4个字节
long  8个字节
float 4个字节
double 8个字节
然后回答问题:
new CTest[10];不是生成引用,它是静态数组,在堆中开辟一片连续的空间,大小为10个单位;
java的引用相当于c++的指针,C++的指针是占四个字节,java引用应该也是固定的大小。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2