JAVA快速学习(一)
前期准备
JDK安装:Java Downloads | Oracle
直接下载jdk 8 注册Oracle账号,下载完成一路下一步,直接默认让注册系统环境变量即可
IED安装:IntelliJ IDEA | Other Versions
我喜欢老版UI所以用之前的版本,直接切UI 就可以
基础学习
关系运算符
跟python是差不多的
逻辑运算符
1. 基本逻辑运算符对比
逻辑关系 | Java 运算符 | Python 运算符 | 说明 | ||
---|---|---|---|---|---|
逻辑与 | && | and | 两边都为真时,结果才为真 | ||
逻辑或 | ` | ` | or | 至少一边为真时,结果为真 | |
逻辑非 | ! | not | 取反(真变假,假变真) |
2. 核心差异
(1)语法形式不同
-
Java 使用符号运算符(
&&
、||
、!
),与大多数编程语言一致。 -
Python 使用关键字(
and
、or
、not
),更接近自然语言。示例:
java
运行
// Java boolean a = true; boolean b = false; System.out.println(a && b); // false(逻辑与) System.out.println(a || b); // true(逻辑或) System.out.println(!a); // false(逻辑非)
python
运行
# Python a = True b = False print(a and b) # False(逻辑与) print(a or b) # True(逻辑或) print(not a) # False(逻辑非)
(2)短路求值特性相同,但应用场景有别
两者都支持短路求值(即提前终止计算):
-
逻辑与(
&&
/and
):如果左边为假,右边不再计算。 -
逻辑或(
||
/or
):如果左边为真,右边不再计算。示例:
java
运行
// Java int x = 1; boolean res = (x > 5) && (x++ > 0); // 左边为假,x++不执行 System.out.println(x); // 输出 1(x未变)
python
运行
# Python x = 1 res = (x > 5) and (x := x + 1) # 左边为假,右边不执行(:=是赋值表达式) print(x) # 输出 1(x未变)
(3)对非布尔值的处理不同(关键差异)
-
Java:严格要求运算符两边必须是布尔值(
boolean
类型),否则编译报错。java
运行
// 错误示例:Java 不允许非布尔值参与逻辑运算 int a = 1; int b = 2; if (a && b) { // 编译错误:int 不能转换为 boolean// ... }
-
Python:允许非布尔值参与逻辑运算,会自动判断值的 “真假性”(
0
、""
、None
、空列表等视为假,其他视为真)。
并且返回的是实际参与运算的值,而非严格的布尔值True
/False
。python
# Python 示例:非布尔值参与运算 print(0 and 5) # 0(左边为假,返回左边) print(5 and 10) # 10(左边为真,返回右边) print("" or "hi") # "hi"(左边为假,返回右边) print("a" or "b") # "a"(左边为真,返回左边)
(4)位运算符与逻辑运算符的区分
Java 中需要注意逻辑运算符(&&
、||
)与位运算符(&
、|
)的区别:
&&
/||
是逻辑运算符,用于布尔值,支持短路求值。&
/|
是位运算符,可用于整数(按位运算)或布尔值(不短路求值)。
Python 中没有专门的逻辑运算符符号,&
/|
仅作为位运算符,不会用于逻辑判断。
注意点:
x++==6 :这里是后++,先比较==再++
++y==6:这里是先++,后比较==
跟JavaScript 是一样的
赋值运算符
跟python是一致的
三元运算符
public class Main {public static void main(String[] args) {int a = 10;int b = 99;int result = a > b ? a++ : b--;System.out.println(a);System.out.println(result);System.out.println(b);} }代码执行过程
初始化变量:
a = 10
,b = 99
。执行三元运算符:
java
运行
int result = a > b ? a++ : b--;
首先判断条件
a > b
:10 > 99
结果为false
。
因为条件为
false
,所以三元运算符会执行 冒号后面的表达式(即b--
)。
b--
是后减运算符:先使用b
的当前值(99),然后再将b
的值减 1。因此,
result
被赋值为b
的当前值 99,之后b
才变为 98。输出结果:
System.out.println(a)
:a
从未被修改,输出10
。
System.out.println(result)
:刚才赋值的是b
原来的值,输出99
。
System.out.println(b)
:b
经过b--
后变为 98,输出98
。核心原因
result
等于 99 是因为:
三元运算符根据条件选择了
b--
作为结果。后减运算符
b--
的特性是先取值,后减 1,所以result
得到的是b
原来的值(99),而不是减 1 后的值(98)。
运算符优先级
关键字
顺序控制
分支控制 if-else
跟python一致的,只是写法不一样