Java的一些基本知識

來源:互聯網
上載者:User

一. 數組

  . 正確的定義: int num[];   num= new int[5]       //只有用new關鍵字真正建立數組時才可以給定它的大小

    錯誤的定義: int num[5];

  . 常見的數組錯誤為 : ArrayIndexOutOfBoundsException  (數組越界錯誤)

  . 數組的維度用 .length;  字串長度用 .length();

  . 正確的初始化: int[] num={1,2,3}; 又或者: int num[]= new int[]{1,2,3}

    錯誤的初始化: int[] num=new int[3]{1,2,3};

  . 不能改變Java數組的大小.

 

二. 類

  . Java只允許單繼承,所以增加了介面特性.

  . 所有Java類都是Object類的後代,如果一個類沒有extend關鍵字,這個類將是基類Ojbect派生的.

  . 一個檔案只能有一個外部類可以聲明為public, 如果你在一個檔案中定義多於一個public外部類,將會發生編譯錯誤

  . Java嚴格區分大小寫.

  . 一個外部類只允許聲明為public, abstact , final.

  . System.out.print 是static方法, 不需要new建立.

  . Static方法只能訪問Static變數

  . 一個方法變數將"屏蔽"類層級的變數

  . Private     : 建立它的類內部可見

    Public       : 所有類都可見

    Protected : 在類自身, 子類, 同一個包內部可見

  . Static  : 可以應用於內部類,方法, 變數.

                 標誌一個變數為static, 表示其只能有一個副本存在.

                 一個static方法,不能在一個子類中重寫為非static方法. (此規則對方法的重載不起作用)

                一個非static方法,不能在一個子類中重寫為static方法.  (此規則對方法的重載不起作用)

 . native  : 僅修飾方法, 指明代碼體不是用java而是用c或以c++所寫

                 以一個分號結尾,與不是一個代碼塊, 如: pubic native fastCal();

 . abstract: 可以修飾方法和類

                 當修飾方法,表明方法只能在子類執行時運行,沒有方法體.

                 如果一個類有 atstract 方法,則它需要聲明為 abstract類.

                 任何從absract類繼承來的類,都要實現基類的abstract方法, 或者聲明自身為abstract類.

  . final  : 可修飾類,方法, 變數.

               final類不能被繼承.

               任何final類中的方法自動成為final方法.

  . Synchronize : 同步的

  . transient      : 瞬時的

  . volatile         : 不穩定的

 

三. 構造方法

  . 構造方法是一種在類執行個體化時自動啟動並執行特殊類型的方法, 通常被用來初始化類中的值.

  . 構造器有和類同樣的名字並且沒有傳回值(包括void).

  . 一旦你為一個類建立了任何的構方法,你需要建立一個無參數的構造方法.

  . 構造方法不能是 native, abstract, static, synchronize, final

  . 構造方法不能被繼承.

  . 構造方法中,不能同時用 super() 和 this()

 

四. 重載與重寫

  . 重載: 如果一個類中的兩個或者多個方法有同樣的名字.

            (通過參數的順序和類型來區分兩個重載的方法,傳回型別對區重載沒有協助.)

  . 重寫: 在子類中的方法跟基類中被取代的原始方法有完全相同的方法名,包括傳回值, 完全取代其功能.

            (static方法不能被重寫)

 

五. 流程式控制制和差錯處理

  . if 語句必須帶一個 boolean 類型的值, 不能用非零的數值來表示 true;

  . switch 語句的參數必須是 byte, char, short, int

 

六. 迴圈

  . 死迴圈:  for(;;) system.out.print("forever");  或者 while(true){system.out.print("true")};

  . break/continue 不能跳到另一個方法去.

 

七. Try/Catch/Finally

  . 在子類中一個重寫的方法可能只拋出父類中聲明過的異常,或者異常的子類. (不適用於重載)

  . 通常來說, 所有的I/O操作都需要外在的使用 try/catch來異常處理.

  . 考試可能給你一個包括 return 語句來誤導你認為代碼不執行 finally語句就返回, 實際上 finally子句總是會執行的.

  . 如果執行了 System.out.exit(0), 則不會執行 finally地代碼.

 

八. 斷言

  .

 

九. 記憶體回收

  . 只能建議記憶體回收行程運行,但無法決定它在代碼的哪一部分執行.

  . 只有對象的執行個體才能成為記憶體回收對象, 未經處理資料類型不會.

 

十. 內部類

  . 僅僅在相應的外部類上的上下文中可見.

 

十一. Collection類/介面

  . Set   : 一個不可包含重複元素的集合類介面.

  . List   : 有序的, 可以有重複元素的集合類介面.

  . Map  : 介面, 實現它的類不能重複的key.

  . Vector : 可以將不同類的對象添加到一個Vector 裡面.

  . HashTables : 優越的地方在於快速的尋找.

  . BitSet : 儲存的是一個序列位元.

 

十二. 介面

  . 介面只允許使用 public final static 修飾

  . 介面沒有建構函式.

  .實現介面就要實現介面裡的所有方法.

 

-------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------

  .  類層級的變數總是會被賦予一個預設值, 而一個成員變數,將不會被賦予一個預設值.

  . 對象引用的預設值是 null.

  . instanceOf , 測試一個類的類型然後返回一個布爾值.

  . 將一個對象引用賦值給另一個對象的一般規則是: 你可以對繼承樹向上賦值,但不能向下複製.

  . 物件導向編程的三個特點: 封裝, 繼承, 多態.

  . == 比較的是兩個對象的地址,而不是值.

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.