Java の 8 つの主要なパッケージング クラス (非常に詳細です!)

1. 8つの基本データ型に対応するパッケージング型名

基本的なデータ型 梱包の種類
バイト java.lang.Byte (親クラス番号)
短い java.lang.Short (クラス番号)
整数 java.lang.Integer (クラスの数値)
長さ java.lang.Long (クラス番号)
浮く java.lang.Float (親クラスNumber)
ダブル java.lang.Double (クラスの数値)
ブール値 java.lang.Boolean (クラスのオブジェクト)
チャー java.lang.Character (クラス オブジェクト)

注: 8 つの包装カテゴリーに属します。引用数据类型

2.親クラスのNumberメソッド

メソッド名 効果
バイトbyteValue () 指定された値をバイト形式で返します
抽象double doubleValue () 指定された値をdouble形式で返します
抽象浮動小数点数 floatValue () 指定された値をfloat形式で返します
抽象int intValue () 指定された値をint形式で返します
抽象的な長い長い値() 指定された値を長い形式で返します
short shortValue () 指定された値を短い形式で返します

注:これらのメソッドは、数値ラッパー クラスのすべてのサブクラスで使用できこれらのメソッドを担当します拆箱

3. 手動梱包/手動開梱

public class IntegerTest02 {
    
    
    public static void main(String[] args) {
    
    

        // 123这个基本数据类型,进行构造方法的包装达到了:基本数据类型向引用数据类型的转换。
        // 基本数据类型 -(转换为)->引用数据类型(装箱)
        Integer i = new Integer(123);

        // 将引用数据类型--(转换为)-> 基本数据类型
        float f = i.floatValue();
        System.out.println(f); //123.0

        // 将引用数据类型--(转换为)-> 基本数据类型(拆箱)
        int retValue = i.intValue();
        System.out.println(retValue); //123
    }
}

4. 構築方法 (Java 9 以降では古い)

整数コンストラクター名
整数(int値)
整数(文字列)

知らせ:

  • Byte、Short、Long、Float、Double、Boolean の構築方法は Integer の構築方法と同じです。
  • キャラクターにはコンストラクターが1 つだけあります
文字構築方法名
文字(char値)

注: Float は Integer より1 つ多くなります。

Float コンストラクター名
Float(倍精度値)

例えば。

public class IntegerTest03 {
    
    
    public static void main(String[] args) {
    
    

        // Java9之后不建议使用这个构造方法了。出现横线表示已过时。
        // 将数字100转换成Integer包装类型(int --> Integer)
        Integer x = new Integer(100);
        System.out.println(x);

        // 将String类型的数字,转换成Integer包装类型。(String --> Integer)
        Integer y = new Integer("123");
        System.out.println(y);

        // double -->Double
        Double d = new Double(1.23);
        System.out.println(d);

        // String --> Double
        Double e = new Double("3.14");
        System.out.println(e);
    }
}

5. 包装定数

定数プロパティ
MAX_VALUE
MIN_VALUE

注: Byte、Short、Integer、Long、Float、Double が使用可能です。

例えば。

public class IntegerTest04 {
    
    
    public static void main(String[] args) {
    
    
        // 通过访问包装类的常量,来获取最大值和最小值
        System.out.println("int的最大值:" + Integer.MAX_VALUE);
        System.out.println("int的最小值:" + Integer.MIN_VALUE);
        System.out.println("byte的最大值:" + Byte.MAX_VALUE);
        System.out.println("byte的最小值:" + Byte.MIN_VALUE);
    }
}

6. 自動ボックス化/自動アンボックス化 (java5 の新機能)

1. 自動ボックス化と自動アンボックス化とは何ですか?

  • オートボクシング:基本データ型は自動的にパッケージ化クラスに変換されます
  • 自動アンボックス化:パッケージ化クラスは自動的に基本データ型に変換されます。

2. 自動ボックス化と自動アンボックス化の利点は何ですか?

  • プログラムが簡単
  • 自動アンボックス化により、Number クラスのメソッドは必要なくなります。

例えば。

public class IntegerTest05 {
    
    
    public static void main(String[] args) {
    
    
        // 900是基本数据类型
        // x是包装类型
        // 基本数据类型 --(自动转换)--> 包装类型:自动装箱
        Integer x = 900; // 等同于:Integer z = new Integer(900);
        System.out.println(x);

        // x是包装类型
        // y是基本数据类型
        // 包装类型 --(自动转换)--> 基本数据类型:自动拆箱
        int y = x;
        System.out.println(y);
    }
}

注: オートボクシングの最下層は実際には新しいオブジェクトです。

public class IntegerTest05 {
    
    
    public static void main(String[] args) {
    
    
        // z是一个引用,z是一个变量,z还是保存了一个对象的内存地址。
        Integer z = 1000; // 等同于:Integer z = new Integer(1000);
        
        // 分析为什么这个没有报错呢?
        // +两边要求是基本数据类型的数字,z是包装类,不属于基本数据类型,这里会进行自动拆箱。将z转换成基本数据类型
        // 在java5之前你这样写肯定编译器报错。
        System.out.println(z + 1);//1001

        Integer a = 1000; // Integer a = new Integer(1000); a是个引用,保存内存地址指向对象。
        Integer b = 1000; // Integer b = new Integer(1000); b是个引用,保存内存地址指向对象。
        System.out.println(a == b); //false
    }
}

