一、java中八种基本数据类型对应的包装类型:
原始类型 包装类 原始类型所占的字节数
short Short 2个字节
int Integer 4个字节
long Long 8个字节
float Float 4个字节
double Double 8个字节
byte Byte 1个字节
char Character 2个字节
boolean Boolean 这个试编译环境而定
这样用户就很方便的完成了 String和int的转换 这样就方便了用户
原始类型 包装类 原始类型所占的字节数
short Short 2个字节
int Integer 4个字节
long Long 8个字节
float Float 4个字节
double Double 8个字节
byte Byte 1个字节
char Character 2个字节
boolean Boolean 这个试编译环境而定
思考:java中提供的八种基本数据类型不够用吗?为什么java中还要提供对应的包装类呢?
1.基本数据类型之间的相互转换不是都可以制动转换的,而你强制转换又会出问题,比如String类型的转换为int类型的,那么jdk为了方便用户就提供了相应的包装类。
2.便于函数传值
3.就是在一些地方要用到Object的时候方便将基本数据类型装换
例子:
public class Integer{
private int i;
public Integer(int a){
i =a;
}
public static int parseToInt(){
return i;
}
public static Integer valueOf(String str){
//封装一系列的逻辑最终将str转换成int类型的IntegerStr
return new Integer(IntegerStr);
}
}
上面是jdk关于Integer的一个例子
比如Integer intg = Integer.valueOf(str); int i = intg.parseToInt();这样用户就很方便的完成了 String和int的转换 这样就方便了用户
有时候一个函数需要传递一个Object的变量
而你想传递int类型的进去显然不行,怎么办呢,用到了包装类。
public void test(Object obj){
}
你想传递5进去就可以这样
test(new Integer(5));
二,包装类的使用
以Integer为例子~
public class IntegerTest{
public static void main(String[] args){
//获取int类型的最大值和最小值
System.out.println("int最小值:" + Integer.MIN_VALUE);
System.out.println("int最大值:" + Integer.MAX_VALUE);
//以int推byte
System.out.println("byte最小值:" + Byte.MIN_VALUE);
System.out.println("byte最大值:" + Byte.MAX_VALUE);
//创建Integer类型的对象
Integer i1 = new Integer(10); //int--> Integer
Integer i2 = new Integer("123"); //String --> Integer
System.out.println(i1); //10
System.out.println(i2); //123
//以下程序编译可以通过。但是运行的时候会报异常.数字格式化异常.
//虽然可以将字符串转换成Integer类型,但是该字符串也必须是"数字字符串".
//Integer i3 = new Integer("abcd"); //NumberFormatException
}
}
效果图:
Integer中常用的方法:
public class IntegerTest1{
public static void main(String[] args){
//int-->Integer
//基本数据类型-->引用类型
Integer i1 = new Integer(10);
//Integer-->int
//引用类型-->基本类型
int i2 = i1.intValue();
System.out.println(i2 + 1); //11
//重要:static int parseInt(String s);
//String-->int
int age = Integer.parseInt("25");
System.out.println(age+1); //26
//"abc"这个字符串必须是“数字字符串”才行.
//int price = Integer.parseInt("abc"); //NumberFormatException
//重要:static double parseDouble(String s);
double price = Double.parseDouble("3.0");
System.out.println(price+1.0); //4.0
//将int类型的十进制转换成2进制
String s1 = Integer.toBinaryString(10);
System.out.println(s1); //1010
//将int类型的十进制转换成16进制
String s2 = Integer.toHexString(10);
System.out.println(s2); //a
//将int类型的十进制转换成8进制
String s3 = Integer.toOctalString(10);
System.out.println(s3); //12
//int-->Integer
Integer i3 = Integer.valueOf(10);
//String--->Integer
Integer i4 = Integer.valueOf("10");
System.out.println(i3);
System.out.println(i4);
}
}
效果图如下:
包装类的作用还是很强大的~