Java中的数据类型详解——int类型03

IntTest03.java

/*
	1、小容量可以直接赋值给大容量,称为自动类型转换。
	2、大容量不能直接赋值给小容量,需要使用强制类型转换符进行强转。
	但需要注意的是:加强制类型转换符之后,虽然编译通过了,但是运行
	的时候可能会损失精度。
*/
public class IntTest03{
	public static void main(String[] args){

		// 不存在类型转换
		// 100L是long类型字面量,x是long类型字面量。
		long x = 100L;

		// x是long类型,占用8个字节,而y是int类型,占用4个字节
		// 在java语言中,大容量可以“直接”赋值给小变量吗?不允许,没有这种语法。
		// int y = x;
		/*	编译报错:
			IntTest03.java:16: 错误: 不兼容的类型: 从long转换到int可能会有损失
					int y = x;
							^
			1 个错误
		*/

		// 大容量转换成小容量,想要编译通过,必须要加强制类型转换符,进行强制类型转换。
		
		int y = (int)x; // 这个(int)就是强制类型转换符,加上去就能编译通过。
						// 但是要记住:编译虽然过了,但是运行时可能损失精度。
		System.out.println(y); // 100
		
		// 定义变量a int类型,赋值100
		int a = 100;
		System.out.println(a);
		int b = a; // 将变量a中保存的值100复制一份给b变量。
		System.out.println(b);
	}
}

// 底层是怎么进行强制类型转换的呢?
// long类型100L:00000000 00000000 00000000 00000000 
// 以上的long类型100L强转为int类型,会自动将“前面”的四个字节砍掉:
// 00000000 00000000 00000000 01100100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值