栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 和 Scala 中的自动类型转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:Users482426AppDataRoamingTyporatypora-user-imagesimage-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

  }

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号