- NullPointerException:空指針異常 原因:數組已經不再指向堆內存了。而你還用數組名去訪問元素。
- 對于查找問題,如果找到就返回其索引值,如果找不到就要返回一個負數(一般是負一)這是必須的,否則如果找不到,就沒有返回值,這樣程序就會報錯。
- 二維數組的元素是一個一維數組(這樣好理解二維數組);一維數組是引用類型,默認值是null.
- 二維數組的格式 數據類型【】【】變量名=new 數據類型【m】[n];m表示這個二維數組有多少個一維數組,n表示每一個一維數組的元素個數。
- 二維數組的其他格式:數據類型 變量名【】【】=new數據類型【m】【n】,數據類型【】變量名【】=new數據類型【m】[n];(這兩種不推薦使用);
- 輸出數組名是一個地址值;
- 數據類型【】【】變量名=new 數據類型【m】[],這種定義只給出二維數組中包含了m個一維數組,但是并沒有給出一維數組元素的個數,這時我們給以動態給出,并且每一個一維數組的個數可以不同(就是列可以不同);
- 一維數組沒有分配空間是null(因為一維數組是引用類型)分配之后才是對應類型的默認值。
- 二維數組的第一個值是必須要給的,否則無法分配內存, 因為就不知道要多少空間,第二個值可以給也可以不給。
- 二維數組的靜態定義:數據類型【】【】變量名=new數據類型【】【】{{元素1}{元素2}……..};簡化版:數據類型【】【】變量名={{元素1}{元素2}……};
- 二維數組的遍歷:外循環的是二維數組的長度,其實就是一維數組的個數。內循環控制的是一維數組的長度。
- 方法存在內存的方法區(有方法標記識別,否則被別的程序調走)。
- Java中的參數傳遞問題:基本數據類型:形式參數的改變對實際參數沒有影響。引用類型:形式參數的改變直接影響實際參數(因為二者指向的地址一樣)
- 因為static變量也就是靜態變量,在程序運行過程中被聲明后就會一直保存在內存里,所以只能聲明一次,第二次再訪問那個函數時,給靜態變量聲明同時賦值的語句就不再執行了,而靜態變量的值始終保存在內存里,也就是上次改變以后的值。(知道程序結束)沒有static修飾的函數中的變量,只在函數被執行時占用內存,函數執行完畢后就被銷毀,數據也就不存在了,所以每次都要聲明,值也就不會變。
- 面向對象將我們從執行者變成指揮著(爽吧);
- 面向對象:首先想到這個問題有多少類。然后類中有什么東西,最后看類與類之間的關系。類的獲取一般是名詞。(uml語言有所介紹);
- 面向對象的三大特征(封裝,繼承,多態);
- 多態的定義:指允許不同類的對象對同一消息做出響應。即同一消息可以根據發送對象的不同而采用多種不同的行為方式。(發送消息就是函數調用)
- Java中最基本的單位是類。類是一組相關屬性和行為的集合,對象是該類事物的具體表現。
- 成員變量和局部變量的區別:A;成員變量(在類中方法外),局部變量(在方法定義中或者方法聲明上)B:成員變量:在堆內存,局部變量:在棧內存。成員變量:隨著對象的創建而存在,隨著對象的消失而消失。局部變量:隨著方法的調用而存在,隨著方法的調用完畢而消失;成員變量:有默認初始化值,局部變量:沒有默認初始化值,必須定義,賦值,然后才能使用。
- 局部變量名稱和成員變量名稱可以一樣,在方法中使用的時候,采用的就近原則。
- 如果你看到一個方法的形式參數是一個類(引用類型)這里其實需要的是該類的對象。
- 匿名對象:沒有名字的對象。(new s()? 就是一個匿名對象);
- 匿名對象的應用場景:A;調用方法,僅僅只調用一次的時候,多次調用不適合(因為多次開辟堆內存)好處:匿名對象調用完畢后就是垃圾,可以被垃圾回收器回收。B;匿名對象可以作為實際參數傳遞。
- Private:私有的。可以修飾成員變量和成員方法。被private修飾的成員只能在本類中使用。
- 封裝:是指隱藏對象的屬性和實現細節,僅對外提供公共的訪問方式。(提高代碼復用性和安全性)
- This:是當前類的對象引用。簡單的記,它就代表當前類的一個對象。方法被那個對象調用,this就代表哪個對象。
- 構造函數;給對象的數據進行初始化。方法名和類名一樣,沒有返回值類型,連void都沒有,沒有具體的返回值,故也沒有return.,它可以重載。
- 給成員變量賦值的兩種方式:setXxx(),? 構造方法。
- Student s=new Student();做了哪些事情: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
- 變量的范圍是越小越好,因為這樣可以及時的回收。
- 導入的包必須出現在所有的類前面。
- 針對多個對象有共同的成員變量值的時候就可以用static關鍵字(比如國籍);
- Static的特點:(他可以修飾成員變量和修飾成員方法)a:隨著類的加載而加載(回想main方法)B:優先于對象存在c;被類的所有對象共享(如果某個成員變量是被所有對象共享的,那么它就應該是靜態的)D;可以通過類名調用(其實它本身也可以通過對象名調用,推薦使用類名調用)靜態修飾的內容一般我們稱其為:與類相關的。類成員。
- Static關鍵字注意事項:A;在靜態方法中是沒有this關鍵字的(因為靜態是隨著類的加載而加載,this是隨著對象的創建而存在,靜態比對象先存在,即前面不能調用后面)b:靜態方法只能訪問靜態的成員變量和靜態的成員方法。,而非靜態方法既可以訪問靜態成員變量和靜態成員方法,也可以訪問非靜態的成員和方法。(靜態只能訪問靜態,非靜態可以訪問一切)
- 思考題:構造方法中可不可以有return語句呢?
- 可以。而是我們寫成這個樣子就OK了:return; 其實,在任何???? 的void類型的方法的最后你都可以寫上:return;
- 構造方法的注意事項A:如果我們沒寫構造方法,系統將提供一個默認的無參構造方法B:如果我們給出了構造方法,系統將不再提供默認構造方法,這個時候如果我們想用無參構造方法就必須自己寫出。(推薦永遠自己寫出);
- 工具類中是可以使用靜態的。將構造方法私有化,外界就不能創建對象了。
- 如何制作一個說明書:A;寫一個工具類B;對這個類加入文檔注釋/**??? */C:用工具解析文檔注釋(javadoc工具)d:格式javadoc –d 目錄 –author –version 工具類名稱.java. ?-------->待續
轉載于:https://www.cnblogs.com/yc74/p/5352550.html