zoukankan      html  css  js  c++  java
  • Java基础(010):原始数据类型隐式转换的一些场景

      日常开发中经常接触到的数据类型转换主要有这2种:
    • 原始数据类型之间的转换
    • 字符串、原始数据类型、日期类型之间的转换
     
      对于原始数据类型之间的转换,从代码是否直接使用强制转换来看,又分为显式转换和隐式转换,即
    • 自动类型转换/隐式类型转换:编译器自动添加的类型转换
    • 强制类型转换/显式类型转换:代码中直接写出需要强制转换的类型
     
      接下来主要列举原始数据类型隐式转换的一些场景:
    • 所有byte、char、short类型的计算都默认提升到int类型再计算:
      • byte + byte → int
      • byte + char → int
      • byte + short → int
      • char + char → int
      • char + short → int
      • short + short → int
      • byte/char/short + int → int
    • 如果参与计算的有long类型,则会提升至long类型进行计算:
      • byte + long → long
      • char + long → long
      • short + long → long
      • int + long → long
    • 常量整数默认是int类型,只要在对应的 byte / char / short 范围内的,都可以默认转换,如 byte b = 1;,除非超过对应类型的范围
      • The literal 2147483648 of type int is out of range
    • 小范围数据类型向大范围数据类型赋值也是可以直接转换的(跳跃转换也可以)
      • byte → short → int → long → float → double
      • char → int → long → float → double
    • 部分运算符会有默认转换,如 ++、--、+=、-=、/=、*=、%= 等(最后的结果强制转换后可能存在精度损失)。
     
      原始数据类型的类型转换可以参考Java语言规范相关说明:

  • 相关阅读:
    BZOJ1452 count (树状数组)
    splay
    CODEVS1222 信与信封问题 (匈牙利算法)
    CODEVS1022 覆盖 (二分图染色+匈牙利算法)
    反思——针对作业的反思
    学习进度
    软件工程个人作业01
    阅读笔记
    安装SQL Server 2014
    软件工程概论_作业01
  • 原文地址:https://www.cnblogs.com/wpbxin/p/14534552.html
Copyright © 2011-2022 走看看