有时候很想知道占用了几个字节如: class A
   A xx = new A();
 xx是一个对象的引用,它到底占了几个字节的栈内存呢??

解决方案 »

  1.   

    不知道。
    java一般也不需要知道。
    栈内存容易管理,用完就退掉了,堆内存自动垃圾回收,更不用管了。
      

  2.   

    c语言的malloc分配对内存的时候需要说明需要多大的内存。而java不需要。
      

  3.   

    ms java内存管理都是内部完成的
    这就是他和c的区别。。
      

  4.   

    native 的方法...可以调用C的语法... 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。
      

  5.   

    那天也有人问这个问题,别人推荐的两个链接,很不错,推荐看看:
    Size of Java
    http://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.htmlJava Tip 130: Do you know your data size?
    http://www.javaworld.com/javaworld/javatips/jw-javatip130.html
      

  6.   

    java不同于C++有sizeof操作,因为它的基本类型长度是固定的,长度固定了一些事情就好办了,方便跨平台,C++的基本类型长度不是固定的,比如说int在某些机器上是32位,在另一些机器上16位,而你要在这2台不同机器上存贮同一个整数的话,你就要用sizeof来知道32位机器上该整数的字节数是多少,然后在16位的机器上分配相同字节数的字节给该整数,这里就用到sizeof了,而java中由于基本类型长度是固定的,所以就不需要用sizeof了。
      

  7.   

    没有,也不需要
    JAVA全是引用指针,就算给你sizeof函数,每个引用的大小也是相同的
    LZ去看看堆和栈的区别吧