• Java 读书笔记 (五) 目标数据类型转换


    数据类型转换必须满足如下规则:

    • 不能对boolean类型进行类型转换
    • 不能把对象类型转换成不相关类的对象  //那不同类的对象可以用同一个名字命名吗?根据作用域原则,可以吧?
    • 把容量大的转换为容量小的类型时必须使用强制类型转换  //怎么操作?
    • 转换过程中可能导致溢出或损失精度  //具体影响会是怎样的,尤其是金融行业?怎么处理?
    • 浮点数到整数的转换是通过舍弃小数得到,不是四舍五入

    自动类型转换

    转换前的数据类型的位数要低于转换后的数据类型。

     1 public class ZiDongLeiZhuan{
     2     public static voi main (String [] args){
     3         char c1="a";  //定义 一个char类型
     4         int i1=c1;    //char自动类型转换为int
     5         Ssystem.out.println("char自动类型转换为int后的值等于"+i1);
     6         char c2="A"; //定义一个char类型
     7         int i2=c2+1; //char类型和int类型计算
     8         System.out.println ("char类型和int计算后的值等于"+i2);
     9         }
    10 }

    // 运行结果: char自动类型转换为int后的值等于97
    // char类型和int计算后的值等于66
    //解析: c1的值为字符"a",查ascii码表可知对应的int类型值为97,"A"对应值为65, 所以i2=65+1=66.

    强制类型转换

    • 条件是转换的数据类型必须是兼容的
    • 格式 :(type) value type是要强制类型转换后的数据类型
     1 public class QiangZhiZhuanHuan{
     2       public static void main (String [] args){
     3            int i1=123;
     4            byte b=(byte)i1;  //强制类型转换为byte
     5            System.out.println("int 强制类型转换为byte后的值等于"+b);
     6       }
     7 }
     8 
     9 
    10 //运行结果: int强制类型转换为byte后的值等于123

    隐含强制类型转换

    • 整数的默认类型是int
    • 浮点型不存在这种情况,因为在定义float类型时必须在数字后面跟上F或者f

    还是不明白什么是自动类型转换,什么是强制类型转换。 特定类型之间的转换是自动的,另一部分之间转换是强制的?

  • 相关阅读:
    前端笔记-前端优化简要大总结
    javascript 关于new()继承的笔记
    python自带的IDLE创建py文件后不能run的问题记录
    selenium等待
    'Driver'可执行文件可能有错误的权限。
    jmeter计数器
    selenium异常
    selenium按钮
    jmeter连接数据库
    jmeter第一次使用
  • 原文地址:https://www.cnblogs.com/cheese320/p/8084522.html
Copyright © 2020-2023  润新知