1. 程式人生 > 實用技巧 >Java基礎<精簡>

Java基礎<精簡>

1.JVM新加“即時編譯”,將熱點程式碼直接編成底層程式碼,減少增加翻譯之後可能存在的通訊歧義或效率問題;

2.字符集和字元編碼
  字符集:Unicode
  字元編碼:
  utf-8(這個是可變編碼,需要1位用1位,需要15位放15位,最大可擴容到4位元組,標記隔離的方式是這個字元的前2位來標識是否繼續讀);
  utf-16(可變的,1個位元組或2位元組,比utf-8容易,比utf-32短);
  utf-32

3.引用型別的有:物件、陣列、列舉

4.java記憶體(類只被載入一次):
  方法區:
    靜態成員變數,程式碼
  棧(和執行緒繫結,幾個執行緒幾個棧空間):

    區域性變數,方法的引數
  堆:
    物件、陣列、列舉;


5.java預設的&&和||都是短路的;

6.語句分類:賦值語句、宣告語句、流程語句;

7.switch->byte,short,int,char(及包裝類)、列舉、1.7之後String;

8.for each後可接陣列和實現了iterable介面的;

9.如果想用break跳出兩層迴圈,可以用標籤;

  例子:

out:
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 6; j++) {
                
if(i==2){ break out; } } }

10.方法修飾符:

  訪問控制符<防止無呼叫>

    default(1.8以後介面中用這個來寫方法體)

    final可修飾在類、方法、變數<成員變數 and 區域性變數>(只能賦值一次)、方法引數(引數不可賦值);

final,finally,finalize區別:

final:修飾變數時,該變數為常量,只能賦值一次;

   修飾方法時,該方法不可被重寫;

   修飾類時,該類不可被繼承;

   修飾方法引數,該引數不可被修改;

finally:try-catch後的必然執行的;

11.GC處理:記憶體不夠時、CPU空間時、主動呼叫System.gc();

12.方法簽名:方法名和引數構成方法簽名,方法簽名用於區分函式;

13.Java本身不會有記憶體洩漏,出現記憶體洩漏是因為程式設計師認為操作失誤導致的;