这是一个面试问题: 有一个自定义PERSON对象,它有一些属性,如名称,年龄,性别等。编写一个可以返回此对象大小的泛型函数。它不应该使用Java的任何直接API来获取Object的大小。该对象可以包含int,float,char或任何自定义类型,如地址。
答案 0 :(得分:1)
在java中,对象的大小可以说非常接近其成员大小的总和(静态除外)。
请注意,如果您正在使用java8,则原始包装器具有一个字段Bytes
公共静态,它表示基元的大小(以字节为单位)。
来源:http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html
如果您不使用Java8,可以使用其中一些:
您还应该注意bytes alignement
,即在8位段上放置一个7字节长的元素,但这取决于您的JVM,而且更像是一个硬件问题。