一、Java中的数据类型
-
基本数据类型(8种)
-
引用数据类型
String是引用数据类型
二、 基本数据类型
0. 小知识
(1)数据类型计算公式
(2)硬件厂商的硬件存储单位
计算机表示数据用二进制表示,即0和1
那么一位0或1,我们用bit(位),最小单位
计算机中最基本的单位用的byte字节,
1字节 = 8位
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
硬件厂商存储单位用1000进位,不是1024.
带宽 100Mb,b = bit
1. 整型系列
基础数据类型 | 类型名称 | 范围 | 占用字节数 | 说明 |
---|---|---|---|---|
byte | 字节类型 | -2^7 ~ 2^7-1 即-128~127 | 1个字节 | |
short | 短整型 | -2^15 ~ 2^15-1 即 -32768~32767 | 2个字节 | |
int | 整型 | -2^31 ~ 2^31-1 即-2147483648 ~ 2147483647 | 4个字节 | |
long | 长整型 | -2^63 ~ 2^63-1 即-9223372036854774808 ~ 9223372036854774807 | 8个字节 | 对于long类型的常量,需要加大写L或小写l (建议用大写) |
2. 小数类型
基础数据类型 | 类型名称 | 范围 | 占用字节数 | 精度范围 | 说明 |
---|---|---|---|---|---|
float | 单精度浮点型 | 4个字节 | 把小数用科学记数法表示后,小数点后6~7位 | float类型的常量,需要在数字后面加F或f | |
double | 双精度浮点型 | 8个字节 | 把小数用科学记数法表示后,小数点后15~16位 |
2.1 浮点型在底层如何存储?(了解)
(1)浮点型的float和double在底层如何存储?
只存三个内容:
(1)正负号
(2)挪完后的几次方,指数
(3)二进制的小数部分(称为尾数)
例如:如何存储3.14?
化繁为简
- 小数–>二进制:3.14–>11.00100…
(1)整数部分:除2倒取余
(2)小数部分:乘2正取整数部分’- 把这个二进制用科学记数法表示
11.00100…–>1.1 00100… * n的1次方
解释
用科学计数法表示后,对于二进制的科学计数法,整数部分永远是1
那这样的话,整数部分和小数点都不用存了
(2)float和double
- float
4个字节,就被分为三个部分,最高位还是符号位,接下来的8位用来存指数部分,然后剩下的存尾数,如果存不下的尾数,就舍去了
- double
8个字节,就被分为三个部分,最高位还是符号位,接下来的11位用来存指数部分,然后剩下的存尾数,如果存不下的尾数,就舍去了
(3)了解
(1)浮点类型不精确,因为十进制的小数部分转二进制会需要舍去
(2)float类型的4个字节能表示的数字范围比long类型的8个字节还要大,因为浮点型底层存的是指数
3. 字符类型
基础数据类型 | 类型名称 | 范围 | 占用字节数 | 说明 |
---|---|---|---|---|
char | 单字符类型 | 2个字节 |
- 在Java中是使用Unicode编码表表示。(兼容ASCII码)
每一个字符都有一个唯一的Unicode编码值。
例如:数字0,Unicode编码值是48 字母A,Unicode编码值是65 字母a,Unicode编码值是97
- 如何表示char类型的字符常量呢?
(1)‘一个字符’,例如:
'女','A'
(2)‘转义字符’,例如:
'\n'(换行),'\t'(制表位Tab键) '\\'(斜杠),'\"'(双引号),'\''(单引号) '\b'(删除键Backspace),'\r'(回车键)
(3)‘斜杠u字符的Unicode编码值的十六进制形式’
4. 布尔类型
只能存两个值之一:true,false
一般boolean的值用于条件判断