1 2 3 4

bug01

## 强制类型转换

源代码如下:

```java
public class Demo02 {
    public static void main(String[] args) {
        //整数拓展:      进制      二进制0b     十进制     八进制0     十六进制0x

        int a = 10;
        int b = 0b10;   //二进制
        int c = 010;    //八进制
        int d = 0x10;   //十六进制      0~9 A~F

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println("==================================================================================");

        //========================================================================================================
        //浮点数拓展:        如何表示银行业务?
        //float     有限的  离散的  存在舍入误差  接近但不等于
        //double
        //========================================================================================================

        float e = 0.1f;     //0.1
        double f = 0.1;     //0.1

        System.out.println(e==f);   // == 表示判断是否相等
        //输出结果为false

        float e1 = 66666666666666f;
        float e2 = e1+1;

        System.out.println(e1==e2); //输出结果为true
        System.out.println("==================================================================================");


        //最好不用浮点数进行比较
        //最好不用浮点数进行比较
        //最好不用浮点数进行比较
        //BigDecimal  数学工具类

        //========================================================================================================
        //字符拓展:
        //========================================================================================================
        char c1 = 'a';
        char C1 = 'A';
        char c2 = '一';

        System.out.println(c1);
        System.out.println((int) c1);  //强制类型转换 将char类转换为int类
        System.out.println(C1);
        System.out.println((int) C1);  //强制类型转换 将char类转换为int类
        System.out.println(c2);
        System.out.println((int) c2);  //强制类型转换 将char类转换为int类

        //所有的字符本质还是数字
        //编码问题  Unicode编码(可以处理各种语言的编码)(a=97  A=65)   占2字节   可表示0~65536  Excel  2^16=65536

        //U0000~UFFFF

        char c3 = '\u0061';     //\u代表转义    Unicode编码表示方式
        System.out.println(c3); //输出a

        //转义字符
        // \t
        System.out.println("Hello\tWorld!");
    }
}

bug如下:

bug

bug定位如下:

bug定位

通过查询资料得出产生原因如下:

Java允许在注释或代码中使用\u开头的Unicode转义字符,但要求转义必须有效,否则会编译器报错

目前解决方法如下:

  1. 方法一
  2. 方法二
posted @ 2021-02-15 15:59  草帽将军一呆  阅读(21)  评论(0编辑  收藏  举报