2.1.2 常量和变量 1. 常量:不能改变的数值
分类:
- 整数常量
- 小数常量
- 布尔类型常量
- 字符常量
- 字符串常量
- null常量
2. 变量
(1)定义:在内存中开辟一块空间,来存储不确定的数据。
(2)定义变量的格式:
数据类型 变量名 = 初始值;
int a = 3;
(3)数据类型:
2.1.3 类型转换
分类:
自动类型转换(隐式类型转换)和强制类型转换(显示类型转换)
1. 自动类型转换:对于数值型低精度自动转换为高精度
int a = 3;
double b;
b = a + 4;
注:字符型会自动提升为int型。
2. 强制类型转换
int a;
a = (int)3.14;
2.1.4 转义字符
通过\来改变后面的字母或符号的含义
- \n:换行
- \t:制表符
- \r:回车。Linux中可以用\r表示回车,在Windows中的回车用\r\n表示。
- \d:退格
- \\:表示\
- \":表示"
2.1.5 运算符
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三元运算符
1. 算术运算符
包括:+、-、*、/(取商)、%(取余)、++(自加)、--(自减)
5/2 = 2;
5%2 = 1;
2. 赋值运算符:
包括:=、+=、-=、*=、/=、%=
x+=6;——>x=x+6;
short s=4;
s = s + 4;//编译出错,两布运算,s + 4算完会提升为int类型。
s+=4;//成功,一步运算,内部有一个自动转换。
3. 比较运算符:
包括:==(相等于)、!=(不等于)、<、>、<=、>=
比较运算符的结果是boolean类型,不是true就是false。
4. 逻辑运算符:
包括:&(与)、|(或)、^(异或)、!(非)、&&(短路与)、||(短路或)
(1)&(与):
true & true = true;
true & false = false;
false & true = false;
false & false = false;
只要有一个为false,结果就是false;
只有两个都是true,结果才是true。
(2) |(或):
true | true = true;
true | false = true ;
false | true = true ;
false | false = false;
只要有一个为true,结果就是true;
只有两个都是false,结果才是false。
(3)^(异或):
true ^ true = false;
true ^ false = true ;
false ^ true = true ;
false ^ false = false;
两个都一样,结果是false;
两个都不同,结果是true;
(4) !(非):
!true = false;
!false = true;
(5) &&(短路与):
int a = 2;
a > 3 && a < 6;
因为a > 3为false,所以后面a < 6不再判断,结果一定为false。
左边为false时,右边不运算。
(6)||(短路或):
原理和&&(短路与)一样;
当左边为true时,右边不运算。
5. 位运算符:
包括:<<(左移)、>>(右移)、>>>(无符号右移)、 &(与)、|(或)、^(异或)、~(反码)
(1)<<(左移):
3<<2:
先把3写成二进制0000-0000 0000-0000 0000-0000 0000-0011,然后左移2位
00-0000 0000-0000 0000-0000 0000-001100 = 12;
左移相当于*2的位数次幂
3<<2 ——> 3 * 4 = 12;
3<<2 = 12;
(2)>>(右移):
6>>2=1;
0000-0000 0000-0000 0000-0000 0000-0110
——> 000000-0000 0000-0000 0000-0000 0000-01
右移相当于/2的位数次幂
6>>2 ——> 6 * 4 = 1;
(3)>>>(无符号右移):
>>缺少位由原有数据的最高位的值而定;
如果最高位为0,右移后用0补齐空位;
如果最高位是1,右移后用1补齐空位。
>>>无论最高位是什么,都用0补空位。
(4)&(与):
6 & 3:
110
&011
----
010 = 2;
6 & 3 = 2;
把0当作false,1当作true,进行&运算即可;
(5)|(或):
6 | 5:
110
|101
____
111 = 7;
6 | 5 = 7;
(6)^(异或):
6 ^ 5:
110
^101
____
011 = 3;
6 ^ 5 = 3;
一个数异或同一个数两次,结果还是原数。
(7)~(反码):
~6:
~000...110
----------
111...001 = -7
~6 = -7;
6. 三元运算符:
格式:
(条件表达式)?表达式1:表达式2;
如果条件为true,结果是表达式1;
如果条件为false,结果是表达式2;
例:
int x = 3, y = 4, z;
z = (x > y)?x : y;
z存储的是两个数的最大的一个
|
|