Day01-04数据类型扩展及面试

04

数据类型扩展及面试题

package com.kuang.base;

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

        int i = 10;
        int i2 = 010;//八进制0
        int i3 = 0x10;//十六进制0x    0~9 A~F  16

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("========================");
        //=============================================
        //浮点数拓展?    银行业务怎么表示?钱
        //用BigDecimal  是一个数学工具类
        //=============================================
        //float    有限   离散  舍入误差 大约 接近但不等于
        //double

        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较


        float f = 0.1f;//0.1
        double d = 1.0/10; //0.1


        System.out.println(f==d);//false
        System.out.println(f);//0.1
        System.out.println(d);//0.1

        float d1 = 23131312312312313f;
        float d2 = d1 + 1;

        System.out.println(d1==d2);//true

        //=============================================
        //字符拓展?
        //=============================================
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);//强制转换,输出97
        System.out.println(c2);
        System.out.println((int)c2);//强制转换,输出20013

        //所有的字符本质还是数字
        //编码  Unicode 2字节  65536
        //U0000~UFFFF
        char c3 = '\u0061';
        System.out.println(c3);//a

        //转义字符(还有很多)
        //\t   制表符
        //\n   换行

        System.out.println("Hello\tWorld");
        System.out.println("Hello\tWorld");


        //常见面试题
        System.out.println("=============================");
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);//false

        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc==sd);//true
        //对象   从内存分析
        //如果比较的对象是基本数据类型,则比较数值是否一致;如果比较的是引用数据类型,则比较的是对象的地址值是否一致。(弹幕)
        //第一个是堆内存地址不一样,第二个是同一个常量池(弹幕)
        //new一个内存就会创建一个空间(不管内容是否相同)(弹幕)
        //第一个分配的堆内存中,第二个是常量池中(弹幕)

        //布尔值扩展
        boolean flag = true;
        if (flag==true){}//新手程序员
        if (flag){}
        //上面两行代码完全一致
        //方法写布尔类型的返回值经常这么写(弹幕)
    }
}
posted @ 2021-03-31 10:26  JwStudy  阅读(40)  评论(0)    收藏  举报