• java基本数据类型及相互间的转换(转)


    1.首先复习一下java的基本数据类型,见下图

    2.比较他们的字节数

    备注:1字节(Byte)=8位(Bit)

    3.转换中的知识点

    *java中整数类型默认的int类型;小数类型默认的double;

    *char 可以当做一中特殊的整数类型;

    *int无法转换为boolean;

    *小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;

    *boolean 类型不能转换成任何其它数据类型;

    byte b2 = 120;
    //没报错的原因:
    //编译时候,进行检查,看赋值大小是否超过变量的类型所容纳的范围
    //如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过
    float f3 = 100L; 这种情况,整数部分,可以直接赋值给float整数部分
    float f1 = 100.9; 这种情况,因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换
    long l3 = 1000.9f; 小数转为整数,小数可能丢失,需要强制转换
    double d2 = 10.9d;
    int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失
    char c1 = 'a';
    int i3 = c1; //自动转换
    
    int i4 = 100;
    //char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失

    4.四则运算中

    /*
    1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;
    2、否则,如果有一个操作数是float,另一个就会转化为float;
    3、否则,如果有一个操作数是long,另一个就会转换为long;
    4、否则,两个操作数都将转换为int类型。
    */

    *面试陷阱

    byte b1 = 10;
    byte b2 = 11;
    //错误: 不兼容的类型: 从int转换到byte可能会有损失
    //否则,两个操作数都将转换为int类型。
    byte b3 = b1 + b2 //错误
    byte b3 = (byte)(b1 + b2); //正确

    *面试陷阱2:

    short s1 = 1; 
    s1 = s1 + 1; //错误: 不兼容的类型: 从int转换到short可能会有损失
    
    short s2 = 1; 
    s2 += 1; // 等同于short s2 = (short)(s2 + (short)1); //正确

    5.最后是从小到大顺序图一张

    6.面试:什么是不可变对象(immutable object)?

    解析:不可变对象指对象一旦被创建,状态就不能再改变。任何修改都会创建一个新的对象,如String、Integer及其它包装类。

    7.隐式类型转换

    当将占位数少的类型赋值给占位数多的类型时,java自动使用隐式类型转换(如int型转为long型)

    8.显式类型转换

    当把在级别高的变量的值赋给级别低变量时,必须使用显式类型转换运算(如double型转为float型)

  • 相关阅读:
    软件工程第四次作业
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    [Java数据结构与算法]简单排序之插入排序
    软件工程第四次作业
    软件工程第三次作业
    软件工程第二次作业
    字符串转化为 List 集合
    IO流读写文件中文乱码的解决
  • 原文地址:https://www.cnblogs.com/talkingcat/p/13719501.html
Copyright © 2020-2023  润新知