java 基本类型的类型转换
-
基本类型的类型转换
在Java语言中不同的基本类型的值经常进行相互转换。Java提供7种数值类型可以相互转换,有两种转换方式,自动类型转换、强制类型转换。
自动类型转换
1.数据类型之间的关系图
从左到右是自动类型转换,从右到左是强制类型转换。
1.下面展示自动类型转换
2.+号不仅可以作为加法运算符使用,还可以作为字符串连接运算符使用,代码如下:
强制类型转换
强制类型转换是将右边的类型转到左面的类型,那么久的进行强制类型转换,强制类型转换方法为(targetType)value,强制类型转换的运算符是圆括号(()).当进行强制类型转换时会造成数据的丢失,就好比如一杯水到壶里感觉不到 ,但是一壶水倒杯子里面只存放了一点 ,就容易造成数据丢失。这种转换也叫缩小转换。
1.下面是强制类型转换案例
2.在登录网页时会随机生成一个临时的验证字符串
3.表达式的类型自动提升,当一个算术表达式中包含多个基本类型时,整个算术表达式的数据类型将发生自动提升,在最后赋值的时候用这个算式表达式中最右侧的数值基本类型。代码如下
public class AutoPromote { public static void main(String[] args){ //定义一个short变量 // short sValue = 5; //表达式中的svalue将自动提升为int类型,则右边的表达类型为int //将一个int类型值赋值给short类型变量将发生错误 //sValue = sValue -2; byte b = 40; char c = 'a';//在ASCII码中 小写a为97 int i = 23; double d = .314; //右边表达式中最高等级操作数为d(double类型) //则右边表达式的类型为double类型,故赋值给之歌double类型变量 double result = b + c + i + d; //输出144.222 System.out.println(result); int val = 3; //右边表达式中两个操作数都是int类型,故右边表达式类型为int //虽然23/3不能整除,但依然得到一个int类型整数 int intResult = 23 / val; System.out.println(intResult); //输出字符串Hello!a7 System.out.println("Hello!" + 'a' + 7); //输出字符串104Hello! //因为 a是数值型97 在ASCII码中A65 小写a97 空格48 7也为数值型 hello为字符串类型 加在一起为字符串 //所以输出为104Hello! System.out.println('a'+ 7 +"Hello!"); } }