一、常量
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);
祝大家圣诞节快乐!!