好像是不行的,在java中没有这个必要吧,你有什么用呢。

解决方案 »

  1.   

    首先好像这样做确实没有太大的必要.其次,好像也不是完全没有办法.
    比如如果你的对象声明了序列化接口,那么可以把它序列化到字节流中,看看流的长度就知道你的对象的大小了.另外,在Java的本地方法中是可以知道对象的大小的.
      

  2.   

    MyClassA{
      String str;
    }MyClassB{
      String str = null;
    }MyClassC{
      String str = "";
    }上面三个类的大小关系是怎样啊?
      

  3.   

    类没有实例化哪里有什么大小?
    大小也是实例化后的对象的大小
    看看下面的程序,按照你定义的意思来做的:import java.io.*;public class Test {
        private static class MyClass implements Serializable {
            public String str;
        }    public static void main(String[] args) throws Exception {
            MyClass c1 = new MyClass();
            MyClass c2 = new MyClass();c2.str=null;
            MyClass c3 = new MyClass();c3.str="";
            MyClass c4 = new MyClass();c4.str="ABC";        test(c1);
            test(c2);
            test(c3);
            test(c4);
        }    private static void test(MyClass c) throws Exception {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(bos);
            oos.writeObject(c);
            System.out.println("Length="+bos.toByteArray().length);
            oos.close();
            bos.close();
        }
    }
    输出的结果是:
    Length=61
    Length=61
    Length=63
    Length=66
    看完这段程序,明白对象的大小的概念了吧.
      

  4.   

    那也就是说,c1、c2,c3,c4 在内存中所占的内存大小也是不一样的了。是吗?
      

  5.   

    一篇英文的文章,供参考
    http://www.javaworld.com/javaworld/javatips/jw-javatip130.html