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
}
}