黑马程序员技术交流社区
标题:
有关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