Java基本数据类型拓展知识&&类型转换

    科技2025-09-23  64

    Java基本数据类型拓展知识&&类型转换

    整数数据类型拓展

    二进制:0b(零b开头)

    八进制:0(零开头)

    十进制:正常表示

    十六进制:0x(零x开头)

    例:

    int i = 0b10; //二进制,结果为:2 int i = 010; //八进制,结果为:8 int i = 10 //十进制,结果为:10 int i = 0x10; //十六进制,结果为:16

    浮点数据类型拓展

    浮点数的计算会出现问题,所以最好避免使用浮点数进行比较。

    如果要使用,最好使用封装好的工具类(BigDeciamal)

    //例一: float f = 0.1F; double d = 1/10; System.out.println(f==d); //结果输出为:false //例二: float f2 = 10F; float f3 = 10F; System.out.println(f2==f3); //结果输出:true //例三: float f4 = 111111515151f; float f5 = f4+1; System.out.println(f4==f5); //结果输出:true

    为什么会出现错误呢?

    这关乎到计算机底层原理中内存的部分,所以最好不要使用浮点类型进行比较。

    字符拓展

    所有的字符本质还是数字。

    Java中使用的编码方案:

    Unicode(又称统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。

    //Unicode能表达65536个字符;长度从\U0000到\UFFFF; char c = 'a'; char c1 = '中'; System.out.println((int)c); System.out.println((int)c1); //结果输出:97 20013 char c2 = '\u0061'; System.out.println(c2); //结果输出:a

    类型转换

    遵循从低到高的顺序,不同类型的数据先转换为同一类型,然后再运算;

    byte,short,char -> int -> long -> float -> double

    强制转换:(类型)变量名:高 ->低

    int i = 127; byte b = (byte)i; System.out.println(b); //结果为:127

    自动转换:自动转换:低->高

    byte b = 10; int i = b; System.out.println(i); //结果为:10

    避免内存溢出:

    //例: int i = 128; byte b = (byte)i; System.out.println(b); //结果为-128 /*因为byte数值类型最高取值为127 i=128,结果溢出导致数值不确定*/
    Processed: 0.009, SQL: 8