变量:程序运行时可变的量,相当于开辟一片内存来保存数据
那么如何来保存数据呢?
计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
运算符
运算符一般可以划分为下面几类:算数运算符,关系运算符,逻辑运算符,位运算符,位移运算以及条件运算符。
算数运算符
+ - * / %
其中% 与C 语言中不同,不仅仅可以对int求模,也可以对double求模。代码示例:
public class Test{
public static void main(String[] args){
System.out.println(11.5 % 2.0);
}
}
增量赋值运算:+= -= *= /= %=
自增/自减运算++ –
值得注意的是,在不取自增运算的表达式的返回值时,那么前置自增和后置自增没有区别。若取表达式的返回值。则前置自增的返回值返回的是自增之后的值。而后置自增返回的是自增之前的值。
关系运算符
== != < > <= >=
关系运算符的表达式返回的都是boolean类型
public class Test{
public static void main(String[] args){
int a=0;
int b=10;
System.out.println(a == b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
System.out.println(a != b);
}
}
逻辑运算符
&& || !
逻辑与&&
当两个操作数都为true时结果为true,否则false
逻辑或||
当两个操作数为false时结果为false否则true
逻辑非!
操作数与结果相反
public class Test{
public static void main(String[] args){
System.out.println(10 < 0 && 10/0==0);
System.out.println(10 > 0 || 10/0==0);
}
}
我们了解10/0会抛出异常,然而这里却没有抛出异常,说明10/0没有被求值。这样的被称作短路求值。对于短路求值有两个结论
1.对于&&,如果左侧表达式值为false,则整体为false,无需计算右侧表达式。
2.杜宇||,如果左侧值为true,则表达式的整体的值为true,无需计算右侧表达式。
位运算符
& | ~ ^
java 中对于数据的最小操作单位不是字节,而是二进制位。
位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的
注意: 当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算。
移位运算
<< >> >>>无符号右移
按照二进制位来运算
- 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
- 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
- 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位
- 移动负数位或者移位位数过大都没有意义.
条件运算符
java中唯一的三目运算符。
表达式1 ?表达式2 :表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为表达式3 的值.