知らせ:

  • ==この演算子は自動ボックス化解除メカニズムをトリガーしません
  • == は、 2 つのオブジェクトのメモリ アドレスが同じかどうかを常に判断します。
  • 自動ボックス解除メカニズムは、計算を待機しているときにのみ+ - * /トリガーされます。

7. (メソッド領域) 整数定数プール

public class IntegerTest06 {
    
    
    public static void main(String[] args) {
    
    
        Integer a = 128;
        Integer b = 128;
        System.out.println(a == b); //false

        //原理:x变量中保存的对象的内存地址和y变量中保存的对象的内存地址是一样的。
        Integer x = 127;
        Integer y = 127;
        // == 永远判断的都是两个对象的内存地址是否相同。
        System.out.println(x == y); //true
    }
}

Javaではプログラムの実行効率を高めるため、[-128 ~ 127]間にあるパッケージ化オブジェクトをすべて事前に作成し、メソッド領域の「」に配置します整数型常量池

その目的は、この範囲のデータが使用される限り、新しいデータを作成する必要はなく、整数定数プールから直接取得できることです。

ここに画像の説明を挿入します

8. 整数メソッド

メソッド名 効果
静的整数デコード(文字列 nm) 文字列を整数に変換
静的 int比較(int x, int y) 2 つの数値が等しいかどうかを比較します。等しい場合は 0 を返します。前者が大きく後者が小さい場合は 1 を返します。後者が前の数値より大きい場合は -1 を返します。
静的 int符号(int i) 符号関数; 負の数は -1 を返します; 正の数は 1 を返します; 0 は 0 を返します
静的文字列toBinaryString (int i) i をバイナリに変換します
静的文字列toHexString (int i) i を 16 進数に変換する
静的文字列toOctalString (int i ) i を 8 進数に変換します
一般的な方法
static int parseInt (文字列) 文字列を int に変換する
静的整数valueOf (文字列) 文字列を整数に変換する
文字列toString () 整数から文字列へ
ブール値に等しい(オブジェクト obj) 2 つの整数が等しいかどうかを判断します

注: Byte、Short、Long、Float、Double、Boolean のメソッドはほぼ同じです。

例えば。

class IntegerTest{
    
    
    public static void main(String[] args) {
    
    
        Integer d = Integer.decode("123");
        System.out.println(d);//自动拆箱 123

        Integer a = 100;
        Integer b = 100;

        int res1 = Integer.compare(a, b);
        System.out.println(res1);//0
        res1 = Integer.compare(-a, b);
        System.out.println(res1);//-1
        res1 = Integer.compare(a, -b);
        System.out.println(res1);//1

        System.out.println(a.equals(b));//true

        int i = Integer.parseInt("123");
        System.out.println(i);//123

        System.out.println(Integer.signum(-123));//-1
        System.out.println(Integer.signum(123));//1
        System.out.println(Integer.signum(0));//0

        System.out.println(Integer.toBinaryString(10));//1010
        System.out.println(Integer.toOctalString(10));//12
        System.out.println(Integer.toHexString(10));//a

        String s = Integer.toString(123);
        System.out.println(s);//123

        Integer int1 = Integer.valueOf("123");
        System.out.println(int1);//123
    }
}

9. キャラクターメソッド

メソッド名 効果
char charValue () 文字を文字に変換
int CompareTo (文字別の文字) 2 つの文字が等しいかどうかを判断します。等しい場合は 0 を返します。前者の方が大きく後者の方が小さい場合は 1 を返します。後者の方が前の方が小さい場合は -1 を返します。
一般的な方法
ブール値に等しい(オブジェクト obj) 2 つの文字が等しいかどうかを判断する
文字列toString () 文字を文字列に変換
静的ブール値isDigit (char ch) ch が数値かどうかを判断する
静的ブール値isLetter (char ch) ch が文字かどうかを判断する
静的ブール値isLetterOrDigit (文字 ch) ch が文字か数字かを判断する
静的ブール値isLowerCase (char ch) ch が小文字かどうかを判断する
静的ブール値isUpperCase (文字 ch) ch が大文字かどうかを判断する
静的ブール値isSpaceChar (文字 ch) ch がスペースかどうかを判断する
static 文字値Of (char c) 文字を文字に変換

例えば。

class CharacterTest{
    
    
    public static void main(String[] args) {
    
    
        Character c = 'a';

        char res1 = c.charValue();
        System.out.println(res1);//a

        Character a = 'a';
        Character b = 'b';
        System.out.println(a.compareTo(b));//-1

        System.out.println(a.equals(b));//false

        System.out.println(Character.isDigit('1'));//true

        System.out.println(Character.isLetter('a'));//true

        System.out.println(Character.isLetterOrDigit('1'));//true
        System.out.println(Character.isLetterOrDigit('a'));//true

        System.out.println(Character.isLowerCase('a'));//true

        System.out.println(Character.isUpperCase('A'));//true

        System.out.println(Character.isSpaceChar(' '));//true

        System.out.println(c.toString());//"a"

        System.out.println(Character.valueOf('c'));//c

    }
}

おすすめ

転載: blog.csdn.net/qq_44715943/article/details/116331282