* 公共類類名與文件名一致
* package 聲明必須是源文件的首行代碼
package:包,java 類的組織管理方式,本質是文件夾
* import 引入其他包的類,指明一個類的路徑,在後面代碼中可只寫他的類名
2.變量
* java中變量都有類型
* 局部變量不能重複定義
* 變量的作用域、作用範圍,變量在它定義的代碼塊中有效
* 局部變量使用前必須初始化(即賦值)
3.java 數據類型
* 基本類型
* 引用類型
基本類型
byte 1字節,-2^7到2^7-1 ,-128 到 127
short 2字節,-2^15 到 2^15-1 ,-32768~~32767
int 4字節,-2^31 到 2^31-1
long 8字節,-2^63 到 2^63-1
float 4字節
double 8字節
char 2字節, 0 到 65535
boolean
基本類型轉換
* 低精度 -> 高精度
byte a = -128;
int b = a;
byte->short->int->long->double
* 低精度 <- 高精度
* 強制轉型
int a = 130;
byte b = (byte) a;
基本類型字面值
* 寫整數字面值,類型是 int 類型
long a = 9999999999;//錯
* byte、short、char 允許以範圍內的字面值直接賦值
byte b = 34;
* 浮點數字面值,是 double 類型
double a = 3.14;
float b = 3.14F;
* 後綴:
L - long
F - float
D - double
L - 9999999999L
F - 3.14F
D - 3D
基本類型運算規則
* 運算結果的數據類型與運算項中精度最高的類型一致
1 / 2 結果是 0 而不是 0.5
* byte、short、char 三種整數類型做數學運算時,會先自動轉爲 int 類型
byte a = 2;
byte b = 3;
byte c = a + b;//錯,右側兩項會自動轉爲int
* 整數運算溢出
int a = Integer.MAX_VALUE;
int b = a + 1;//能執行,得到int最小值
* float、double 運算不精確
2-1.9 得到: 0.10000000000009
4.35*100 得到: 434.999999999999996
* float、double 特殊值
Infinity - 無窮大
double a = Double.MAX_VALUE*2
double b = 3.0 / 0;
NaN - Not a Number
double a = Math.sqrt(-2);
運算符
數學運算
+ - * / %
% - 求餘數、求模
比較運算,返回 boolean
== !=
> >= < <=
邏輯運算
&& - 邏輯與,兩側同時爲真,結果爲真,短路與,左側爲假,右側不執行
|| - 邏輯或,兩側同時爲假,結果爲假,短路或,左側爲真,右側不執行
二進制位運算
& 位與,兩位同時爲1,結果爲1
| 位或,兩位同時爲0,結果爲0
^ 異或,相同爲0,不同爲1
~ 取反,0變1,1變0
移位運算
>> 右移位,符號位是0,左側補0;符號位是1,左側補1
>>> 無符號右移位,左側補0
<< 左移位,右側補0
流程控制
if-else if-else
switch-case-default
for
while - 先判斷再執行
do-while - 先執行再判斷
break - 跳出循環、switch
continue - 繼續下一輪循環
return
while(...) {
xxx
if(...) {
continue;
}
xxx
xxx
}
循環命名
outer:
while(1) {
inner:
while(2) {
xxx
if(...) {
continue outer;
}
xxx
if(...) {
break outer;
}
}
}