1、源码使用背景
2、基础讲解
1、数据类型变量
数据类型包括基本数据类型与引用数据类型。
基本数据类型:整数类型、浮点类型、字符类型与布尔类型
(1)整数类型:byte(1字节)、short(2字节)、int(4字节)、Long(8字节)
(2)浮点类型:float(单精度浮点数,4字节)、double(双精度浮点数,8字节)
(3)字符类型:char(2字节)
(4)布尔类型:boolean(“true"或"false”)
注意点:
整型默认为int型,浮点型默认为double
整型变量long的初始值后加L或者l,推荐加L
浮点变量float的初始值后加F或者f,推荐加F
布尔类型的变量boolean只有两种取值, true 表示真, false 表示假
2、数据类型转换
Java数据类型转换包括:自动类型转换和强制类型转换
(1)自动类型转换
特点:数据范围小的转为数据范围大的时会自动进行
(2)强制类型转换
特点:
当进行操作时,代码需要进过一定操作才能转换,强制类型转换不一定能成功
不相干类型不能转换,例如:int不能与boolean进行强制类型转换
结论:
对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算
不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。
不相干类型不能转换,例如:int不能与boolean进行强制类型转换
包装类
int的包装类型为 Integer ,char的包装类型为Character ,其他数据类型的包装类型为首字母大写
二、Java运算符
1、算术符
1.1 基本四则运算符:加减乘除模(+ - * / %
int a = 3;
int b = 2;
// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即小数点之后全部舍弃掉了
System.out.println(a / b);
// 如果要得到数学中的结果,可以使用如下方式
double d = a*1.0 / b;
System.out.println(d);
1.2 增量运算符 += -= *= %=
int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1; // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3; // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3; // 相当于 a = a / 3
1.3 自增/自减运算符 ++ \ –
(1) 如果单独使用,【前置++】和【后置++】没有任何区别
(2)如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式 结束时给变量+1
只有变量才能使用自增 /自减运算符,常量不能使用,因为常量不允许被修改
混合使用 口诀:
++在前,先自增 后赋值 (++在后,先赋值 后自增)--在前,先自减 后赋值
1.4 关系运算符
关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。
int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false
1.5 逻辑运算符
逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。
1.5.1 逻辑与 &&
语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。
1.5.2 逻辑 ||
语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。
表达式1 表达式2 结果
真 真 真
真 假 真
假 真 真
假 假 假
1.5.3 逻辑非 !
语法规则:! 表达式
真变假,假变真。
表达式 结果
真 假
假 真
特别注意点:
对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
对于 | | , 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.
1.6 位运算符
1.6.1 按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0
1.6.2 按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1
1.6.3 按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0
1.6.3 按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1
异或举例
int a = 0x1;
int b = 0x2;
System.out.printf(“%x\n”, a ^ b);
注意点:&&为逻辑与,&为运算与,这两者不同含义,| | 也是同样道理
1.7 条件运算符
格式:(表达式1) ?( 表达式2) : (表达式3)
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.
// 求两个整数的最大值
int a=10;
int b=20;
int c= a>b ? 25 : 56;
1.8 移位运算符
<<(左移)、>>(带符号右移)和 >>>(无符号右移)
1、<<(左移)
m<<n 代表把数字m的二进制往左移n位
计算公式:m<<n在数字m无溢出的前提下乘以2的n次方
// 1乘以2的1次方
1<<1 // 2
// 1乘以2的5次方
1<<5 // 32
2、>>(带符号右移)
m>>n 代表把数字m的二进制往右移n位
计算公式:m>>n 代表把数字m除以2的n次方
// 1除以2的1次方
1>>1 // 0
// 1除以2的5次方
1>>5 // 0
// 10除以2的1次方
10>>1 // 5
// -10除以2的1次方
-10>>1 // -5
3、 >>>(无符号右移)
无符号右移运算符“>>>” - 同右移,但是结果全变正数。
把数字转换为二进制 然后进行右移一位 并变成正数
————————————————
版权声明:本文为CSDN博主「是烟花哈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_73471456/article/details/127590815