java基本数据类型
整数类型
补充:计算机存储单位
字节(Byte):是计算机用于
计量存储容量
的基本
单位,一个字节等于8 bit。位(bit):是数据存储的
最小
单位。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8 bit 就称为一个字节(Byte)。转换关系:
8 bit = 1 Byte
1024 Byte = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB
小知识点:java为什么不允许数字开头?因为会引起歧义
//如果可以该情况下会出错
int 123L = 199;
long l = 123L;
浮点类型
浮点型常量有两种表示形式:
十进制数形式。如:5.12 512.0f .512 (必须有小数点)
科学计数法形式。如:5.12e2 512E2 100E-2
float:
单精度
,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。double:
双精度
,精度是float的两倍。通常采用此类型。定义float类型的变量,赋值时需要以"
f
"或"F
"作为后缀。Java 的浮点型
常量默认为double型
。并不是所有的小数都能可以精确的用二进制浮点数表示。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。
浮点类型float、double的数据不适合在
不容许舍入误差
的金融计算领域。如果需要精确
数字计算或保留指定位数的精度,需要使用BigDecimal类
。
字符类型
char 型数据用来表示通常意义上“
字符
”(占2字节)Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
字符型变量的三种表现形式:
形式1:使用单引号' '括起来的
单个字符
。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
形式2:直接使用
Unicode值
来表示字符型常量:‘\uXXXX
’。其中,XXXX代表一个十六进制整数。例如:\u0023 表示 '#'。
形式3:Java中还允许使用
转义字符‘\’
来将其后的字符转变为特殊字符型常量。例如:char c3 = '\n'; // '\n'表示换行符
转义字符
说明
Unicode表示方式
\n
换行符
\u000a
\t
制表符
\u0009
\"
双引号
\u0022
\'
单引号
\u0027
\\
反斜线
\u005c
\b
退格符
\u0008
\r
回车符
\u000d
char类型是可以进行运算的。因为它都对应有Unicode码,可以看做是一个数值。
布尔类型
boolean 类型用来判断逻辑条件,一般用于流程控制语句中:
if条件控制语句;
while循环控制语句;
for循环控制语句;
do-while循环控制语句;
boolean类型数据只有两个值:true、false,无其它。
不可以使用0或非 0 的整数替代false和true,这点和C语言不同。
拓展:Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示。——《java虚拟机规范 8版》
自动类型提升
long l = 123; //int自动转为long类型
long l = 123L; //就是定义了一个long类型
float f = 12.3F; //定义一个float类型,不能float f = 12.3定义
double d = 12.3; //定义一个double