java中的null占空间吗?
来源:百度知道 编辑:UC知道 时间:2024/05/14 19:37:20
public class A{
String str;
Object obj;
public void m1(){
Object obj2;
obj2=new Object();
}
以上代码中什么时候给str、obj、obj2这些变量分配内存,怎么初始化的?望高手指点,没有研究过这类问题的,请不要想当然的回答,要不然会误导人的,谢谢合作!
String str;
Object obj;
public void m1(){
Object obj2;
obj2=new Object();
}
以上代码中什么时候给str、obj、obj2这些变量分配内存,怎么初始化的?望高手指点,没有研究过这类问题的,请不要想当然的回答,要不然会误导人的,谢谢合作!
再new A的对象时候,在栈内给str,obj分配空间,大小可能是2个字节也可能是4个或8个,java规范没有规定,不同jvm可以有不同的实现,我们也没有必要关注这个,这个占的内存我们也无法得到。分配空间后就执行构造方法了。
obj2在执行m1的时候首先在栈内分配空间,new Object()执行的时候在堆内分配空间,然后将堆内的这个地址赋值给obj2。所有这些内存占用的大小我们都是得不到的
关于null的问题,比如String a = null;
这句话在栈内是分配了空间的,但在堆内是没有分配的
//null不分配对内存只是给JAVA堆栈的该变量句柄附一个标记值
public class A{
String str;
Object obj;
public void m1(){
Object obj2;
obj2=new Object();
}
以上代码: str,obj在两个属性只有在建立A对象(比如A a = new A()),并且调用:a.str = "xxx";和obj = new Object();时才会被分配内存,obj2只有在调用你的方法m1时才会非配内存,并且在调用结束后销毁
构造时在参数
是的,只是给它分配了空间,也就是在堆内存里没有实际东西存在
JAVA中的 jScrollPane1.getViewport().add(jTable1, null);是什么意思啊?
java.lang.NumberFormatException: null
java.lang.NumberFormatException: null java.lang.NumberFormatException: null
关于实参中的null?????
Java中的字符串被赋值null和""有区别么?
ie浏览器中的收藏夹占硬盘的空间吗?
C语言中的字符占空间大小
磁盘中的碎片是什么?会占空间吗?整理后可用空间会增加吗?
校内网中的null是什么意思
jsp 错误:java.lang.NumberFormatException: null