個人複習用:java複習1
Java複習1
1,java是跨平臺語言。真正執行的不是二進位制程式碼,而是位元組碼。
2,JVM(JAVA Virtual Machine),java虛擬機器。
3,java跨平臺,而JVM不跨平臺。Java之所以能夠跨平臺,本質原因在於JVM不跨平臺。
4,java的資料型別分為兩大類:原生資料型別(基本型別)(Primitive Data Type)和引用型別(物件型別)(Reference Type)。
5,變數與常量:
- 常量:值不會變化的量。
- 變數:值不會變化的量。
- 定義變數:變數型別 變數名,例:int a;
- 給變數賦值:int a = 3; = 賦值符。== 表示相等。
6,關於計算機系統中的資料表示:
位:bit(只有0和1)計算機中最小資料表示單位。
位元組:byte,1byte = 8 bit。
1kb = 1024 byte。
1mb = 1024kb。
1gb = 1024 mb。
1tb = 1024gb。
7,原生資料型別:
- 整型:int(Integer)32位,-2147483648到2147483647。
- 位元組型:byte(Byte),-2128~127。
- 短整型:short(Short),16位,-32768到32767。
- 長整型:long(Long)64位,-9223372036854775808到9223372036854775807
- 單精度浮點型:float(Float)32位,1.4E-45 (2的-149次方)到3.4028235E38 (2的128次方-1)。
- 雙精度浮點型:double(Double)64位,4.9E-324 (2的-1074次方)到1.7976931348623157E308 (2的1024次方-1)。
- 字元型:char(Character),單個字元。
- 布林型別:boolean(Boolean),只有true和false兩個值。
double比float表示的資料範圍大。
8,Java中的所有浮點型別預設情況下都是 double。不能將 double型別的值賦給float型別的變數,即便該double型別的值處於float型別的範圍內也是不可以的。總之,能否成功賦值取決於等號右邊的值型別與等號左邊的變數型別是否一致。
9,可以將表示範圍小的值賦給表示範圍大的變數;但不能直接將表示範圍大的值賦
給表示範圍小的變數,只能通過強制型別轉換實現。
例如:int a = 1; short b = a;
a 是 int 型別,b 是 short 型別,int 型別表示的資料範圍要比 short 型別大,不能將表示
範圍大的值賦給表示範圍小的變數。
short a = 1; int b = a;
a 是 short 型別,b 是 int 型別,int 型別表示的資料範圍要比 short 型別大,可以將表示
範圍小的值賦給表示範圍大的變數。
10,當有若干個變數參與運算時,結果型別取決於這些變數中表示範圍最大的那個變數型別。
比如,參與運算的變數中,有整型 int,有雙精度浮點型 double,有短整型 short,那麼
最後的結果型別就是 double。
int a = 1; int b = 2; double c = (double)a / b;
上面的程式碼中,a與 b都是整型,但是通過(double)a這種轉換將a轉換為一個匿名的變
量,該變數的型別是 double,但是要注意:a本身依舊是 int型別,而不是double型別,
這樣,(double)a / b就是 double型別除以 int型別,結果自然是double型別。
11,取模運算子:%。
取模的規律:取模的結果符號永遠與被除數的符號相同。
int a = 5; int b = -3; int c = a % b;
數是5,那麼取模的結果是2;
int a = -5; int b = 3; int c = a % b;
數是-5,那麼取模的結果是-2。
12,關係運算符:大於(>)、小於(<)、等於(==)、不等於(!=)、大於等於(>=)、小於等於(<=),關係運算的結果是個 boolean值。
13,邏輯運算子:重點講解兩個,邏輯運算子本身也返回一個boolean值。
(1) 邏輯與:使用&&表示,邏輯與是個雙目運算子(即有兩個運算元的運算子),只有
當兩個運算元都為真的時候,結果才為真;其餘情況結果均為假。邏輯與表示的並且的意思。
(2) 邏輯或:使用||表示,邏輯或也是個雙目運算子,只有當兩個運算元都為假的時候,
結果才為假;其餘情況結果均為真。邏輯或表示或者的意思。
14,關於邏輯運算子的短路特性。
(1) 邏輯與:如果第一個運算元為 false,那麼結果肯定就是 false,所以在這種情況下,
將不會執行邏輯與後面的運算了,即發生了短路。
(2) 邏輯或:如果第一個運算元為 true,那麼結果肯定就是 true,所在在這種情況下,
將不會執行邏輯或後面的運算了,即發生了短路。
15,關於變數的自增與自減運算。
(1) 關於int b = a++,作用是將a的值先賦給b,然後再讓a自增1。
(2) 關於int b = ++a,作用是將a的值先自增1,然後將自增後的結果賦給 b。
16,條件運算子(三元表示式),其形式為:
type d = a ? b : c; 具體化形式為:int d = 2 < 1 ? 3 : 4。
17,流程控制語句:if和else
格式:
if(布林表示式) {
//執行語句
} else if(布林表示式) {
//執行語句
} else {
//執行語句
}
18,switch語句:
格式:
Switch(變數) {
case 常量1:
//執行語句
break;
case 常量2:
//執行語句
break;
default:
//執行語句
break;
}
雖然 case語句中的 break是可選的,但在絕大多數情況下,如果沒有 break,程式的邏
輯就會發生錯誤,因此,通常情況下都需要加上 break。
19,while迴圈和do...while迴圈:
格式:
while(布林表示式){
//執行語句
}
do {
//執行語句
} while(布林表示式);
while與 do…while之間的區別:如果布林表示式的第一次判斷就為 false,那麼 while迴圈一次也不執行;do…while 迴圈則會執行一次。如果布林表示式第一次判斷為 true,
那麼while迴圈與 do…while迴圈等價。
20,for迴圈:
格式:
for(變數初始化;條件判斷;變數步進) {
//執行程式碼
}
例子:
for(int a = 0; a < 10; a++) {
//執行程式碼
}
for迴圈的執行過程:
1) 執行變數初始化。
2) 執行條件判斷。如果條件判斷結果為假,那麼退出 for 迴圈,開始執行迴圈後面的
程式碼;如果條件判斷為真,執行 for迴圈裡面的程式碼。
3) 執行步進。
4) 重複步驟2。