文章目录
- Object类 &Number类
- 1.Object
- 2.Number类
- 包装类,装箱,拆箱
- 1.手动装箱/拆箱
- 2.自动装箱/ 拆箱
- 应用——常见包装类
- 1.Integer类
- 2.Character类
- 3.实战——各种类型之间的转换
- (1)int和Integer相互转换
- (2) char与int的互相转化
- (3)基本数据类型转化为String
- (4)String转化为基本数据类型
Object类 &Number类
八种基本数据结构都分别有对应的包装类,属于引用数据类型。包装类层次结构如下
所以先介绍Object类和Number类
1.Object
2.Number类
常用方法
方法 | 含义 |
---|---|
xxx xxxValue() | 将 Number 对象转换为xxx数据类型的值并返回。如 int intValue() |
valueOf() | 返回一个 Number 对象指定的内置数据类型 |
toString() | 以字符串形式返回值 |
parseInt() | 将字符串转换为int型 |
注意下面的Integer等类都继承了Number类
包装类,装箱,拆箱
Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能。(指路基本数据类型和引用数据类型区别)
所以 Java 为每种基本数据类型分别设计了对应的类,称为包装类
装箱:基本数据类型转换为包装类的过程称为装箱( int 包装成 Integer 类的对象)
拆箱:包装类变为基本数据类型的过程称为拆箱( Integer 类的对象简化为 int)
八种基本数据类型对应的包装类如下:
基本类型 | 对应的包装类(位于java.lang包中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
1.手动装箱/拆箱
手动的意思就是按照创建对象那套方法来处理包装类,但目前已经很少用了(Java5 提出了自动装箱),看一下示例吧:
// 将2023这个基本数据类型进行装箱,基本数据类型--->包装类
Integer i = new Integer(2023);
// 拆箱,将引用数据类型---> 基本数据类型
int retValue = i.intValue();
System.out.println(retValue); //2023
// 也可以转换为不同类型的
float f = i.floatValue();
System.out.println(f); //2023.0
2.自动装箱/ 拆箱
目前都是自动装箱、拆箱
// 自动装箱
Integer x = 2023; // 等同于:Integer i = new Integer(2023);
System.out.println(x);
// 自动拆箱,x是包装类型,y是基本数据类型
int y = x;
System.out.println(y);
应用——常见包装类
主要讲解常见的Integer类和Character类
1.Integer类
Integer 类在对象中包装了一个基本类型 int 的值
(1)常用方法
注意基本都是static类,所以可以直接通过类调用。前几个方法很重要!
方法名 | 说明 |
---|---|
static int parseInt(String s) | 将数字字符串转换为 int 数值 |
string toString(int i) | 返回一个表示该 Integer 值的 String 对象 |
static Integer valueOf(String s) | 返回保存指定String值的 Integer 对象 |
static String toBinaryString(int i) | 将整型 i 转成二进制(另外还有转成8进制,16进制的方法) |
static Integer valueOf(int i) | 返回表示指定的 int 值的 Integer 实例 |
int intValue() | 以 int 类型返回该 Integer 的值 |
Byte、Short、Long、Float、Double、Boolean等和Integer方法都相似!
e.g.
String str = "456";
int num = Integer.parseInt(str); // 将字符串转换为int类型的数值
int i = 789;
String s = Integer.toString(i);
另外parseInt还可以转化为相应的进制数,因为完整的方法名是
static int parseInt(String s, int radix)
,其中radix是指定的基数(基数可以是 10, 2, 8, 或 16 等进制数)
(2)常量
前两个比较重要!
常量 | 含义 |
---|---|
MAX_VALUE | 值为 2 31 2^{31} 231-1 的常量,它表示 int 类型能够表示的最大值。 |
MIN_VALUE | 值为 − 2 31 -2^{31} −231 的常量,它表示 int 类型能够表示的最小值 |
SIZE | 用来以二进制补码形式表示 int 值的比特位数 |
TYPE | 表示基本类型 int 的 Class 实例 |
2.Character类
常用方法
方法 | 含义 |
---|---|
char charValue() | 将Character转成char |
String toString() | 将Character转成String |
static boolean isDigit(char ch) | 判断ch是不是数字 |
static boolean isLetter(char ch) | 判断ch是不是字母 |
boolean isLetterOrDigit(int codePoint) | 确定指定字符(Unicode 代码点)是否为字母或数字 |
boolean isLowerCase(char ch) | 确定指定字符是否为小写字母 |
boolean isUpperCase(char ch) | 确定指定字符是否为大写字母 |
char toLowerCase(char ch) | 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写 |
char toUpperCase(char ch) | 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写 |
3.实战——各种类型之间的转换
综合上面的方法,总结平时转换的需求
(1)int和Integer相互转换
这个上面提到过,可以手动也可以自动装箱
public static void main(String[] args) {
int m = 500;
Integer obj = new Integer(m); // 手动装箱
int n = obj.intValue(); // 手动拆箱
System.out.println("n = " + n);
}
(2) char与int的互相转化
因为两者都是基本数据类型,可以直接转化,一般是通过隐式转化或者强制转化
char - -> int,可以隐式转化,但是注意此时转化的是字符的ASCII值
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
如果是数字字符转化为int,常见的技巧是-'0'
char c='5';//定义一个char类型
int i = c1-'0';//char转换为int,为整型5
同理如果想要int转char,可以+'0'
int m = 5;
char c = m+'0';
(3)基本数据类型转化为String
拿int转String举例,一般有三种方法:
- 方式一:直接在数字后加一个空字符串
- 方式二:通过String类静态方法valueOf()——推荐
- 方法三:包装类的toString方法如
Integer.toString()
——推荐
// int 转换为 String
public static void main(String[] args) {
int number = 100;
//方式1
String s1 = number + "";
System.out.println(s1);
//方式2 public static String valueOf(int i)
String s2 = String.valueOf(number);
System.out.println(s2);
// 方式三, public static String toString(int i)
String s3 = Integer.toString(number);
System.out.println(s3);
}
(4)String转化为基本数据类型
除了Character类之外,其他所有包装类都具有parseXxx
静态方法可以将字符串参数转换为对应的基本类型,例如:
public static int parseInt(String s)
:将字符串参数转换为对应的int基本类型。public static float parseFloat(String s)
:将字符串参数转换为对应的float基本类型。
拿String转int举例,转换方式:
- 方式一:通过Integer静态方法parseInt()进行转换(推荐)
- 方式二:先将字符串数字转成Integer,再调用valueOf()方法
// String 转换为 int
public static void main(String[] args) {
String s = "100";
//方式1 public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println(y);
//方式2:String --- Integer --- int
Integer i = Integer.valueOf(s);
int x = i.intValue(); //public int intValue()
System.out.println(x);
}
参考链接:https://blog.csdn.net/qq_44715943/article/details/116331282