Java---包装类
包装类的分类
1. 针对八种基本数据类型相应的引用类型--包装类
2. 有了类的特点,就可以调用类的方法
基本数据类型 | 包装类 |
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
Boolean
Character
Byte
Short
Integer
Long
Float
Double
包装类型和基本数据的转换
演示 包装类 和 基本数据类型的相互转换,这里以 int 和 Integer 演示
1)jdk5 前的手动装箱和拆箱方式,装箱:基本类型 -> 包装类型,反之,拆箱
2)jdk5 以后(含jdk5)的自动装箱和拆箱方式
3)自动装箱底层调用的是 valueOf 方法,比如 Integer.valueOf()
下面以 int <-> Integer 为例
package com.heima.Hello.Wrapper;public class Integer01 {public static void main(String[] args) {// 演示 int <-> Integer 的装箱和拆箱// jdk5 前是手动装箱和拆箱// 手动装箱int n1 = 100;Integer integer = new Integer(n1);Integer integer1 = Integer.valueOf(n1);// 手动拆箱// Integer -> intint i = integer.intValue();//jdk5以后,就可以自动装箱和拆箱int n2 = 200;// 自动装箱 int -> IntegerInteger integer2 = n2; // 底层使用的还是 Integer.valueOf(n1)// 自动拆箱 Integer -> intint n2_new = integer2; // 底层使用的仍然是 intValue()方法}
}
经典例题
package com.heima.Hello.Wrapper;public class WrapperExercise01 {public static void main(String[] args) {Object obj1 = true? new Integer(1) : new Double(2.0); // 三元运算符是一个整体,运行结果看最高的,即 Double类型System.out.println(obj1); // 什么? 1.0Object obj2;if (true)obj2 = new Integer(1);elseobj2 = new Double(2.0);System.out.println(obj2); // 1// 输出什么 ? 1 分别计算}
}
运行结果
包装类 VS String
package com.heima.Hello.Wrapper;public class WrapperVSstring {public static void main(String[] args) {// 包装类 (Integer) -> StringInteger i = 100; // 自动装箱// 方式 1String str1 = i + "";// 方式 2String str2 = i.toString();// 方式 3String str3 = String.valueOf(i);// String -> IntegerString str = "12345";// 方式 1Integer i1 = Integer.parseInt(str); // 使用到自动装箱// 方式 2Integer i2 = new Integer(str); // 构造器System.out.println("ok...");}
}
Integer 类 和 Character 类的常用方法
Integer 类 和 Character 有些常用的方法,我们一起来使用一下
1. Integer类的常用方法
Integer
类用于处理整数类型(int
)。以下是其常用方法:
静态方法(直接通过类名调用):
parseInt(String s)
:将字符串转换为int
值。例如,Integer.parseInt("123")
返回123
。valueOf(String s)
或valueOf(int i)
:将字符串或int
转换为Integer
对象。例如,Integer.valueOf("456")
返回一个Integer
对象。toString(int i)
:将int
转换为字符串。例如,Integer.toString(789)
返回"789"
。toBinaryString(int i)
:将整数转换为二进制字符串。例如,Integer.toBinaryString(10)
返回"1010"
。toHexString(int i)
:将整数转换为十六进制字符串。例如,Integer.toHexString(255)
返回"ff"
。compare(int x, int y)
:比较两个int
值,返回-1
(小于)、0
(相等)或1
(大于)。例如,Integer.compare(5, 3)
返回1
。
实例方法(通过
Integer
对象调用):intValue()
:将Integer
对象转换为int
值。例如,new Integer(100).intValue()
返回100
。equals(Object obj)
:比较对象是否相等。例如,new Integer(200).equals(new Integer(200))
返回true
。
compareTo(Integer anotherInteger)
:比较两个Integer
对象,返回-1
、0
或1
。例如,new Integer(50).compareTo(new Integer(60))
返回-1
。public class IntegerExample {public static void main(String[] args) {// 静态方法示例int num = Integer.parseInt("42"); // 字符串转intString binary = Integer.toBinaryString(10); // 转二进制字符串System.out.println("Parsed int: " + num); // 输出: Parsed int: 42System.out.println("Binary: " + binary); // 输出: Binary: 1010// 实例方法示例Integer obj = Integer.valueOf(100);int value = obj.intValue(); // 对象转intSystem.out.println("Integer value: " + value); // 输出: Integer value: 100} }
2. Character类的常用方法
Character
类用于处理字符类型(char
)。以下是其常用方法:静态方法(直接通过类名调用):
isDigit(char ch)
:检查字符是否为数字(0-9)。例如,Character.isDigit('5')
返回true
。isLetter(char ch)
:检查字符是否为字母(a-z或A-Z)。例如,Character.isLetter('a')
返回true
。isLetterOrDigit(char ch)
:检查字符是否为字母或数字。例如,Character.isLetterOrDigit('@')
返回false
。isWhitespace(char ch)
:检查字符是否为空白字符(如空格、制表符)。例如,Character.isWhitespace(' ')
返回true
。isUpperCase(char ch)
和isLowerCase(char ch)
:检查字符是否为大写或小写。例如,Character.isUpperCase('A')
返回true
。toUpperCase(char ch)
和toLowerCase(char ch)
:将字符转换为大写或小写。例如,Character.toLowerCase('B')
返回'b'
。digit(char ch, int radix)
:将字符转换为指定进制的数字值。例如,Character.digit('A', 16)
返回10
(十六进制)。
实例方法(通过
Character
对象调用):charValue()
:将Character
对象转换为char
值。例如,new Character('x').charValue()
返回'x'
。equals(Object obj)
:比较对象是否相等。例如,new Character('a').equals(new Character('a'))
返回true
。compareTo(Character anotherCharacter)
:比较两个Character
对象。例如,new Character('c').compareTo(new Character('b'))
返回1
。public class CharacterExample {public static void main(String[] args) {// 静态方法示例boolean isDigit = Character.isDigit('7'); // 检查数字char upper = Character.toUpperCase('h'); // 转大写System.out.println("Is digit? " + isDigit); // 输出: Is digit? trueSystem.out.println("Uppercase: " + upper); // 输出: Uppercase: H// 实例方法示例Character obj = new Character('k');char ch = obj.charValue(); // 对象转charSystem.out.println("Character: " + ch); // 输出: Character: k} }