ノートを読みます

、基本的な型を使用してみてください1.ので、ヌル== int型、パフォーマンスの問題、問題3比較の問題の場合

コンパレータ<整数>オーダー=(i、j)は- >(I <J)?-1:(?(I == j)は0:1 );
INTは比較= order.compare(新しい整数(2)、新しい整数(2 ))。
System.out.println(比較)。

ここでは出力がゼロであるべき予想だが、実際には1つです。分析は、私<jはここで自動的に、NTにオブジェクト参照が決定され、その後、私== jは、==開梱、それは0が策定され、falseです。

これは、次のように変更しました。

        コンパレータ<整数>順序=(I、J) - > {
             int型 A = I、B = J。
            戻る私は<J?-1:(I == jを0:1? )。
        }。

また、次のエラーコードことに留意すべきで、それがnullポインタ例外が、コンパイラになります。整数値がnull、nullを== int型であるようなAの場合があり機能します、それは私int型定義に置き換える必要があります。

 静的な整数I;
    パブリック 静的 ボイドメイン(文字列[]引数){
         場合(I == 2 ){ 
            するSystem.out.println( "OK" )。
        } 
    }

 だから、パッケージの種類は、ときに使用する必要がありますか?彼らはいくつかの合法的な用途があります。最初は、要素、キーと値のコレクションとしてです。基本的なタイプに設定することができない、パッケージタイプを使用する必要があります。これは、一般的なケースでは、特殊なケースです。パラメータの種類及び方法は、パッケージ型パラメータの型として使用されなければならないではJavaプリミティブ型ので、許可されていません。ThreadLocalの<整数>型はThreadLocalの<整数>を使用する必要がありますたとえば、変数を宣言することはできません。反射メソッドが呼び出される行った後、包装の種類を使用しなければなりません。

要するに、長い選択などのように、優先順位はなく、包装の種類よりも、基本的なタイプを使用するように与えられるべきです。基本的なタイプの簡単かつ迅速に。あなたは、包装の種類を使用する必要がある場合は、ご注意ください!オートボクシングは、パッケージタイプの長い使用を減らすが、何のリスク低下はありません。あなたのプログラムは、パッケージの2種類を比較するために==演算子を使用する場合、それは同一性比較を行いますが、これはほぼ確実にあなたが望んでいないものです。あなたのプログラムは、混合型のパッケージタイプと計算の基本的なタイプで実行された場合、それはあなたのプログラムの実行を開梱すると、NullPointerExceptionがスローされます開梱となります。あなたのプログラムは、梱包の基本的なタイプになりますとき、後で、それはコストがかかり、不必要なオブジェクトの作成につながることができます。

 

文字列を使用しないようにしてください2.、非常に従来の考え方は、あまり手の込んだありません

3.反射の使用を最小限に抑え、反射性能をひどく、(コンパイラがチェックしません)実際には任意のクラスへのアクセスを実現することが、面倒ではない非常に安全なことができます。次の書き込みの例

 

 

 

 

おすすめ

転載: www.cnblogs.com/CherryTab/p/11908879.html