1.数据类型分为两种:基本数据类型和引用类型
    2.基本数据类型(八种)
    2.1字节型byte,包装类型Byte,1个字节,取值范围-128到127,默认值为0
    2.2短整型short,包装类型Short,2个字节,取值范围-2^15到-2^15-1,默认值为0
    2.3整型int,包装类型Integer,4个字节,取值范围-2^31到-2^31-1,默认值为0
    2.4长整型long,包装类型Long,8个字节,取值范围-2^63到-2^63-1,默认值为0L
    2.5单精度浮点型float,包装类型Float,4个字节,默认值为0.0F
    2.6双精度浮点型double,包装类型Double,8个字节,默认值为0.0D
    2.7字符型char,包装类型Character,2个字节,取值范围0到65535,默认值为 ‘\u0000’
    2.8布尔型boolean,包装类型Boolean,一个字节,只有两个值true和false,默认值为false
    3.引用类型:引用类型是一个对象类型,值是指向内存空间的引用,就是地址
    4.基本类型的字面值:
    4.1整数字面值是int类型,byte,shortt,char三种比int小的整数可以使用取值范围内的值直接赋值
    4.2浮点数的字面值是double类型
    4.3字面值后缀 Long—>L float —>F double—>Double
    4.4进制前缀:二进制0b 八进制0 十六进制0x
    5.基本类型转换
    image.png
    6.运算规则:
    6.1计算结构的数据类型与最大数据类型一致(3/2=1,3/2D=1.5)
    6.2byte,short,char三种比int小的整数,运算时会自动转换成int类型再运算(byte a=1;byte b=1;
    byte c =(byte)(a+b))
    7.整数溢出:当运算时所得到的值超出取值范围则会溢出,导致回到最小值(byte a=127,a+1=-128)
    8.浮点数运算不精确
    9.instanceof 判断变量是否为指定类型(int a=1; a instanceof Integer)
    10.BigDecimal 不能使用double类型参数的构造,使用的是String类型的构造函数,否则还会不精确
    除法运算时,如果出现除不尽的现象会报错,需要指定保留位数和射入规则

    面试题
    1.请简述Java中的八中基本数据类型
    1.1int 4个字节 32位。Java代码中直接出现的整数默认为int类型,取值范围为-2147483648 到2147483647.使用时注意不要溢出。int变量整数相除,自动去除小数位 int a=5/3=1。
    1.2long, 8个字节。long time =System.currentTimeMillis();返回自1970年1月1日到此时此刻的毫秒数.
    1.3double ,浮点型 ,8字节,精度值是float类型的两倍.Java中小数直接默认为double类型.二进制中无法精确表示1/10, 只会无限接近于0.1。如果是精确场合,需要使用BigDecimal来避免误差。
    1.4boolean 类型,只允许取值true或false; 1个字节.
    1.5char类型 ,2个字节 ,16位。Java采用unicode编码一个字符占2个字节。取值范围0-65535.
    1.6byte类型,1个字节,取值单位是-128到127;
    1.7short类型,2个字节;
    1.8float类型,4个字节,单精度小数,如果想表示float类型,则写成3.14F(字面值后缀)
    2.Java中一个char可以存放一个中文汉字吗
    可以,Java采用Unicode编码方式,一个字符两个字节,char是两个字节,所以可以存放