Java类型转换笔记

Java类型转换笔记

关于基本数据类型之间的互相转换:转换规则

  • 1.八种基本数据类型当中除布尔类型之外剩下的7中类型之间都可以互相转换

  • 2.小容量向大容量转换,称为自动类型转换,容量从小到大排序:
    byte < short < int < long < float < double
    char <
    注:
    任何浮点类型不管占用多少个字节,都比整数型容量大。
    char和short可表示的种类数量相同,当时char可以取更大的正整数。【char和short的容量大小是同级的】

  • 3.大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。

  • 4.当整数字面值没有超过byte,short,char的取值范围,可以赋值给byte,short,char类型的变量

  • 5.byte,short,char混合运算的时候,各自先转换成int类型再做运算。

  • 6.多种数据类型混合运算,先转换成容量最大的那种类型再做运算。
    注意通过:
    byte b = 3;可以编译通过,3没有超过byte类型取值范围

    int i=10;
    byte b =i/3;编译报错,编译器只检查语法,不会运算i / 3。

    public class DataTypeTest08{
    	public static void main(String[] args){
    		double dd = 10 / 3;//int类型的10和3计算后的结果是int类型的3,然后再转换成double的3.0
    		System.out.println(dd);
    		
    		System.out.println("---------------------------------------");
    		
    		dd = 10.0 / 3;//int类型的3先转换成double类型在计算,多种数据类型数据运算时,全部转换成大容量的类型在计算
    		System.out.println(dd);
    		
    		// 编译报错,因为1000已经超出范围了。
    		//byte b1 = 1000;
    		// 可以
    		byte b2 = 20;//20虽然是int类型,但是20没有超过byte的取值范围
    		// 可以
    		short s = 1000;//1000没有超过short的取值范围
    		// 可以
    		int c = 1000;//1000没有超过int的取值范围
    		// 可以
    		long d = c;//小容量转换成大容量,属于自动类型转换
    		// 编译报错
    		//int e = d;//d属于long类型,大容量转换成小容量,属于强制类型转换,需要强制类型转换符
    		// 可以
    		int f = 10 / 3;//int类型的10和3计算后的结果是int类型的3,然后再转换成double的3.0
    		// 可以
    		long g = 10;//int类型的10转换long类型的g,属于自动类型转换
    		// 编译报错
    		//int h = g / 3;//编译报错,编译器只检查语法,不会运算i / 3。
    		// 可以
    		long m = g / 3;//g属于long类型,int类型的3先转成long类型在计算
    		// 编译报错
    		//byte x = (byte)g / 3;//分子先把byte类型的g强转换为byte,然后整个运算式全转换为int在计算,得到int结果,还需要强制转换
    		// 可以
    		short y = (short)(g / 3);//先把(g/3)转换成long,然后再强转为short类型
    		// 可以
    		short i = 10;//10没有超过short类型的取值范围,可以直接赋值
    		// 可以
    		byte j = 5;//5没有超过byte类型的取值范围,可以直接赋值
    		// 编译报错
    		//short k = i + j;//先把i和j转换成int类型计算,得到int类型的结果,最后还需要进行强转
    		// 可以
    		int n = i + j;//int转int,无需操作
    		// 可以
    		char cc = 'a';
    		System.out.println(cc); // a
    		System.out.println((byte)cc); // 97运算式强转成byte
    		// cc 会先自动转换成int类型,再做运算
    		int o = cc + 100;
    		System.out.println(o); // 197
    	}
    }
    
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五度鱼学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值