1. Java的Hello World
public class Test {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
2. 注釋
Java中的注釋共分為三種
1.單行注釋 //
2.多行注釋 /* */
3.文檔注釋 /** */
3.數據類型
- 整形
類型 | 存儲需求 | 取值范圍 |
---|---|---|
int | 4字節 | -231-231-1 (超過20億) |
short | 2字節 | -2^15 - 2^15-1 |
long | 8字節 | -2^63 - 2^63-1 |
byte | 1字節 | -128 - 127 |
Java7開始可以為數字字面量加下劃線 1_000_000 可以表示100萬
2.浮點型
類型 | 存儲需求 | 取值范圍 |
---|---|---|
float | 4字節 | |
double | 8字節 |
char類型
char類型表示單個字符unicode 和 char類型
不建議使用,可以使用字符串來代替boolean類型
boolean 有兩個值:true 和 false。 在Java中boolean和整型不能互換
4. 變量
在聲明變量時,變量的類型位于變量名之前。
4.1 變量的初始化
在聲明一個變量后必須使用賦值語句對變量進行顯示初始化,造成不要使用未初始化的變量。
4.2 常量
在Java中,利用關鍵字final聲明常量。 例如:
public class Constants {
public static void main(String[] args){
final double CM_PER_INCH = 2.542122;
}
}
關鍵字final表示這個變量只能被賦值一次。一旦被賦值之后,就不能再更改了。習慣上常量名使用全大寫。
5. 運算符
在Java中使用算術運算符+、-、*、/表示。當參與/運算的兩個操作數都是整數時,表示整數除法;否則,表示浮點除法。整數的求操作用%表示。
注意:當整數被0除的時候會產生一個異常,而浮點數被0除會得到無窮大或NaN結果。
1. 數學函數與常量。
在Math類中,包含了各種各樣的數學函數。
1.1 平方根:Math.sqlrt();
1.2 冪運算:Math.pow(x,y);
1.3 可以判斷一個數的奇偶: floorMod();
1.4 常用的三角函數
- Math.sina
- Math.cos
- Math.tan
1.5 Java還提供了兩個用于表示π和e常量的近似值:
Math.PI
Math.E
2. 數值類型之間的轉換
當使用兩個數值進行二元操作時,先要將兩個操作數轉換為同一種類型,然后再進行計算。
如果兩個操作數中有一個是double類型,另一個操作數就會轉成double類型。
否則,如果其中一個操作是float類型,另一個操作數就會轉成float類型。
否則,如果其中一個操作數是long類型,另一個操作數將會轉換為long類型。
否則,兩個操作數都將被轉換為int類型。
3. 強制類型轉換
double x = 9.997;
int nx = (int) x;
4. 綜合賦值和運算符
可以在賦值中使用二元運算符。
x += 4;
5. 自增與自減運算符
i++; ++i; i--; --i;
6. 關系和布爾運算
==、 != 、 && 、 || 、 ? :
7. 位運算符
&(與) |(或) ~(非) ^(異或) >>(左位移) <<(右位移) >>>(以0填充高位左位移) <<<(沒有)
8. 括號與運算符優先級
括號內的優先級最高,最先計算
9. 枚舉
6.字符串
每個用""引號引起來的字符串都是String類的一個實例。
子串
String類的substring方法可以從一個較大的字符串提取出一個子串拼接
Java允許使用+號連接兩個字符串。也可以使用靜態的join方法。
String all = String.join("/", "S", "M", "L");
// all = "S/M/L"。 使用一個定界符進行分隔。不可變字符串
字符被確定后,他本身是不可以被改變的。檢測字符串是否相等
可以使用equals方法檢測兩個字符串是否相等。
equalsIgnoreCase方法在檢測字符串是否相等時,不區分大小寫
千萬不要使用 == 來檢測兩個字符串是否相等空串與NULL串
空串""是長度為0的字符串。 NULL串表示這個字符串為null。碼點與代碼單元
這里的知識比較晦澀難懂,在Java核心技術卷I第49頁上。String API
Java核心技術卷I P50閱讀聯機API文檔
Java核心技術 卷I P52構建字符串
采用字符串連接的方式來構建字符串效率比較低,每次連接字符串,都會構建一個新的String對象,既耗時,又浪費空間。可以使用StringBuilder類來避免
StringBuilder 是線程不安全的在多線程的環境下,應該使用StringBuffer。
7.輸入輸出I/O
讀取輸入
格式化輸出
System.out.printf(); 的格式化符號。
3.文件輸入與輸出
8.控制流程
- {} 語句塊
- 條件語句
if - 循環
while
do while - 確定循環
for - 多重選擇: swtich語句
switch(){
case 1:
...
break;
} - 中斷流程控制語句 break
9.大數值
java.math包下的BigInteger和BigDecimal。
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other)
java.math.BigDecimal
BigDecimal add(BigDecimal other)
BigDecimal subtract(BigDecimal other)
BigDecimal multiply(BigDecimal other)
BigDecimal divide(BigDecimal other RoundingMode mode)
10.數組
數組是一種數據結構,用來存儲同一類型的集合。通過下標可以訪問數組中的每 一個值。
int[] a = new int[100]; 聲明了長度為100的數組,可訪問的下標為0-99;
for each循環
數組初始化及匿名數組
int[] a = {1,2,3,4}; //在聲明時初始化數組
匿名數組: new int[]{1,2,3,4}; //初始化了一個匿名數組數組拷貝
在Java中,允許將一個數組變量拷貝給另一個數組變量。這時,兩個變量將引用同一個數組
int[] luckyNumbers = smallPrimes;
luckNumbers[5] = 12;
如果希望將值拷貝到一個新的數組中,可以使用Arrays類中的copyOf方法命令行參數 main方法接收一個String[] 參數,這里便是命令行參數
數組排序:Ayyay.sort()
多維數組
不規則數組