Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:
为什么要用包装类
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,将每个基本数据类型设计一个对应的类进行代表,这种方式增强了Java面向对象的性质。java中的数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。为了弥补这个缺陷,java提供了包装类。
装箱与拆箱
基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。
Integer num1 = new Integer(1); //基本数据类型转为包装类
int num2 = num1.intValue(); //包装类型转为基本数据类型
System.out.println(num1 +" "+ num2);
Java为了方便我们使用,以及出于其他目的如性能调优,在jdk1.5之后给我们提供了自动装箱、拆箱机制。
//1、包装类中的自动装箱拆箱机制
Integer num1 = 1; //自动装箱
int num2 = num1; //自动拆箱
System.out.println(num1 +" "+ num2);
基本类型与字符串之间的转换
基本类型转换为String
1.基本类型+“”
int a=12;
String c=a+"";
2.调用toString方法
int a=12;
Integer a1=a;
String s1 = a1.toString();
3.使用String的静态方法valueof转换
int a=12;
String s1 = String.valueOf(a);
String转换成基本类型
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:
parseByte(String s)
:将字符串参数转换为对应的byte基本类型。
parseShort(String s)
:将字符串参数转换为对应的short基本类型。
parseInt(String s)
:将字符串参数转换为对应的int基本类型。
long parseLong(String s)
:将字符串参数转换为对应的long基本类型。
float parseFloat(String s)
:将字符串参数转换为对应的float基本类型。
double parseDouble(String s)
:将字符串参数转换为对应的double基本类型。
boolean parseBoolean(String s)
:将字符串参数转换为对应的boolean基本类型。
public static void main(String[] args) {
int a=Integer.parseInt("100");
short a1=Short.parseShort("100");
byte a2=Byte.parseByte("100");
double a3=Double.parseDouble("100.25");
float a4=Float.parseFloat("100.2");
long a5=Long.parseLong("99999");
boolean a6=Boolean.parseBoolean("true");
}
注意;boolean类型只有是true的时候转换的boolean的值才是true,其他的都是false。