当前位置:编程学习 > JAVA >>

java 实例变量的位置?

今天突然想到一些问题,关于java内存分配的问题,基本类型在栈上分配。new出来的对象引用分配在栈上,对象分配在堆上,一直以来都是记住了,从来没仔细思考过,在栈上到底怎么分配,在堆上到底具体怎么分配的。举个例子: 
Java代码  
class Test{  
     int number1=9;  
     Test t1=new Test();   
  
   
   public static void main(String args[]){   
     int number2=9;  
     Test t2=new Test();  
}  
  
}  

number2 在栈上,t2这个对象的引用”也在栈上,t2引用的对象在堆中,那t1这个对象的引用 是实例变量 它在堆中么?
number1 冒似也是在栈上,没道理啊 栈是线程私有的,当前线程运行的方法才会在上面开出一个栈帧,方法局部变量在这个栈帧的局部变量表中,那如果Test这个类中的类实例变量number1也在栈上,没道理啊. --------------------编程问答-------------------- 这类问题经常有啊,建议楼主看看这个帖子吧:

http://topic.csdn.net/u/20120207/00/f7d2700b-d2bd-443a-8d12-80f3cd857522.html --------------------编程问答-------------------- 看了楼上的帖子,很好啊
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,