数据类型
基本类型(primitive type)
数值类型
整数类型
- byte占1个字节范围:-128~127
- short占2个字节范围:-32768~32767
- int占四个字节范围:-2147483648~2147483647
- long占八个字节范围:-9223372036854775808~9223372036854775807
整数扩展
二进制 0b 十进制 八进制0 十六进制0x
int i = 10;
int i2= 010;
int i3 = 0x10;
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//返回结果
10
8
16
Process finished with exit code 0
浮点类型
float占4个字节
float 有限 离散 舍入误差 大约 接近但不等于
最好完全不使用浮点数进行比较
double占8个字节
字符类型
- char占2个字节
char name = 'A';//单引号,只能定义一个字符
char name1 = "A";//错误不能用双引号
char name2 = 'ABCD';//错误只能一个字符
所有字符本质还是数字
编码 Unicode 2字节 0~65536
char zhuanyi = '\u0061';// \u unicode编码转义 \t制表符(空格) \n换行
boolean类型
占1位,true,false
引用类型
什么是字节
- 位(bit):是计算机内部存储的最小单位,11111111是一个八位二进制数。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
- 1B=8bit
- 字符:是指计算机中使用的字母、数字、字和符号
- 1bit = 1位
- 1Byte=8bit
- 1024B = 1KB
二进制在计算机展示形式
负数在计算机内部是用补码表示的
例如 -1
1的原码是 0000 0001
则-1的反码是 1111 1110
补码是 1111 1111
所以 -1在计算机中表示为 1111 1111
类型转换
java是一种强类型语言,所以不同类型进行计算的时候需要进行类型转换,类型转换从高到底的顺序
byte,short,char->int->long->float->double,不同类型的数据需要先转换位同一类型再进行计算
int a = 2000000000;
int b = 20;
int c = a*b;//计算溢出
System.out.println("int c = "+c);
long d = a*b;//a*b都为int类型,计算出来的也是int类型,在转换位long类型不变