• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Java基础:类型转换

开发技术 开发技术 4小时前 1次浏览

前言

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

    Java基础:类型转换

  • 运算中,不同类型的数据先转化为同一类型,然后进行计算(向表示范围大的类型转化,相同类型不变

分类

  • 强制类型转换(大范围向小范围转换)
  • 自动类型转换(小范围向大范围转换)

代码示例

  • 强制类型转换与自动类型转换

    public class Demo4 {
        public static void main(String[] args) {
            int i=128;
            //强制类型转换 (类型)变量名 高——>低
            byte b=(byte)i; //内存溢出
            System.out.println(i);
            System.out.println(b);
    
            char c='a';
            int d=c+1;
            System.out.println(d);
            System.out.println((char)d);
            System.out.println("===============");
            //自动类型转换  低——>高
            double e=i;
            System.out.println(e);
            /*
            注意点:
            1.不能对布尔值进行转换
            2.不能把对象类型转换为不想干的类型
            3.在高容量转换到低容量的时候,强制转换
            4.在转换过程中可能存在内存溢出,或者精度问题
             */
        }
    }
    

    Java基础:类型转换

  • 精度问题

    //有关精度问题的代码示例
    System.out.println((int)23.7);
    System.out.println((int)-45.89f);
    

    Java基础:类型转换

  • 内存溢出问题

    public class Demo5 {
        public static void main(String[] args) {
            //操作比较大的数时,注意溢出问题
            //JDK7新特性,数字之间可以用下划线分割
            int money=10_0000_0000;
            int years=20;
            int total=money*years;
            System.out.println(total); //计算时溢出了
            long total2=money*years; //默认值是int,转换之前已经存在问题了
            System.out.println(total2);
            //解决方法
            long total3=money*((long)years); //向范围大的类型转换
            System.out.println(total3);
        }
    }
    

    Java基础:类型转换


程序员灯塔
转载请注明原文链接:Java基础:类型转换
喜欢 (0)