目录
注:左移一位,相当于原数字*2,左移N位,相当于原数字*2的N次方。(右移同样)
一、变量
Java中一共有八大基本数据类型
按字节由小到大依次排列为:
byte(1),short(2),char(2)int(4),float(4),long(8),double(8),boolean
基本数据类型的使用范围
byte | -128 -> +127 |
int | -2^31 -> 2^31-1 |
short | -32768 -> +32767 |
long | -2^63 -> 2^63-1 |
float | 遵循IEEE 754标准 |
double | 遵循IEEE 754标准 |
1、int类型(4字节)
语法格式
int 变量名 = 初始值;
代码示例
int num = 10;
System.out.println(num);
注:当在类中(主方法外)定义int变量时,默认值为0
public class Test {
int a;
public static void main(String[] args){
//初始化为0
int b;
//在主方法外定义int变量时,默认值为0
System.out.println(new Test().a);
System.out.println(b);
}
}
运行结果报错:尚未初始化变量b
只运行该句时“System.out.println(new Test().a);”,结果为0
2、short类型(2字节)
语法格式
short 变量名 = 初始值;
代码示例
short value = 0;
System.out.println(value);
3、long类型(8字节)
语法格式
long 变量名 = 初始值;
代码示例
long nun=10L;
System.out.println(nun);
4、byte类型(2字节)
语法格式
byte 变量名 = 初始值;
代码示例
byte bit=0;
System.out.println(bit);
5、float类型(4字节)
单精度浮点型变量
语法格式
float 变量名 = 初始值;
代码示例
float f=1.0f;
System.out.println(f);
6、double类型(8字节)
双精度浮点型变量
语法格式
double 变量名 = 初始值;
代码示例
double d = 1.0;
System.out.println(d);
注:在Java中,int除以int的值仍然是int(会直接舍弃小数部分)
若想要得到小数点,需要用double类型进行计算
int m = 1;
int n = 2;
System.out.println(m/n);
double m1 = 1.0;
double n1 = 2.0;
System.out.println(m1/n1);
代码运行结果分别为0、0.5
7、char类型(2字节)
语法格式
char 变量名 = 初始值;
代码示例
char ch = 'A';
8、boolean(布尔)类型
语法格式
boolean 变量名 = 初始值;
代码示例
boolean bool=true;
System.out.println(bool);
二、运算符
1、算术运算符
1.1基本四则运算符:+ - * / %
1)int/int结果还是int,需要使用double来计算
2)0不能作为除数
3)%表示取余
1.2增量赋值运算符:+= -= *= /= %=
int a = 10;
a += 1;
System.out.println(a);
"a += 1" 等价于 "a = a + 1"
1.3自增/自减运算符:++ --
int a = 10;
int b = ++a;
System.out.println(b);
int c = a++;
System.out.println(c);
结果为:11、11
结论:a、如果不取自增运算的表达式的返回值,则前置自增和后置自增没有区别。
b、如果去表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自 增之前的值。
2、关系运算符
关系运算符:== != < > <= >=
注:关系运算符的表达式返回值都是boolean类型
3、逻辑运算符
逻辑运算符主要有三个:&& || !
1.1逻辑与 &&
规则:两个操作数都为true,结果为true,否则结果为false。
1.2逻辑或 ||
规则:两个操作数都为false,结果为false,否则结果为true。
1.3逻辑非 !
规则:操作数为true,结果为false;操作数为false,结果为true。
注:短路求值
&&和||遵守短路求值的规则。
System.out.println(10 > 20 && 10 / 0 == 0);
System.out.println(10 < 20 || 10 / 0 == 0);
"10 / 0"会导致程序抛出异常,但是该代码能正常运行,说明"10 / 0"没有被真正运行。
结论:a、对于&&,如果左侧表达式值为false,则表达式的整体的值一定是false,无需计算右侧 表达式。
b、对于||,如果左侧表达式值为true,则表达式的整体的值一定是true,无需计算右侧表达 式。
4、位运算符
位运算符主要有:& | ~ ^
1.1按位与 &
规则:如果两个二进制位都是1,则结果为1,否则结果为0。
1.2按位或 |
规则:如果两个二进制位都是0,则结果为0,否则结果为1。
1.3按位取反 ~
规则:如果该位为0则转为1,如果该位为1则转为0。
1.4按位异或 ^
规则:如果两个数字的二进制位相同,则结果为0 ,相异则结果为1。
5、移位运算
移位运算符有:<< >> >>>
1.1左移<<
规则:最左侧位不要了,最右侧补0。
1.2右移>>
规则:最右侧位不要了,最左侧补符号位(整数补0,负数补1)。
1.3无符号右移>>>
规则:最右侧位不要了,最左侧补0。
注:左移一位,相当于原数字*2,左移N位,相当于原数字*2的N次方。(右移同样)
6、条件运算符
条件运算符表达式:表达式1 ? 表达式2 : 表达式3
当表达式1 的值为true时,整个表达式的值为表达式2的值,否则为表达式3的值。