类型转换

一、自动转换

  • 取值范围小的可以转为取值范围大的。(所有数值型都可以自动转换)
    -所有的整型都可以自动转为浮点型
    -所有的整型都可以自动转为long型
    -所有的数值型都可以自动转为double型

二、强制转换

  • 浮点数转整数始终是砍掉小数部分。
  • 强制转换可能会发生溢出。
    -溢出规则:用该数 - 目标类型大小 * n,保证减出的差值位于取值范围之内。

三、表达式类型的自动提升

  • 整个表达式类型与该表达式中最高等级的操作数的类型相同。
//编译不通过,a+1为表达式,为int型,不能赋值给byte型
byte  a = 2;
a = a + 1;
System.out.println(a);
int a = 1;
//编译不通过,97+a为表达式,是int型,不能赋值给byte型
byte b = 97 + a;
System.out.println(a)
//编译通过,编译器在编译时会提前算出97+1的值,97+1的表达式等同于98。
//直接给出一个整数默认是int型,如果该整数值较小且直接赋值给byte或short,Java也可以把它当成byte、short处理。
byte b = 97 + 1;
System.out.println(a)

四、随机验证码

  • 应用强制类型转换的随机验证码。
//生成随机小写字符:97~97+25
Random rnd = new Random();
int d = rnd.nextInt(26) + 97;
char c = (char)d;
System.out.println(c);
posted @ 2020-01-29 10:34  又又又8  阅读(50)  评论(0编辑  收藏  举报