JavaSE基础语法 - 数据转换

JavaSE基础语法 - 数据转换

记录自己的学习之路,2025年7月21日,周一,早,天气阴晴。数据转换学习。

转换等级

从低级到高级(根据容量来看)

低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
  • 不能对boolean类型进行类型转换。
  • 不能把对象类型转换成不相关类的对象。
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

示例:

由高到低转换

int i =128;
byte b = (byte)i;//,由高到低,强制转换。byte最多去到127,内存溢出,显示结果不是128
byte b = i;//由高到低,不强制转换会报错

由低到高转换

byte b = 17;
int i = b;//由低到高,无需强制转换

浮点数转换成整数

(int)23.7 == 23;//舍弃小数位
(int)-45.67f == -45;//舍弃小数位

内存溢出

操作比较大的数时,要留意是否溢出,尤其是整数操作时

public static void main(String[] args) {
    int money = 1000000000; //10亿
    int years = 20;
    int total = money*years; //返回的是负数
    long total1 = money*years; //返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
    long total2 = money*((long)years); //先将一个因子变成long,整个表达式发生提升。全部用long来计算。
    System.out.println(total);
    System.out.println(total1);
    System.out.println(total2);
}

其他特性

  • 二进制整数

    int a = 0b0101;//5
    
  • 下划线分隔符

    int b = 1_234_5678;//12345678
    
posted @ 2025-07-21 10:21  点态  阅读(3)  评论(0)    收藏  举报