数据类型

数据类型

基本数据类型

基本数据类型包括:数值型、字符型(char)、布尔型(boolean) 数值型又分为整数类型(byte、short、int、long)和浮点类型(float 4字节、double 8字节)、字符类型char占2个字节 其中布尔类型只有两个值 真(true) 假(false)

 

 

引用数据类型

类(class)、接口(interface)、数组

1. 基本数据类型变量存的是数据本身(也就是存在 栈内存空间里边),而引用类型变量存的是保存数据的空间地址(保存数据的堆内存的数据地址)

  1. 栈内存区里每一个内存单元的大小固定,内存不大;堆内存的每一个内存单元,大小是弹性的

 

 

数据类型扩展及面试题

整数扩展

进制: 二进制(0b开头)、十进制、八进制(0开头)、十六进制(0x开头)

代码:

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

       System.out.println(i);
       System.out.println(i2);    //八进制0
       System.out.println(i3);     //十六进制0x   0~9   A~F(16)

 

浮点数扩展

银行业务怎么表示?钱

先看代码:

float f = 0.1f;   //0.1
double d = 1.0/10;  //0.1
System.out.println(f==d);

此时输出的结果为 false

 

float d1 = 2333305161481f;
float d2 = d1 + 1;
System.out.println(d1==d2);

此时输出的结果为 true

 

因为 float 表示的字长是有限的,也是离散的,浮点数一般都存在舍入误差,接近但不等于

所以最好完全使用浮点数进行比较!!

最好完全使用浮点数进行比较!!!

最好完全使用浮点数进行比较!!!

 

那么银行业务就不用浮点数表示,用BigDecimal 数学工具类表示!

 

字符扩展

  1. 强制类型转换

        char c1 = '中';
       char c2 = 'a';

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

 

  1. 所有的字符本质还是数字,在Unicode编码表中(97 = a 65 = A) 2字节

char c3 = '\u0061';
System.out.println(c3);

输出 a

 

  1. 转义字符

    \t 制表符 \n 换行符

posted @ 2022-03-25 00:50  翰林554  阅读(162)  评论(0)    收藏  举报