java利用重载实现多态.java中没有指针的概念.我也在学习JAVA.所以只能回答这些.

解决方案 »

  1.   

    恩,我认为除了java中的基本变量是放在栈里和c++一样外,其他的东西用的全是指针(reference),但是没有指针运算!所以我认为确切的说java里的是“伪指针”。
      

  2.   

    java 是在堆里分配内存的。
    虚拟机机制,没有看过。所以其他的不知道了
      

  3.   

    java的编译器在编译一个类的时候会生成一个虚拟函数地址,他的多态都是通过那个虚拟函数地址实现的,比如说,一个类的两个同名字方法具有不同的参数,甚至前后的顺序都不一样,那他们的虚拟函数地址都不一样;
    建议去看thinking in java在里面你会找到答案,我也是刚刚开始,一般new的是对象是放在内存堆里,不知道说的对不对请大家指点!!
      

  4.   

    楼上的,具我所知:java里的基本变量和reference放在栈里,对象放在堆里。那成员函数放那呢?
      

  5.   

    《Thinking in java 2e》我看过了。没有类似问题的解答。
    听说第三版出来了,可是是e文的,我还没看。
      

  6.   

    只有基本数据类型才放在栈里,其它的都放在堆中,例如对象。array在java中是对象类型,所以是放在堆中的
      

  7.   

    回答:
    1、java在堆heap中使用new命令分配内存的,java利用重载(overriding)实现多态,java中没有指针,而是使用所谓引用(reference)。
    2、java的基本变量的array存在stack(栈)里,pass by reference
      

  8.   

    哦……函数放硬盘上?????????????太夸张了!你怎么知道的,看的什么书?呵呵,至于基本变量的array放哪,已经有好几个答案了,我也认为放栈里比较合理。只是java用了个new挺唬人的。
      

  9.   

    唉,学java是不是还要学jvm啊?不然好多问题不明白,各位知道有什么好的关于jvm的书吗?恩,我想了想成员函数放硬盘上也很有可能,可是不是效率太底了。static函数呢?也放硬盘上?
      

  10.   

    在java语言里,所有类的实例都放在堆中分配存储空间。
    diaopeng的意思大概不是说类的实例。
      

  11.   

    “呵呵,至于基本变量的array放哪,已经有好几个答案了,我也认为放栈里比较合理。只是java用了个new挺唬人的。“你为什么认为放在栈里合理?
    “java用了个new挺唬人的“什么意思?
      

  12.   

    恩,昨天我说基本变量的array放在栈(stack)的说法是错的。
    应该是放在堆(heap)里。放在栈里的想法的确很菜鸟!
    用一个小程序就能说名我的错误!public class TestArray
    {
       private int[] test;
       privat void createArray()
       {
            int[] a = {0,1,2,3,4,5};
            test = a;
       }
       public void test()
      {
           creatArray();
           for(int i = 0 ; i < test.lenght; i++)
               System.out.print(test[i]);  
      }
      public static void main (String[] arg)
      {
          TestArray a = new TestArray();
          a.test();
      }
    }
    如果是放在栈里那么这段程序所打印的内容将不可想象。然而打印出了我们想要的结果正说明
    存放基本变量的array放在堆里。