java基础类型转换可能存在内存溢出或者精度问题

public class HelloWorld {
    
    
    public static void main(String[] args) {
    
    
        f1();
        f2();
    }

    private static void f1() {
    
    
        int i=128;
        byte b=(byte)i;//内存溢出
        System.out.println(i);//128
        System.out.println(b);//-128
    }

    private static void f2() {
    
    
        int month=10_0000_0000;
        int year=30;
        int total=month*year;
        long total2=month*year;//转换之前已近存在问题了,默认int*int=int
        long total3=month*(long)year;
        System.out.println(total);//-64771072
        System.out.println(total2);//-64771072
        System.out.println(total3);//30000000000
    }
}

猜你喜欢

转载自blog.csdn.net/Werdio/article/details/112853331
今日推荐