day8 Java基础——数据类型及拓展和面试题讲解

day8 Java基础——数据类型及拓展和面试题讲解

  1. 数据类型在这里插入图片描述
public class demo01 {
    public static void main(String[] args) {
        //八大基本数据类型
        int num1 = 1000000000;//最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L;//Long类型要在数字后加L

        //小数:即浮点数
        float num5 = 50.1F;//float类型要在数字后加F
        double num6 = 3.14159265358979;

        //字符
        char name = '字';

        //字符串(String不是关键字,而是类)

        //布尔值(true/false)
        boolean flag = true;

    }
}

在这里插入图片描述

  1. 变量
    在这里插入图片描述
  2. 浮点数拓展
public class demo02 {
    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("=======================================");

        //浮点数拓展 银行业务怎么表示?(钱)不能用float和double去算:(面试题)
        float F = 0.1F;//0.1
        double D = 1.0/10;//0.1
        System.out.println(F);
        System.out.println(D);
        System.out.println(F==D);//判断F=D是否成立
        System.out.println("=======================================");

        //更诡异的:
        float d1 = 232323232323232323f;
        float d2 = d1 + 1;
        System.out.println(d1);
        System.out.println(d2);
        System.out.println(d1==d2);

    }
}

输出结果如下:

10
8
16
=======================================
0.1
0.1
false
=======================================
2.3232323E17
2.3232323E17
true

结论:浮点数float是有限,离散,舍入误差(即接近但不等于),所以最好完全使用浮点数进行比较,故银行业务用BigDecimal(数学工具类)

  1. 字符类拓展
public class demo03 {
    public static void main(String[] args) {
        //字符类拓展
        char c1 = 'a';
        char c2 = '中';
        //输出
        System.out.println(c1);
        System.out.println(c2);
        
    }
}

a

进程已结束,退出代码为 0

现在强制转换c1c2为int类型:

public class demo03 {
    public static void main(String[] args) {
        //字符类拓展
        char c1 = 'a';
        char c2 = '中';
        //输出
        System.out.println((int)c1);
        System.out.println((int)c2);

    }
}

97
20013
进程已结束,退出代码为 0

结论:所有的字符本质都是数字
编码:Unicode 表:97=a,65=A,2字节,可表示65536个
eg:

public class demo03 {
    public static void main(String[] args) {
        //字符类拓展
        char c3 = '\u0061';
        //输出
        System.out.println(c3);

    }
}

a
进程已结束,退出代码为 0

转义字符:
\t 制表符
\n 换行
。。。

public class demo03 {
    public static void main(String[] args) {
        //字符类拓展
        System.out.println("你好,\t世界。");
        System.out.println("你好,\n世界。");

    }
}

你好, 世界。
你好,
世界。
进程已结束,退出代码为 0

  1. 布尔值拓展
public class demo04 {
    public static void main(String[] args) {
        //布尔值拓展
        boolean flag = true;
        if (flag==true){}//新手
        if (flag){}//大佬
    }
}

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值