天天看點

Java零散知識點

1,一個源檔案隻能有一個public class定義,類名和檔案名必須相同。 一個源檔案 可以有多個類,但隻能有一個 public 的類,并且 public 的類名必須與檔案名相一緻。 2.包名:xxxyyyzzz 類名:XxxYyyZzz 變量和函數名:xxxYyyZzz 常量名:XXX_YYY_ZZZ 3.注釋:單行 // 多行 作用:1),注解說明程式 2),調試程式 4,C語言中,一個中文字元的大小 = 2個英文字元的大小 Java中,一個中文字元的大小 = 1個英文字元的大小 char 占一個位元組,隻能存一個字元。 5,i++ 先參與運算,再自增 ++i先自增,再參與運算 6,switch隻能接收 byte,short,int,char和枚舉類型的參數(表達式)。 7,匿名對象 new Dog().eat(); 8,構造函數:1),名字與類名相同 2), 無傳回值類型 3),可重載,不能複寫。 9,this 可調用本類構造方法,第一行。this();//本類無參的構造方法 可調用本類成員變量和方法 this.name = name;//區分成員變量和參數; this.eat(); 10.super可調用父類的構造方法,第一行。super();//父類無參的構造方法 super可調用父類的成員方法 在子類的構造方法中必須調用父類的構造方法。

11,static 靜态,靜态成員變量和方法可直接用類名調用,也可用對象調用。 靜态代碼塊,類裝載時執行,無需調用。 靜态變量有預設初始值,非靜态變量必須手動指派。 靜态方法中隻能通路靜态成員。 static隻能修飾成員,不能修飾局部。 特點:随類的加載而加載,消失而消失,生命周期最長。 優先于對象存在 被所有對象共享,隻有一份記憶體 什麼時候用靜态: 當對象出現共享資料時 當功能内部沒有通路到非靜态資料。 比如一些 工具類 API方法靜态為了直接使用類名調用方法,無需生成對象。

12,單繼承 一個子類隻允許繼承一個父類,一個父類可以有多個子類。 13. 對象轉型 1) 向上轉型 将子類的對象指派給父類引用。 Student s = new Student(); Person p = s; 或者 Person p = new Student(); 一個引用能夠調用那些成員變量和方法,取決于這個引用的類型。 一個引用掉用的是哪個方法(子類和父類共有的方法),取決于這個引用所指的對象。

2)向下轉型 先向上轉型再向下轉型。 Student s1= new Student(); Person p = s1; Student s2 = (Student)p; 13,抽象類 —— 用來被繼承的基類,強迫子類進行複寫方法,功能不明确時使用。 abstract class A{ abstract void fun();//抽象方法,隻有方法定義,沒有方法體 } 有抽象方法的類必須是抽象類。 抽象類不能生成對象,但可以有構造方法(super),子類繼承必須複寫所有抽象方法。 14,接口 1)使用interface 定義 2) 接口中的方法都是抽象方法,(不用寫abstract) 3)接口中都是public權限(不寫預設) 4)實作一個接口用implements 5) 一個類可以 實作 多個接口,一個接口可以 繼承 多個接口。 6)作用:降低耦合性,提高功能擴充,暴露規則。

14, 異常

1) .Throwable ——Exception,Error Exception —— RuntimeException(uncheck exception),check Exception 2). try{異常代碼} catch(Exception e){ e.printStackTrace(); } finally{一定會執行的代碼,釋放資源之類的} 3) throw ——抛出異常,使用在函數中,後跟異常對象 RuntimeException e = new RuntimeException(" "); throw e; throws——生命異常,使用在函數聲明上,後跟異常類。 public void fun()throws Exception{} 15,内部類——内部類必須是繼承一個類或者實作一個接口 内部類可以直接通路外部類的成員,包括私有。 内部類不可以通路它所在的局部中的變量,隻能通路被final修飾的局部變量。

16,面向對象 封裝,繼承,多态。 面向過程(主要考慮算法設計) 面向對象(主要考慮資料結構) 類是對現實生活中事物的描述,對象是這類事物的描述。 封裝:是指隐藏對象的屬性和實作細節,僅對外提供公共的通路方式。 方法是最小的封裝體。

17,記憶體劃分:棧記憶體,堆記憶體,方法區,本地方法區,寄存器。

18,主函數——main 1),public 代表着該函數通路權限最大 2),static 靜态,随着類加載就加載,生命周期最長。 3),void 沒有具體的傳回值 4) main 不是關鍵字,特殊單詞,被jvm識别。 5)(Stirng [] args)函數的參數,字元串類型的數組, argumengts ——參數 jvm在調用主函數時,傳入的是 new String[0]; 19.數組——長度固定 靜态初始化: int [] arr = new int []{1,4,5,6,9.0}; int [] arr = {1,4,5,6,9,0}; 動态初始化: int [] arr = new int [5]; 預設值為 int,short ,byte ,long ——0 double ,float —— 0.0 char —— a boolean —— false String ,Object,Integer,Double,Boolean... —— null

20,成員變量,對象等存于堆記憶體, 成員——類中 , 局部——方法中,參數中 局部變量 ,引用存在于占記憶體

21,長度大小:數組 是length屬性 arr.length String 中是length();方法, s1.length(); 集合中是size();方法 list.size();

22, e.toString()擷取的資訊包括異常類型和異常詳細消息, 而e.getMessage()隻是擷取了異常的詳細消息字元串。