【effective java】49.基本タイプは梱包の基本タイプより優先する

1513 ワード

基本タイプと梱包基本タイプには3つの主な違いがあります.1、基本タイプは値のみで、梱包基本タイプは値とは異なる統一性を持っています.2、基本タイプは機能完備の値しかないが、各梱包基本タイプは基本タイプのすべての機能値に対応するほか、非機能値-nullがある.3、基本タイプは梱包基本タイプより時間とスペースを節約する.
    /**
     *   first second       int    Integer  ,         false
     */
    private static void test1() {
        Integer first=new Integer(1);
        Integer second=new Integer(1);
        System.out.println(first==second);//false
        System.out.println(first.equals(second));//true

    }

    /**
     *      Unbelievable,    NullPointException  ,    i  Integer,  int,      null   0,
     *   (i == 42) , Integer int    ,          ,  null       ,     Nu'llPointException 。
     */
    static Integer i;
    private static void test2() {
        if (i == 42) {
            System.out.println("Unbelievable");
        }
    }
    private static void test3() {
        {
            /**
             *         ,         sum         Long,       long,         ,            ,               。
             */
            long begintime=System.currentTimeMillis();
            Long sum = 0L;
            for(long i = 0; i 

1.集合の要素として、キーと値;2.パラメトリックタイプでは、javaではThreadLocal 3のような基本タイプを使用できないため、梱包基本タイプをタイプパラメータとして使用する必要があります.反射するメソッド呼び出しでは、梱包の基本タイプを使用する必要があります.
要するに、基本タイプは梱包基本タイプより優先されます.基本的なタイプはもっと簡単で、もっと速いです.プログラムが==操作で2つの梱包基本タイプを行うと、同じ性比較が行われ、これはあなたが望んでいるものではありません.プログラムが梱包と解体の基本タイプに関する混合タイプ計算を行うと、解体が行われ、プログラムが解体されるとNull PointerException異常が放出されます.最後に、プログラムが基本タイプの値を箱詰めすると、オーバーヘッドが高く、不要なオブジェクトが作成されます.