2017-01-06 7 views
-1

私はクラス、つまりカテゴリを持っています。そのメンバ変数とゲッタを持つPOJOであり、インスタンス化することができます。 Categoryには、Contractという名前の静的ネストされたクラスが含まれます。契約には、データベーステーブルの列名のような定数のみが含まれています。最後に、カテゴリには新しいカテゴリを設定してこのインスタンスをインスタンス化する静的ビルダーも含まれています。スタティックネストされたクラスのパフォーマンスとメモリにどのような影響がありますか

class Category { 
    static class Contract{} 
    static class Builder{} 
} 

このクラス構造のパフォーマンスやメモリに関して問題がありますか? 私は100のカテゴリーを意味し、それぞれは契約とビルダーを持っています。 ヘルプや情報を歓迎します。

+0

[Javaでオブジェクトのメモリ消費量とは何ですか?](http://stackoverflow.com/questions/258120/what-is-the-memory-consumption-of-an-object-in- Java) – shmosel

+1

Javaには「静的内部クラス」はありません。 "staticキーワードは、非内部クラスまたはインタフェースTの本体内のメンバー型Cの宣言を変更することができます。その効果は、Cが内部クラスではないことを宣言することです。 https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.5.1「内部クラスは、明示的または暗黙的に静的宣言されていないネストされたクラスです。 https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.1.3 –

+0

あなたは100カテゴリのインスタンスまたはカテゴリのような100クラスを意味しますか?あなたが懸念しているパフォーマンスやメモリへの影響はどれですか?これは何の背景ですか? – HuStmpHrrr

答えて

0

Categoryクラスのインスタンスを作成するときに、静的ネストされたクラスのインスタンスは作成されません。したがって、メモリの影響はありません(ネストされたクラスがトップレベルクラスとして宣言されているかのように、メモリの観点から、コードは動作します)。

内部クラス(静的ではない)であれば、答えは異なります。

0

パフォーマンスやメモリに問題があるかどうかは、クラスがどのように定義され使用されているかに左右され、ネストされたクラスであるかどうかには影響されません。

関連する問題