Java小白学习五——类型转换

类型转换

低----------------------------------------------------->高
byte,short,char–>int–>long–>float–>double

小数的优先级大于整数

强制转换

public class Demo04 {
    public static void main(String[] args) {
        int i =128;

        byte b = (byte)i; //内存溢出
        System.out.println(i); //128
        System.out.println(b); //-128
		
		//强制转换  (类型)变量名  高--低
		double a = 100;
        int a1 = (int)a;
        float a2 = (float)a;
        System.out.println(a1); //100
        System.out.println(a2); //100.0
    }
}

自动转换

public class Demo04 {
    public static void main(String[] args) {
    	int i = 128;
    	
		//自动转换  低--高
        double a = i;
        System.out.println(a); //128.0
	
		char b = 'a';
		System.out.println((int)a); //97
		
    }
}

内存溢出

public class Demo04 {
    public static void main(String[] args) {
    	//操作比较大的数字时,注意溢出问题
        //数字之间可以用下划线分割
        int a = 10_0000_0000;
        int b = 10;
        int c = a*b;
        System.out.println(c); //1410065408,计算溢出
        
        long c2 = d*e; //d和e都为int类型,相乘完还是int类型,然后才是转换为long类型
        System.out.println(c2); //1410065408

        long c3 = a*((long)b); //先把一个数字转换为long
        //或long f2 = ((long)a)*b;
        System.out.println(c3); //10000000000
    }
}

注意:

  1. 小数的优先级大于整数
  2. 布尔值不能进行转换
  3. 不能把对象转换为不相干的类型
  4. 在把高容量转换为低容量的时候,强制转换
  5. 转换的时候存在精度问题,或内存溢出(小数转整数直接抹除小数,并非四舍五入)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值