欢迎!从2017年开始,将慢慢的不在xmind上写总结了,全部转到博客中!这里将不再随便写写,将继承在xmind的精神,继续前行!!!

初学java 之 类型转化 笔记

 

public class Hello {
    public static void main(String[] args) {
        //基本类型的大小走势 byte→short→int→long→float→double。
        //基本常识 
        int a = 1;
        int b = a+1;// 这里的 默认整数 1 是 int 类型 ,默认的小数 1.5 是 double 类型
        System.out.println(b);

        // 转换 分为 强制转换 和 自动转换

        // 先看 自动转换(由小到大)

        //规则 1 byte short int char 四种类型 发生计算,都是把结果提升成 int 型!
        //例如 定义一个byte型,如果 相加 用的是 short 型接收 那么就报错!
        byte b1 = 2;
        //short b2 =b1+2;// 这里就会报错! 由于提升到int 型了  ,这里用 short 接收 就报错!
        int b2 = b1+2;
        System.out.println(b2);

        //规则2 定义一个 char  char 和 int 可以自动转化
        char c1 = 'a';
        int c2 = c1+1;
        System.out.println(c2);//输出的结果是98 为什么会是98 呢,因为 char类型 的字母和 数字有一种对应关系, ASCII 表,在表中,a对应的就是97

        //如果两个 int 类型的 计算 ,会不会由于超出范围,提升 类型呢??
        int i1 = 2147483647;//设置了int的最大值
        int i2 = 12;
        int i3 = i1+i2;
        System.out.println(i3);// 得到的结果是 -2147483637  一个 负值!!没有类型的提升
        
        //规则3 int long float double 这四个类型。相加!
        //如果 两者类型相同  没有类型提升这一说!如果超出范围,会有精度的损失!实际中要注意~~~
        //如果 两者类型不同  得到的结果,会向着大的类型提升,比如 
        //  
        float f1 = 1.6f;
        //int f2 = f1+12;//这里会报错的,因为 一个float 一个 int 两者相加 提升到大的类型 ,那么必须用float 类型接受
        float f2 = f1+12;//上面用int接受 ,报错,这里必须是float的
        System.out.println(f2);//结果 13.6
        double d1 = f1+1.2;//这里 小数 默认是 double 型
        System.out.println(d1);

        //问 下面的写法对不对??
        double d2 = 12.5f;
        //答:这是可以的  12.5f 标识float类型的常量,小的表数的常量 或者变量 可以向着 大的范围类型转化,例如 下边的两个例子
        double d3 = 1;
        double d4 = i2;
        System.out.println(d3);//结果是 1.0
        System.out.println(d4);//结果是 12.0

        //介绍了小的向大的转化 ----是 自动转换 ,那么 大的向小的  转换 就是 强制转化 了

        //强制转换----大容量类型 向着小容量类型转化!!
        //转换前提 精度不损失

        //int z转 byte
        int xx = 127;
        byte bb = (byte)xx;
        System.out.println(bb);//127

        // long 转 int 
        long l = 1000;
        int l1 = (int)l;
        System.out.println(l1);//1000

        //小数类型的强转
        float f5 = 125.5f;
        int f6 = (int)f5;//转成int 小数转成整数,就是把小数部分去掉!!
        System.out.println(f6);//125

        //double 转float
        double dd1 = 12.54;
        float dd2 = (float)dd1;
        System.out.println(dd2);//12.54

        //字符的转化 
        int y1 = 98;
        char y2 = (char)y1;
        System.out.println(y2); //b 

        //特别注意 :布尔类型 是不转化的


    }
}

 

 

6666

posted @ 2019-08-21 15:32  拐进web的奋斗者  阅读(157)  评论(0编辑  收藏  举报