java吧 关注:1,296,364贴子:12,833,216
  • 12回复贴,共1

求解答~~关于内存分配很混淆的问题~

只看楼主收藏回复

class TestOnly{some codes;}
public class Test{
public static void main(String[] args){
             TestOnly test;//line 2
            test=new TestOnly(); //line    3
}
}
我想知道为什么第二行并没有给test分配引用变量空间(试卷答案如此....)


1楼2011-03-08 14:29回复
    TestOnly这个类里应该有说明吧 好吧 我什么都不懂 路过帮顶


    IP属地:广东2楼2011-03-08 14:35
    回复
      2026-01-31 00:10:48
      广告
      不感兴趣
      开通SVIP免广告
      求解答~~


      3楼2011-03-08 14:39
      回复
        回复:2楼
        TestOnly 只是一个类 试卷里也省略 这个问题与 这个类里面到底有什么东西没关系~~~


        4楼2011-03-08 14:40
        回复


          5楼2011-03-08 15:01
          回复


            6楼2011-03-08 16:49
            回复
              分配引用变量空间?什么意思?


              7楼2011-03-08 17:36
              回复
                回复:7楼
                就是test是一个引用变量嘛 在栈上分配空间啊~


                8楼2011-03-08 17:53
                回复
                  2026-01-31 00:04:48
                  广告
                  不感兴趣
                  开通SVIP免广告


                  9楼2011-03-08 18:08
                  回复
                    回复:8楼
                    还是不太明白。
                    TestOnly test; 这一句不就是把变量test声明为TestOnly类型么?


                    10楼2011-03-08 18:11
                    回复
                      TestOnly test 这句只是声明了一个TestOnly的类。
                      在下一行test=new TestOnly(); 才分配空间 ,java 的new的意义很强大,自己慢慢体会吧


                      IP属地:北京11楼2011-03-08 18:12
                      回复
                        new操作符用来完成在堆区中开辟空间的过程,而TestOnly test;只是在声明一个复合类型变量,这个变量在栈区,通过记录地址的方式来指向堆区。所以,未执行new操作的时候,堆区是没有Java对象被创建出来的。
                        ------------------------------
                        


                        IP属地:辽宁12楼2011-03-08 19:29
                        回复
                          12楼高人也!


                          14楼2011-03-08 21:17
                          回复