关于JAVA基本数据类型的扩展

本文详细介绍了Java中整数、浮点数、字符和布尔类型的使用,包括不同进制的表示、浮点数的舍入误差问题以及字符的Unicode编码。强调了浮点数比较时的不准确性,并推荐使用BigDecimal避免比较错误。同时,展示了字符的转义序列及其在字符串中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Hello {
    public static void main(String[] args) {
        /**整数扩展
         * 进制
         *  二进制  以0b开头
         *  八进制  以0开头
         *  十进制
         *  十六进制 以0x开头
          */

        int i = 10;
        int i2 = 010;  //八进制
        int i3 = 0x10; //十六进制
        int i4 = 0b1; //二进制

        System.out.println(i); //结果 0
        System.out.println(i2);//结果 8
        System.out.println(i3);//结果 16
        System.out.println(i4);//结果1
        System.out.println("---------------分割-------------------");


        /**
         *===============================================================
         *浮点数拓展
         *===============================================================
         */

        float f = 0.1f;  //值是0.1
        double d = 1/10; //值是0.1


        System.out.println(f==d);  //理论上比较时应该时相等的,但是结果返回的时false
        System.out.println(f);
        System.out.println(d);

        float s1 = 324589289.9848f;
        float s2 = s1+1;
        System.out.println(s1 == s2);//返回值时true!!!
        System.out.println("---------------分割-------------------");

        /*
        =================== 原因 ===================
        1. float 表现的字长是有限的,但是有的数除出来是无限的
        2. 浮点数存在一个叫舍入误差的的东西,有些浮点数无法被精确的表示,所以会存在四舍五入
        3. 有些数是无限接近但不等于
        =================== 结论 ===================
        最好完全避免使用浮点数进行比较!!!
        最好完全避免使用浮点数进行比较!!!
        最好完全避免使用浮点数进行比较!!!
        =================== 解决方法 ===================
        BigDecimal  数学工具类
         */


        /**
         *===============================================================
         *字符拓展
         *===============================================================
         */
        char c1 = 'a';
        char c2 = '中';

        char c3 = '\u0061'; //此处61代表的是十六进制,如果是十进制就是97

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

        System.out.println(c3);//结果为a

        /*
        =================== 原因 ===================
        1. 所有的字符本质还是数字
        2. char涉及到Unicode编码集
        3. 转义字符
         */

        //\t  制表符
        System.out.println("hello\tjava");
        //\n 换行
        System.out.println("hello\njava");
        //\b 去一个空格
        System.out.println("hello   \bjava");
        //转义字符有很多,自行百度

        System.out.println("---------------分割-------------------");

        /**
         *===============================================================
         *布尔拓展
         *===============================================================
         */

        boolean flang = true;
        if(flang = true){
            System.out.println("hello  java");
        }
        if(flang){
            System.out.println("hello  java");
        }

        System.out.println("---------------分割-------------------");

        /**
         * ==============少即是多==================
         * 上面第一个if方法中flang = true 等于 第二个if中flang
         * 因为flang已经被赋了一个布尔值,在if(中需要一个boolean值){},所以省略  = true不写
         */
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值