zoukankan      html  css  js  c++  java
  • Java语言基础(类型的转换与提升)

    一 数据类型的转换
      1.自动类型转换
        i.需要操作数据的类型兼容,如都是都是整型,都是浮点型,或者如整型与字符型
        ii.需要目标类型的范围大于源类型,如byte b = 1; int a = b; 这时的b虽然是byte型,但赋值时自动转换成了int型
      2.强制类型转换
        i.需要操作数据的类型兼容,与自动类型转换一致
        ii.需要目标类型的范围小于源类型,如int a = 128;byte b = (byte) a; 此时的a被语法强制转换成了byte类型然后赋值给了b
        **如果源类型的数据值超出了目标类型的范围,则会出现数据损失,具体的数据损失由二进制方法计算,如一个byte位有8个bit
        而一个int 类型的数据则有32个bit ,如果将int类型强制转换成byte类型则会有32-8=24个bit的数据损失,也就是高位的数据被截断
        转换之后只留下目标类型的bit数位;
    3.使用方法进行数据类型转换
       如String.valueOf()
       但其返回值必须与目标类型的数据类型相同;

    二 数据类型的提升
      法则如下:
        i. 如果操作数中有一个为double,则计算结果自动提升为double类型;
        ii.如果操作数中没有double,有一个为float,则计算结果自动提升为float类型
        iii.如果操作数中没有float,有一个为long,计算结果提升为long类型
        iv.如果操作数中没有long,有一个为int,则计算结果自动提升为int类型
        v.如果操作数均为short或者byte,则计算结果自动提升为int类型
        特殊:任何数据与String相加,jvm则会认为是数据与String拼接,自动提升为String类型
        若想要拼接的时候进行计算,则需要()来提升优先级

  • 相关阅读:
    SQL Server 2008通过PassPhrase加密数据
    SQL Server 2008之Values
    Merge(在一条语句中使用Insert,Update,Delete) 对两个表进行同步数据
    Linux yum常用命令介绍
    SQL Server 2008之WaitFor
    Android之TelephonyManager类的方法详解
    TextView里的文 html
    adb
    Apk得到Java源代码
    【Android】调用系统应用常用uri & intent设置
  • 原文地址:https://www.cnblogs.com/Lzzycola/p/13336257.html
Copyright © 2011-2022 走看看