2017-05-05 3 views
-3

これはインタビューの質問です: 名前、年齢、性別などのプロパティを持つカスタムPERSONオブジェクトがあります。このオブジェクト。 Objectのサイズを取得するためにJavaの直接APIは使用しないでください。このオブジェクトは、int、float、char、またはaddressのようなカスタムタイプを持つことができます。 Javaでjavaのカスタムオブジェクトのサイズを返すヘルパー関数

+0

クラスのすべてのサイズの合計を返すのはどうですか? – Nathan

+0

[この答えはあなたを助けるかもしれない](http://stackoverflow.com/a/52682/3143670) –

+1

良い質問([尋ねる]チェック)ではないのですが、その後、再び、私は答えで実際に興味があります。私が実際には得られないのは、「Javaの直接APIを使用すべきではない」*という意味です。 – domsson

答えて

1

、オブジェクトのサイズは、(静的なものを除く)、そのメンバーのサイズの合計に本当に近くであると言うことができます。

java8を使用している場合、プリミティブラッパーにはプリミティブのサイズを表すバイトであるBytes public staticというフィールドがあります。

出典:あなたはJava8を使用していない場合http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html

は、あなたがこれらのいくつかを使用することができます。

  • anObject.getClass()isPrimitive();
  • anObject.getClass()。getFields();
  • 再帰。

また、別名8ビットのセグメントに7バイト長の要素を配置し、bytes alignementの注意が必要であるが、これはあなたのJVMの依存およびハードウェアの問題の詳細ですします。

関連する問題