java装箱

装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。

Java的数据类型
在这里插入图片描述
基本数据类型的转换
在这里插入图片描述

数据类型的转换分为三种:
简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。
(1) 简单数据类型的转换。
由低级到高级分别为(byte,short,char)-int-long-float-double.
简单数据类型转换分为自动类型转换、高级到低级的强制类型转换、包装类过渡类型转换。
1) 自动类型转换
1.低级变量可以直接转换为高级变量
例子:
Byte b;
Int i= b;
Long l =b;
Float f = b;
Double d= b;
2.如果低级类型为char型,向高级类型(整型)转换时,会转换为对应的ASCII码。
3.对于byte、short、char三种类型而言,它们是相同级别的,因此,不能相互自动转换,可以使用下述的强制类型转换。
Short I = 99;
Char c = (char)I;
2) 强制类型转换

高级变量转换为低级变量,可能会导致溢出或精度的下降。
3) 包装类过渡类型转换

1.基本数据类型对应的包装器类型。
在这里插入图片描述
String和Date本身就是类,不存在包装类的概念。
在进行简单数据 类型之间的转换(自动转换或强制转换)时,可以利用包装类进行中间过渡。一般情况下,首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。
1.当希望把float型转换为double型时:
Float f1 = 100.00f;
Float F1 = new float(f1);
Double d1 = F1.doubleValue();
2.当希望把int型转换为double型时,自动转换:
Int i1 =200; double d1 = i1;
3.简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。
Boolean(Boolean value)
Character(char value)
Integer(int value)
Long(long value)
Float(float value)
Double(double value)
(2)字符串型与其他数据类型的转换
Characrer、Integer、Float、Double、Boolean、short等类的toString()方法用于将字符、整数、浮点数、双精度数、逻辑数、短整型等类转换为字符串如下所示

public class Test {
public static void main(String[] args) {
	int i1 =10;
	float f1 = 3.14f;
	double d1 = 3.1415926;
	Integer I1 = new Integer(i1);
	Float F1 = new Float(f1);
	Double D1 = new Double(d1);
	String si1 = I1.toString();
	String sf1 = F1.toString();
	String sd1 = D1.toString();
	System.out.println("i1类型"+getType(i1));
	System.out.println("f1类型:"+getType(f1));
	System.out.println("d1类型"+getType(d1));
	System.out.println("si1类型:"+getType(String.valueOf(si1)));//返回String
	System.out.println("si1"  +  si1);
	System.out.println("sf1"  +  sf1);
	System.out.println("sd1"  +  sd1);
}
public static String getType(Object o){
	return o.getClass().toString();
	}
}

查看数据类型。定义一个getType()的方法。或者设置断点调试。
在这里插入图片描述
(3)将字符型直接作为数值转换为其他数据类型
将字符型变量转换为数值变量类型实际上有两种对应关系:一种是将其转换成对应的ASCII码;另一种是转换关系,例如,’1’就是指数值1,而不是ASCII码,对于这种转换,可以使用Character的getNumericValue(char ch)方法。
注意:
浮点型常量默认为double,如果要指定单精度浮点数类型请在浮点数后加F(f)。
Byte的数值范围-128~127
(4)面试题
Which of the following will compile correctly? D
A. Short myshort = 99S; C.float z = 1.0;
B. Int t = “abc”.length(); D.char c = 17c;
解析:Short myshort = 99S;这句要执行自动装箱,调用shortValue方法。
在java中length是属性,一般用来说明数组的长度;length()是方法,用来求数组中某个元素的字符串长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值