目录
原则:精度小的类型自动转换为精度大的数值类型,这 个就是自动类型转换(隐式转换)。有它对应的类型就输出什么类型,如果没有它的类型,就会遵循从精度小的数值类型自动转换为精度大的数值类型。
- package chapter01;
-
- public class TestDataTypeConversion {
- public static void main(String[] args) {
- byte b = 10;
- test(b);
-
- char c = 'a';
- test(c);
-
- //精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)
- }
- public static void test(byte b){
- System.out.println("bbb");
-
- }
- public static void test(short s){
- System.out.println("sss");
-
- }
- public static void test(char c){
- System.out.println("ccc");
-
- }
- public static void test(int i){
- System.out.println("iii");
-
- }
-
-
-
- }
代码测试

char类型只能转换成int类型
原则:当 Scala 程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这 个就是自动类型转换(隐式转换)。数据类型按精度(容量)大小排序为:

基本说明:
(1)自动提升原则:有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度大的那种数据类型,然后再进行计算。
(2)把精度大的数值类型赋值给精度小的数值类型时,就会报错,反之就会进行自动类型转换。
(3)(byte,short)和char之间不会相互自动转换。
(4)byte,short,char他们三者可以计算,在计算时首先转换为int类型。
运行代码
- package chapter02
-
- object Test_08DataTypeConversion {
- def main(args: Array[String]): Unit = {
- //(1)自动提升原则:有多种类型的数据混合运算时,系统首先自动将所有数据转换成
- // 精度大的那种数据类型,然后再进行计算。
- val a1:Byte = 10
- val b1:Long = 2353L
- val result1 :Long=(a1+b1)
- val result2 :Int =(a1+b1.toInt) //强制数值类型转换
- //(2)把精度大的数值类型赋值给精度小的数值类型时,就会报错(除非强制数值类型转换),反之就会进行自动
- //类型转换。
- val a2:Byte =8
- val b2:Int =a2
- // val c2:Byte =b2 //会报错的,除非强制数值类型转换
-
- //(3)(byte,short)和 char 之间不会相互自动转换。
- val a3:Byte =9
- val b3:Char ='a'
- //val c3:Byte =b3 //虽然IDEA没有报错,但是它是错误的,除非强制数值类型转换
- val c3:Int = b3
- println(c3)
-
- //(4)byte,short,char 他们三者可以计算,在计算时首先转换为 int 类型。
- val a4:Byte =12
- val b4:Short=25
- val c4:Char ='c'
- val result4:Int=a4+b4
- val result44:Int=a4+b4+c4
- println(result44)
-
-
- }
- }
测试截图
