2.2.2 基本数据类型(小数/浮点数)
类型 |
字节 |
负数取值范围 |
正数取值范围 |
float |
4字节 |
-3.4E+38~-1.4E-45 |
1.4E-45~3.4E+38 |
double |
8字节 |
-1.7E+308~-4.9E-324 |
4.9E-324~1.7E+308 |
- 浮点型数值采用科学计数法表示:
- 2E3等价于2*10^3(结果:2000.0)
- 3E5等价于3*10^5(结果:300000.0)
注:double为浮点数的默认类型,如需为float类型赋值,需要在值的后面追加"F"。
2.2.3 基本数据类型(布尔)
类型 |
字节 |
取值范围 |
描述 |
boolean |
1字节 |
true/false |
仅可描述“真”或“假” |
- 可直接赋值true/false
- 也可以赋值一个结果为true/false的表达式
- 注意:Java中的boolean不能参与算术运算
2.2.4 基本数据类型(字符)
类型 |
字节 |
取值范围 (无符号数) |
字符编码 |
char |
2字节 |
0~65535 |
Unicode字符集(万国码) |
char 每一个字符背后,都有一个二进制数字代表
- Unicode字符集支持ASCII编码(美国标准信息交换码);
- Unicode中每个字符都对应一个十进制整数,从而可以使用多种方式赋值;
字符赋值:char c1 = ‘A’;(通过’'描述为字符赋值)
整数赋值:char c2 = 65;(通过十进制数65在字符集中对应的字符赋值)
进制赋值:char c3 = ‘\u0041’;(通过十六进制数41在字符集中对应的字符赋值)
2.2.5 转义字符
- 如果需要在程序中输出一个单引号字符,该如何完成?
为了解决这一问题,Java采用了转义字符来表示单引号和一些特殊符号。
\n -> 换行符
\t -> 缩进(制表位)
\\ -> 反斜线
\’ -> 单引号
\" -> 双引号
2.2.6 引用数据类型(字符串)
类型 |
取值范围 |
字符编码 |
Sting |
任何""之间的字面值 |
Unicode字符序列 |
- String类型的字面取值:
String str1 = “你好”;
String str2 = “Hello”;
String str3 = “分布式架构师”;
String str4 = “Java Engineer”;
2.3 类型转换
2.3.1 自动类型转换
2.3 类型转换
2.3.1 自动类型转换
- 两种类型相互兼容;
- 目标类型大于原类型;
2.3.2 强制类型转换
- 两种类型相互兼容;
- 目标类型小于源类型;
2.3.3 强制类型转换规则
-
整数长度足够,数据完整;
例:int i =100; byte b = (byte)i; //b=100
-
整数长度不够,数据截断;
例:int i = 1000; byte b = (byte)i; //b=16(符号位变化,可能变为负数)
-
小数强转整数,数据截断;
例:double d = 2.5; int i = (int)d; //i=2(小数位舍掉)
-
字符整数互转,数据完整;
例:char c = 65; int i = (int)c; //i=65
boolean的取值为true/false,不可与其它类型转换。
2.3.4 表达式
2.3.5 运算符
操作符 |
描述 |
+ |
加、求和 |
- |
减、求差 |
* |
乘、求积 |
/ |
除、求商 |
% |
模、求余 |
操作符 |
描述 |
++ |
递增,变量值+1 |
- - |
递减,变量值-1 |
操作符 |
描述 |
= |
直接赋值 |
+= |
求和后赋值 |
-= |
求差后赋值 |
*= |
求积后赋值 |
/= |
求商后赋值 |
%= |
求余后赋值 |
操作符 |
描述 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
== |
等于 |
!= |
不等于 |
- 逻辑运算符:两个boolean类型的操作数或表达式进行逻辑比较;
操作符 |
语义 |
描述 |
&& |
与(并且) |
两个操作数,同时为真,结果为真 |
|| |
或(或者) |
两个操作数,有一个为真,结果为真 |
! |
非(取反) |
意为“不是”,真即是假,假即是真 |
操作符 |
语义 |
描述 |
?: |
布尔表达式?结果1:结果2 |
当表达式结果为真,获得结果1;当表达式结果为加,获得结果2 |