文章目录
包装类
包装类:基本数据类型,使用起来非常的方便,但是没有对应的方法操作基本类型的数据,可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类,可以使用包装类中的方法来操作这些基本类型的数据。
基本类型 | 包装类(引用类型)都位于java.lang包 |
---|---|
byte | Byte |
short | Short |
int | Integer [特殊] |
long | Long |
float | Float |
double | Double |
char | Character [特殊] |
boolean | Boolean |
都位于java.lang包下。可以直接使用,不用导包。
装箱与拆箱
装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)两种玩法:
构造方法:1.Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。 2.Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。(传递的字符串必须是基本类型的字符串"100"正确,若"abc"则报错)
静态方法:
static Integer valueOf(int i)
返回一个表示指定的 int 值的 Integer 实例。
static Integer valueOf(String s)
返回保存指定的 String 的值的 Integer 对象。
拆箱:在包装类中取出基本类型的数据(包装->基本类型的数据)一种玩法
成员方法:
int intValue()
返回:转换为 int 类型后该对象表示的数值。
自动拆箱装箱 jdk1.5后出的
public class IntegerClass {
public static void main(String[] args) {
//自动拆箱与装箱
Integer in=1;//自动装箱 相当于Integer in = new Integer(1);
int a=in;//自动拆箱 相当于int a = in.intValue(); 对象in用模板类的intValue()方法in.intValue();
System.out.println(in);
System.out.println(a);
in=in+2;//就相当于先拆为基本类型 in.intValue()+2得到的结果又装箱回去并赋值给in
System.out.println(in);
}
小总结:对象in用模板类的intValue()方法in.intValue();
public class Demo02 {
public static void main(String[] args) {
ArrayList<String> list2 =new ArrayList<>();
list2.add("wei");
System.out.println(list2);
ArrayList<Integer> list3 =new ArrayList<>();
list3.add(1);//这里边隐含了一个装箱(new Integer(1))
System.out.println(list3);//判断得出结论,输出不是对象的hashcade值,因为源码重写了toString方法
}
}
//打印
[wei]
[1]
基本类型和字符串类型的相互转换(基本类型->字符串(String))
-
基本类型的值直接+字符串(1+" ")
-
包装类的静态方法toString(参数),不是Object类的toString() 是包装类重载后的toString();
static String toString(int i) 返回一个表示指定整数的 String 对象。
-
String类的静态方法valueOf
字符串类型和基本类型的相互转换(字符串(String)–>基本类型)
1.使用包装类里的静态方法
比如Integer包装类 static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。 返回:用十进制参数表示的整数值。
package com.Class.Demo01.IntegerClass;
public class Demo02 {
public static void main(String[] args) {
// 一.基本类型转字符串类型
//1.基本类型的值直接+字符串(1+" ")
int i=100;
String s1=i+"";//int转String
System.out.println(s1+200);//100200 验证是不是String类型
//2.包装类的静态方法toString(参数)
String s2 = Integer.toString(200);
System.out.println(s2+200);//200200 验证是不是String类型
//3.String类的静态方法valueOf
String s3 = String.valueOf(100);
System.out.println(s3+200);//100200 验证是不是String类型
//二.字符串类型转基本类型
int i1 = Integer.parseInt(s1);
System.out.println(i1+100);//验证是不是转成int基本类型了
}
}