面试题详解

本文探讨了Java中的整数进制转换,包括二进制、八进制和十六进制,并指出浮点数表示的不精确性,强调了在比较浮点数时的注意事项。此外,还涉及字符编码与Unicode,以及字符串对象的内存分析。最后,提醒开发者避免直接使用浮点数进行比较,并推荐使用BigDecimal进行精确计算。
摘要由CSDN通过智能技术生成
public class Demo03 {
    public static void main(String[] args) {
        //整数拓展:   进制   二进制0b   十进制  八进制 0  十六进制0x
        int i=10;
        int i2=010;//八进制 0
        int i3=0x10;//十六进制0x

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3); //0~9  A~F 16
        System.out.println("===============================================================");
        //===============================================================
        //浮点数拓展?  银行业务怎么表示?钱
        //===============================================================
        //flout
        //double
        float f=0.1f;//0.1
        double d=0.1/10;//0.1
        System.out.println(f==d);//false,类型不一样没办法比较
        System.out.println(f);
        System.out.println(d);/*因为计算时需要数据类型统一,不然计算机会偷懒以较简单的类型输出,d就会取整数位
        浮点数并不是准确的~,这个一定得注意,只是无限接近,但并不是相同的*/

        //断点调试,就不按运行键,按甲壳虫。按住行就可以进行选择
        float d1=2131313131313f;
        float d2=d1+1;
        System.out.println(d1==d2);//不要用==比较数值的大小,要用equals方法比较数值大小
        //===============================================================
        //字符拓展?
        //===============================================================
        char c1 ='a';
        char c2 ='中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换
        System.out.println(c2);
        System.out.println((int)c2);//强制转换
        //所有的字符本质还是数字
        //编码 unicode:(a =97,A =65) 占两个字节   可以代表65536个字符
        //U0000  UFFFF
        char c3='\u0061';
        System.out.println(c3);
        //转义字符
        //\t  制表符
        //\n   换行
        //.....
        System.out.println("Hello\nWorld");
      System.out.print("HelloWorld");
       System.out.print("HelloWorld");
        System.out.println("==================================================");
        String sa = new String("Hello,World");
        String sb = new String("Hello,World");
        boolean result1 = sa==sb;
        System.out.println(result1);

        String sc = "Hello,World";
        String sd = "Hello,World";

        boolean result2 = (sc==sd);
        System.out.println(result2);
        //对象   从内存分析
        //布尔值扩展
            boolean flag = true;
            if (flag = true){}//新手
            if (flag){}//老手   if中只接收boolean的值。即,flag一定的是boolean,所以写不写==true都一样
        //Less is More!代码要精简易读

浮点数不能表示精确的数值
最好完全避免使用浮点数进行比较
float:有限 离散 舍入误差 大约 接近但不等于

除了基本类型以外还会有类,名字叫做Bigdecimal :数学工具类,Java里面有好多定义好的类。

强制转换可以把字符转化为数字//所有字符本质上还是数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值