Java 和 Scala 中的自动类型转换

Java 和 Scala 中的自动类型转换

1.Java 中的自动类型转换

// Java中的自动类型转换(隐式转换)
    // 再进行自动类型提升的时候,是按照阶梯型一级一级的提升的
    // byte->short->int->long->float->double
    public static void main(String[] args) {
        byte n = 23;
        test(n);
    }

    public static void test(byte b) {
        System.out.println("bbbb");
    }

    public static void test(short b) {
        System.out.println("ssss");
    }

    public static void test(char b) {
        System.out.println("cccc");
    }

    public static void test(int b) {
        System.out.println("iiii");

    }

2.Scala 中的自动类型转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LamZ7pKv-1634560782972)(C:\Users\482426\AppData\Roaming\Typora\typora-user-images\image-20211018203534185.png)]

object Test07_TypeCast {
  def main(args: Array[String]): Unit = {

    //(1)自动提升原则:有多种类型的数据混合运算时,系统首先自动将所有数据转换成精度大的那种数据类型,然后再进行计算。

    val a1: Long = 1 + 1L
    val a2: Float = 1 + 1L + 1.1f
    val a3: Double = 1 + 1L + 1.1f + 2.1

    //(2)把精度大的数值类型赋值给精度小的数值类型时,就会报错,反之就会进行自动类型转换。

    val d1: Double = 3.1f
    //    val f1:Float = 3.1

    // byte,short,char都是可以使用int值定义,但是不能超出范围
    val b1: Byte = 100

    //(3)(byte,short)和char之间不会相互自动转换。
    val s1: Short = b1

    // 只能写成明文的
    val c1: Char = 100

    // 原因就是符号问题,byte和short都是有符号的
    //    val c1:Char = b1

    //(4)byte,short,char他们三者可以计算,在计算时首先转换为int类型。

    val b2: Byte = 1
    val b3: Byte = 1

    //    val b4: Byte = (b2+b3)
    //    val s4: Short = (b2+b3)


    // 只能使用Int值接受
    val s2: Short = 1
    val s3: Short = 1
//    val s5: Short = (s2+s3)


    // 可以
    val i3:Int = 1
    val i4:Int = 1
    val i5:Int = i3 + i4

  }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值