博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初学java 之 类型转化 笔记
阅读量:4662 次
发布时间:2019-06-09

本文共 2374 字,大约阅读时间需要 7 分钟。

 

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

转载于:https://www.cnblogs.com/lovelgx/articles/11389057.html

你可能感兴趣的文章