数据类型作用
声明变量。
基本数据类型
四大类八小种
1.整数型:byte, short, int, long
2.浮点型:float, double
3.布尔型:boolean
4.字符型:char
整数型几个或者浮点型几个的区别:占用的空间大小不同
计算机储存单位
1 byte = 8 bit
1 bit就是一个二进制位
类型 | 字节数 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
float | 4 |
double | 8 |
boolean | 1 |
char | 2 |
取值范围:
byte : [-27~27-1]
short : [-215~215-1]
int : [-231~231-1]、[-2147483648 - 2147483647]
long : [-263~263-1]
float : [-231~231-1]
double : [-263~263-1]
boolean : true、false
char : [0~216-1]、[0 - 65535]
计算机中,一个二进制位最左边的是符号位,0为正,1为负。
整数型
在java中整数型字面量有4种表示形式:十进制、二进制0b、八进制0、十六进制0x。
int型整数赋值给byte、short、char 类型变量且没有超出相应的取值范围时,会自动转换成相应的数据类型。
若超出,则需要强转,例如c2。
byte、char、short做混合运算时,各自先转换成int再做运算。
char c1 = 97;
char c2 = (char)65536;
输出结果为c1为a.
自动类型转换
小容量可以直接赋值给大容量,称为自动类型转换;
大容量不能直接赋值给小容量,需使用强制类型转换符进行强转。编译无错误,但运行时可能会损失精度。
Java中数据的字面量默认是int型,例如:
short i = 128;
128就是int型,将其赋值给i时会强转为short型,若超出被赋值类型范围,会报错。
多种数据类型做混合运算时,最终结果类型是“最大容量”对应的类型。char + short + byte 除外,因为它们会各自先转换成Int型再做运算。
浮点型
float 单精度
double 双精度
BigDecimal精度更高(用于财务方面),但属于引用数据类型
任意一个浮点型都比整数型空间大
Java中人一个浮点型数据默认被当作double来处理,如果要float型的话,在字面量后面加F/f。
布尔型
boolean不能参与类型转换
引用数据类型
字符串型String属于引用数据类型,不属于基本数据类型。
什么是字符编码
字符编码是人为定义的一套转换表,规定了一系列的文字对应的二进制。
字符编码涉及到编码和解码两个过程,编码和解码必须采用同一套字符编码方式。
英文对应的字符编码是ACSII码
‘a’ -> 97
‘A’ -> 65
‘0’ -> 48 (文字’0’)
简体中文的编码方式:
GB2312 、 GBK 、 GB18030
繁体中文: big5(大五码)
Java采用Unicode编码方式,支持全球所欲的文字。具体实现包括:UTF-8、UTF-16、UTF-32
转义字符
""表示转义
\t 键盘上的tab键
\u表示后面面是字符的Unicode编码
补充:计算机底层部分知识
1.计算机在任何情况下都只能识别二进制;
2.计算机在底层存储数据的时候是以二进制的补码形式存储的。(理由:补码形式效率最高)
3.一个正数,二进制源码、反码和补码是相同的;
一个负数,
byte i = -1;
//源码
10000001
//反码(符号位不变,其它位取反)
11111110
//补码(反码+1)
11111111