这两个局部变量谁在主线程的方法栈的底部?是a还是S?
时间:2011-10-29
来源:互联网
public class Sample {
public static void main(String[] args) {
Sample s=null;
int a=0;
s=new Sample();[b][/b] a=s.method();
System.out.println(a);
}
private int a;
public int method (){
int b=0;
a++;
b=a;
return b;
}
}
代码如上.我想问的是:在主线程的方法栈的main()方法的栈帧中,局部变量a和s谁在栈底?主方法中int a=0,虚拟机会在栈中给它分配空间,这个没有疑问.但是上面Sample s=null这一句的话,虚拟机会在栈中给局部变量s分配空间吗?还是等到下面s=new Sample()的时候才给s在栈中分配空间?求教...
public static void main(String[] args) {
Sample s=null;
int a=0;
s=new Sample();[b][/b] a=s.method();
System.out.println(a);
}
private int a;
public int method (){
int b=0;
a++;
b=a;
return b;
}
}
代码如上.我想问的是:在主线程的方法栈的main()方法的栈帧中,局部变量a和s谁在栈底?主方法中int a=0,虚拟机会在栈中给它分配空间,这个没有疑问.但是上面Sample s=null这一句的话,虚拟机会在栈中给局部变量s分配空间吗?还是等到下面s=new Sample()的时候才给s在栈中分配空间?求教...
作者: big_3_shot 发布时间: 2011-10-29
个人理解。
Sample s就已经分配了个引用地址空间,这个地址空间用于存放引用指向对象的地址值,s=new Sample()的时候只是给它所存放的地址植付值
Sample s就已经分配了个引用地址空间,这个地址空间用于存放引用指向对象的地址值,s=new Sample()的时候只是给它所存放的地址植付值
作者: shaosijun2004 发布时间: 2011-10-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28