包装类
Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八种基本数据类型对应的类统称为包装类(Wrapper Class),包装类均位于java.lang
包,继承Number
接口。
§ 常用包装类
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
注意:
8种包装类属于==引用类型==
§ 拆箱和装箱
以
Integer
为例,其余包装类相似,有特例会做出标注
方法
Integer(int value)
和Integer(String str)
:
根据形参构造
- 方法1种的形参类型根据各自基本类型改变,如
Double
是double
;Float
多了一个以double
为形参的方法;Character
没有以String
为形参的方法
intValue()
:
拆箱方法,返回基本数据类型
- 其他包装类该方法命名格式为基本类型 +
Value
手动拆箱/手动装箱
/*手动装箱*/
Integer i = new Integer(1);
Double d = new Double(12.21);
/*手动拆箱*/
int i2 = i.valueOf();
java9
以后废除了使用构造函数手动装箱
自动装箱/自动拆箱
- 自动装箱:基本数据类型自动转换成包装类
- 自动拆箱:包装类自动转换成基本数据类型
/*自动装箱*/
Integer i = 1;
/*自动拆箱*/
int i2 = i;
注意:
- 自动装箱底层还是new一个对象
==
运算符不会自动装箱,只有+
、-
、*
和/
等运算才会自动装箱
§ 常用API
Integer方法
Double
、Byte
、Short
、Long
、Float
、Boolean
方法与Integer
相似
int compareTo(Integer anotherInteger)
:
与
anotherInteger
比较大小
- 大于返回大于0的数
- 等于返回0
- 小于返回小于0的数
boolean equals(Object obj)
:
obj
是Integer
且和当前值相等返回true
static int compare(int x, int y)
:
比较x与y大小
- 前大后小返回大于0的数
- 相等返回0
- 前小后大返回小于0的数
static int signum(int i)
:
符号函数
- 负数返回-1
- 正数返回1
- 0返回0
static String toHexString(int i)
:
将i转成十六进制字符串
static int parseInt(String s)
:
字符串转int,不能转换抛出异常
static Integer valueOf(String s)
:
字符串转Integer,不能转换抛出异常
Character方法
int compareTo(Character anotherCharacter)
:
与
anotherCharacter
比较大小
- 大于返回大于0的数
- 等于返回0
- 小于返回小于0的数
boolean equals(Object obj)
:
obj
是Character
且和当前值相等返回true
static boolean isDigit(char ch)
:
判断ch是不是数字
static boolean isLetter(char ch)
:
判断是不是字母
static boolean isLetterOrDigit(char ch)
:
判断是不是字母或数字
static boolean isLowerCase(char ch)
:
判断是不是小写字母
static boolean isUpperCase(char ch)
:
判断是不是大写字母
static boolean isSpaceChar(char ch)
:
判断是不是空格
static Character valueOf(char ch)
:
char转Character