Hadoop3.x
常識
-
Java物件和new的東西分配在堆上。
-
Java運行於虛擬機器中,不同的系統環境使用對應的JVM可以跑相同的程式碼,因此具備跨平臺性。
-
C++還依賴系統環境,因此係統環境不同時相同的程式碼的執行結果不一定相同,或者不能執行。
基本型別
-
隱式型別轉換隻能從低記憶體型別向高記憶體型別轉換,如
int
到double
, 而相反時必須顯式轉換。 -
基本型別有對應的類,可以相互賦值, 為裝箱或拆箱。
-
浮點數預設為double, 給float賦值需要末尾加f。
float price = 12.2f;
-
建立陣列時得到一個引用,預設為null,使用前應建立。 也可以建立基本型別陣列,預設值為0.
寫法:
宣告 Type[] name; Type name[]; 賦值 name = new Type[num]; 同時宣告和賦值 Type[] name = new Type[num]; int[] a = {1, 2, 3, 4};
命名規範
包名全小寫
類名首字母大寫
物件和方法首單詞小寫,後面單詞首字母大寫
常量全大寫
陣列宣告用 Type[] name;
輸出
System.out.println()
System.out.print()
static
變數只佔用一塊儲存空間。 可以理解為寫演算法程式裡的全域性變數被所有函式共用, 而static
變數被所有物件共用。
呼叫方法:
-
通過具體例項呼叫
-
用類呼叫
Class.i
String 類
- 連線 +
- 字串長度
length()
- 字串查詢
indexOf()
andlastIndexOf()
- 獲取索引位置字元
charAt()
- 獲取子字串
substring(int beginIndex, *int endIndex)
- 去除空格
trim()
- 替換字串
replace(char oldChar, char newChar)
- 判斷開頭結尾
startsWith(String prefix)
,endsWith(suffix)
- 判斷相等
s1.equals(s2)
- 按字典序比較
s1.compareTo(s2)
- 大小寫轉換
toLowerCase()
toUpperCase()
- 字串分割
split(String sign, int limit)
按sign
分割,limit
為匹配次數。 如果sign
有多個用|
連線, 如,|=
。
陣列
-
二維陣列遍歷
for(int i = 0; i < a.length; i++) { for(int j = 0; j < a[j].length; j++) { ...a[i][j]; } } for(int x[] : arr2) { for(int e : x) { ...e } }
-
填充陣列
fill(int[] a, *int fromIndex, *int toIndex, int value)
-
排序
sort()
-
複製
copyOf(arr, int newlength)
,copyOf(arr, int fromIndex, int toIndex)
-
二分查詢
binarySearch(Object[], int fromIndex, int toIndex, Object key)
Arrays.sort(a); int index = Arrays.binarySearch(a, 4);
別名
Java通過引用獲取變數
對於 C = D
, C和D指向同一個例項,只是名字不同,為“別名”(aliasing).
==
比較的是引用是否指向同一例項,若比較兩例項的內容, 用 equals()
。 (n1.equals(n2)
)
構造器
- 可以用this來使用構造器
this(); this(1);
垃圾回收
System.gc()
請求執行垃圾回收
許可權修飾符
-
private
類內部訪問 -
無修飾(friendly)
包內任意訪問 -
protected
包內任意訪問,不同包僅子類訪問 -
public
任意訪問