一、常量
1.值不可以变化的量。
2.
分类:
字符串常量 用双引号括起来的多个字符,可以包含
0、1
或多个,例如
"a"
、
"abc"
、
"
中国
"
整数常量,例如:
-10
、
0
、
88
小数常量,例如:
-5.5
、
1.0
、
88.88
字符常量,用单引号括起来的一个字符,例如:
'a'
、
'5'
、
'B'
、
'
中
'
布尔常量,表示真假,只有两个值
true
和
false
空常量, 一个特殊的值,空值,值为
null
除空常量外,其他常量都可以使用输出语句直接输出。
public class chang {
public static void main(String[] args) {
System.out.println(0); // 输出一个整数
System.out.println(2.2); // 输出一个小数
System.out.println('a'); // 输出一个字符
System.out.println(true); // 输出boolean值true
System.out.println("不要吵架"); // 输出字符串
}
}
二、类型转换
自动类型转换:
把一个范围小的数值或者变量赋值给另一个范围大的变量,这种转换方式是自动的,直接写就行。
double num = 1; // 将int类型的1直接赋值给double类型
System.out.println(num); // 输出1.0
强制类型转换:
格式:目标数据类型 变量名
= (
目标数据类型
)
值或者变量
;
小数位直接舍弃!!
double num = 5.5;
int numm = (int) num; // 将double类型的num强制转换为int类型
System.out.println(numm); // 输出5(小数位直接舍弃)
这是数据范围从小到大的图。
整数默认是int类型,byte、short和char类型数据参与运算会自动转换为int类型。
char
类型的数据转换为
int类型是按照ASCII
码表中对应的int
值进行计算的。比如
'a'
对应
97。
boolean类型不能与其他基本数据类型相互转换。
三、算术运算符
1.+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
2.
'a' -- 97 a-z
是连续的,所以
'b'
对应的数值是
98
,
'c'
是
99
,依次递加
'A' -- 65 A-Z
是连续的,所以
'B'
对应的数值是
66
,
'C'
是
67
,依次递加
'0' -- 48 0-9
是连续的,所以
'1'
对应的数值是
49
,
'2'
是
50
,依次递加
// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少
char ch1 = 'a';
System.out.println(ch1 + 1); // 输出98,97 + 1 = 98
char ch2 = 'A';
System.out.println(ch2 + 1); // 输出66,65 + 1 = 66
char ch3 = '0';
System.out.println(ch3 + 1); // 输出49,48 + 1 = 49
3.算术表达式中包含不同的基本数据类型的值时,整个算术表达式的类型会自动提升。
byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2; // 该行报错,因为byte参与算术运算会自动变为int,int赋值给byte可能损失精度
int i3 = b1 + b2; // 应该使用int接收
byte b3 = (byte) (b1 + b2); // 或者将结果强制转换为byte类型
int num1 = 10;
double num2 = 20.0;
double num3 = num1 + num2; // 使用double接收,因为num1会自动提升为double类型
4.当+操作中出现字符串时,这个+是字符串连接符,而不是算术运算。
当连续进行
+操作时,从左到右逐个执行
,可以使用小括号改变运算的优先级。
四、赋值运算符
= | 赋值 |
+= | 先加再赋值 |
-= | 先减再赋值 |
*= | 先乘再赋值 |
/= | 先除再赋值 |
%= | 先取余再赋值 |
扩展的赋值运算符隐含了强制类型转换。
short s = 10;
s = s + 10; // 报错,因为s提升为int,赋值给short可能损失精度
s += 10; // 没问题,强制类型转换,相当于 s = (short) (s + 10);
祝大家圣诞节快乐!!