Java語言基礎-java的基本程式設計結構
- 關鍵字
- 被Java語言賦予特定含義的單詞
- 特點:
- 關鍵字
全部小寫
- 注意事項:
goto和const作為保留字存在
- 識別符號
- 給類、介面、方法、變數等起名字的字元序列
- 組成規則
- 英文大小寫字母
- 數字
- $和_
- 注意事項
- 不能以數字開頭
- 不能是java中的關鍵字
- 區分大小寫
- 常見命名規則(見名知意)
- 包:全部小寫
- 單機包:小寫
- 多級包:小寫,並用.隔開
- 類或者介面
- 一個單詞:首字母大寫
- 多個單詞:每個單詞首字母大寫
- 方法或者變數
- 一個單詞:首字母小寫
- 多個單詞:從第二單次開始,每個單詞首字母大寫
- 常量
- 包:全部小寫
全部大寫,多個單詞用_隔開。
- 註釋
- 就是對程式進行解釋說明的文字
- 分類:
單行註釋://
多行註釋:/**/ (不能巢狀)
文件註釋:/** */
- 常量
- 在程式執行的過程中,其值不發生改變的量
- 分類
- 字面值常量
- 自定義常量
- 字面值常量
字串常量 |
“hello” |
整數常量 |
12,213 |
小數常量 |
12.345 |
字元常量 |
'a' , 'A' , '0' |
布林常量 |
true\false |
空常量 |
null |
- 自定義常量
在java中,利用關鍵字final指示常量。
關鍵字final表示這個變數只能被賦值一次。常量名使用全大寫
註釋:在java中經常希望某個常量可以在一個類中的多個方法中使用,通常將這些常量稱為類常量,可以使用關鍵字static final設定一個類常量。
- 變數
在Java中,每一個變數屬於一種型別,在宣告變數時,變數所屬的型別位於變數之前。變數就是指在程式執行過程中值在某個範圍內可以發生改變的量。
變數的定義格式:
資料型別 變數名 = 初始化值;
宣告一個變數之後,必須使用賦值語句對變數進行顯示初始化。變數的宣告儘可能靠近變數第一次使用的地方。
- 資料型別
- Java是一種強型別語言。這就意味著必須為每一個變數宣告一種型別。
- 分類:
基本資料型別:
4類八種
引用資料型別:
類,介面,陣列
- 基本資料型別
-
整數
佔用位元組數
Byte
1
Short
2
Int
4
Long
8
-
-
浮點數
佔用位元組數
Float
4
Double
8
-
字元
佔用位元組數
Char
2
-
布林
佔用位元組數
Boolean
1
注意:整數預設是int類整型,浮點數預設是double
長整型要加L或l
單精度的浮點數要加F或者f
- 資料型別轉換
- boolean型別不參與轉換
- 預設轉換
- 從小到大
- byte,short,char -- int -- long -- float -- double
- byte,short,char之間不參與相互轉換,直接轉換成int型別參與運算。
- 強制轉換
- 從大到小
- 可能會損失精度
- 格式
目標資料型別變數名= (目標資料型別)(被轉換的資料);
- 運算子
- 算術運算子
- +,-,*,/,%,++,--
- +的用法
- 加法
- 正號
- 字串連線符
- /和%的用法
- 算術運算子
資料做除法操作的時候,/取得的是商,%取得的是餘數。
- ++和--的用法
- 自增或者自減
- 使用
- 單獨使用
放在操作資料的前面和後面的效果一樣。
- 參與操作使用
放在運算元前面:先自增或者自減,在參與操作。
放在運算元後面:先參與操作,再自增或者自減。
- 賦值運算子
- =,+=,-=,*=,/+,%=等
- =叫做賦值運算子,也是最基本的賦值運算子
- 擴充套件的賦值運算子的特點
隱含了自動強制轉換
第一個有問題!
- 比較運算子
- ==,!=,>,>=,<,<=
- 無論運算子兩段簡單還是複雜最終結果都是boolean型別
- 邏輯運算子
- &,|,^,!,&&,||
- 邏輯運算子用於連線boolean型別式子
- 結論
& |
有false則false |
| |
有true則true |
^ |
相同則false,不同則true |
! |
非true則false,非flase則true |
&& |
和&相同,不過有短路效果,左邊是false,右邊不執行 |
|| |
和|相同,不過有短路效果,左邊是true,右邊不執行 |
- 位運算子
- ^的特殊用法
一個數據對另外一個數據位異兩次,該數不變。
- 三元運算子
- 格式
比較表示式?表示式1:表示式2;
- 執行流程
首先計算表示式的值,是true,表示式1就是結果
false,表示式2就是結果。
- 字串
Java字串就是Unicode字元序列。
Java沒有內建的字串型別,而是在標準Java類庫中提供了一個預定義類。很自然的叫做String。每個用雙引號括起來的字串都是String類的一個例項。
- 子串
String類的substring方法可以從一個較大的字串中提取一個子串。
- 拼接
與絕大多數的程式設計語言一樣,Java語言允許使用+號連線兩個字串。
當將一個字串與一個非字元的值進行拼接時,後者被轉換成字串。
- 不可變字串
String類沒有提供用於修改字串的方法。
可以修改字串變數greeting,讓它引用另外一個字串。
- 檢測字串是否相等
可以使用equals方法檢測兩個字串是否相等。
如果字串s與字串greeting相等,則返回true,否則,返回false。
可以是字串變數,也可以是字串常量。
檢測兩個字串是否相等,而不區分大小寫,可以使用equalsIgnoreCase方法。
不能使用==運算子檢測兩個字串是否相等,這個運算子只能夠確定兩個字元是否放置在同一個位置上。
- 空串與Null串
空串""是長度為0的字串。可以呼叫以下程式碼檢查一個字串是否為空。
空串是一個Java物件,有自己的串長度(0)和內容(空)。不過,String變數還可以存放一個特殊的值,名為Null,這表示目前沒有任何物件與該變數關聯。
檢查一個字串是否為null
檢查一個字串既不是null,也不為空串
- 程式碼點與程式碼單元
要想得到實際的長度,即程式碼點的數量,可以呼叫
要想得到第i個程式碼點,應該使用
- 構建字串
構建一個空的字串構建器
當每次需要新增一部分內容時,就呼叫append方法
在需要構建字串時就呼叫toString方法,將可以得到一個String物件,其中包含了構建器中的字元序列
- 輸入輸出
- 讀取輸入
要想通過控制檯進行輸入,首先需要構造一個Scanner物件,並與“標準輸入流”System.in關聯。
nextLine()方法將輸入一行
讀取一個單詞(以空白符作為分隔符)呼叫next()
讀取一個整數,呼叫nextInt()
讀取浮點數,呼叫nextDouble()
在程式最開始一行新增一行
注:Console類實現讀取一個密碼
- 檔案輸入與輸出
要想對檔案進行讀取,就需要一個用File物件構造一個Scanner物件
寫入檔案就需要構造一個PrintWriter物件
- 控制流
- 條件語句
If(condition) statement
這裡的條件必須用括號括起來
If(condition) statement1 else statement2
- 迴圈
當條件是true時,while迴圈執行一條語句。
While(condition) statement
先執行語句,再檢測迴圈條件
Do statement while (condition);
- 確定迴圈
for迴圈語句是支援迭代的一種通用結構,利用每次迭代之後更新的計數器或類似的變化來控制迭代次數。
for (int I =1; I <= 10; I++)
System.out.println(i);
- 多重選擇:switch語句
Switch (chioce)
{
case 1:
…
break;
case 2:
…
Break;
.
.
.
defalut:
…
break;
}
switch語句將從與選項值相匹配的case標籤處開始執行直到遇到break語句,或者執行到switch語句的結束處為止。如果沒有相匹配的case標籤,而有default子句。就執行這個語句。
從JavaSe7開始,case標籤還可以是字串字面量和列舉(JDK5).
continue跳出單層迴圈一次。
- 大數值
如果基本的整數和浮點數精度不能夠滿足需求,那麼可以使用java.math包中的兩個很有用的類:BigInteger和BigDecimal。前者實現了任意精度的整數運算,後者實現了任意精度的浮點數運算。
使用靜態的valueOf方法可以將普通的數值轉換為大數值
處理大數值用大數值類中的add和multiply方法。