考研JAVA複試題目整理

JAVA複試題目自整理

大家覺得有用點點贊啊可以升級升到3級我就可以自定義標籤了謝謝~

說複試題目過於牽強,只是自己整理的一些知識點而已,爲了便於理解和背誦,有些部分定義和說明儘量簡明扼要,如有錯誤請多多指教!(不可轉載)

1.面向對象的三個基本特徵

封裝:通常認爲封裝是把數據和方法隱藏起來,對數據和方法的訪問只能通過已定義的接口。面向對象的本質就是將現實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現細節的一種封裝;我們編寫一個類就是對數據和數據操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口
繼承:在現有類的基礎上擴展新的類的過程,子類可以共享原有類的屬性和方法,還可以添加新的特徵。可提高代碼的可重用性;
多態:不同的對象對同一信息會產生不同的結果;所謂消息是指對類的成員函數的調用,不同的行爲是指不同的實現,也就調用不同的函數。換言之,多態指的就是用同樣的接口訪問功能不同的函數,從而實現“一個接口,多種方法”。
抽象:抽象是將一類對象的共同特徵總結出來構造類的過程,包括數據抽象和行爲抽象兩方面。抽象只關注對象有哪些屬性和行爲,並不關注這些行爲的細節是什麼;

1.Java的內存劃分

Java內存劃分:棧,堆,代碼區,數據區
棧:主要存儲變量(局部變量或基本數據類型的變量),內容使用完畢立即清除(不會對內容賦初值)
堆:主要存儲對象,使用完畢後在某個時間進行回收(對存儲的內容進行賦初值)
代碼區:存放類和方法
數據區:常量池和靜態變量

2.面向對象與面向過程的比較

面向過程:面向過程就是分析出解決問題所需要的步驟,然後用函數將這些步驟一步步實現。
優點:簡單
缺點:代碼量大時維護性非常差
面向對象:面向對象是把問題分解成各個對象,每個對象忽略其內部實現細節只提供簡單的對外接口,在實現時調用即可。
優點:可擴展性強,維護成本低

3.Java中的數據類型

Java中數據類型:
1.基本數據類型;
6種數字類型 -> 4種整數類型: byte, short, int, long
-> 2種浮點類型: float, double
1種布爾類型: boolean
1種字符類型: char
2.引用數據類型(String 以及自己定義的所有類等等)

4.This關鍵字的作用(this是指向當前對象的指針)

1.當需要給類中的數據進行初始化時,可以通過this來進行賦值,而不用隨便定義一個變量來進行賦值,更有利於代碼的閱讀與理解
2.當成員變量與局部變量同名時,用來區分成員變量和局部變量;
3. 在構造函數中調用構造函數。 構造函數只能在對象創建的時候調用僅調用一次,但是利用this關鍵字可以在構造函數中調用構造函數,調用構造函數的語句一定要寫在第一行。

5.Super關鍵字的作用

1.Super可以獲取到父類中的內容
2.可以調用父類中的構造方法,必須寫在子類構造方法的第一行,如果父類的構造方法是無參的,可以不寫,如果父類沒有無參數的構造,必須要寫super。

6.包及包的作用

在開發過程中,會定義很多類,爲了避免相同類名而發生覆蓋的情況,把所有java程序保存在各自的目錄裏面,而該目錄就是包。包的本質實際上就是一個文件夾。
Action,dao,util
包的作用:
Java包用於對類和接口進行分類,以便更好地維護它們。
Java包提供訪問保護。
Java包消除命名衝突。

7.訪問權限

1.public 公共的,所有人都可訪問
2.Private 私有的,只能通過類中成員函數訪問,類外不允許訪問。
3.Protect 保護的,這種權限是爲繼承而設計的,保護所修飾的成員,對所有子類是可訪問的,但只對同包的類是可訪問的,對外包的非子類是不可以訪問。
4.Default 包訪問權限,在自己包內可以隨意訪問。

8.Getter和setter方法

成員變量一般是私有的,保護成員變量不被胡亂的賦值。
Getter用於從成員變量中獲取數據
Setter用於給成員變量賦值,做一定的保護。

9.方法的重寫

子類對父類中提供的方法進行重新定義,子類和父類中的方法的聲明完全一致,重寫又被稱爲方法的覆蓋。

10.Java中的多態

多態的前提條件有三個:
子類繼承父類
子類覆蓋父類的方法
父類引用指向子類對象
new誰就調用誰的方法,引用是誰,就用誰的成員和靜態。
多態性:父類引用子類對象時,調用子類中重寫後的方法,Java 在運行時能根據對象的不同產生不同的結果。

11.向上轉型與向下轉型

向上轉型:把子類的對象賦值給父類的變量。(屏蔽掉子類中特有的方法)
向下轉型:把父類的變量轉換回子類的變量。(向下轉型可能有風險,java要求必須要寫強制類型轉換)

12.final關鍵字及其作用

1.被final修飾的變量不可以被改變,又被稱爲常量(修飾字符時,自負的地址不能改變)
2.被final修飾的方法不可以被重寫
3.被final修飾的類不可以被繼承
總結就是不可變

13.Java中的抽象類和抽象方法

抽象方法:使用abstract來修飾,不能有方法體,直接用分號結束即可。(只聲明不實現)
抽象類:如果一個類中有抽象方法,這個類必須是一個抽象類。
特點:
抽象類不可以創建對象
抽象類的子類,必須重寫父類中的抽象方法,否則子類也是抽象類。抽象類中可以有正常的方法。

14.什麼是接口?作用?

使用interface來聲明,接口實際上是一種特殊的抽象類,接口中的方法都是抽象方法,接口中的所有變量都是全局靜態常量。
Java類只能單繼承,通過接口可以多實現(implement)。
接口的作用:(優點)
1.可以實現多態性
2.可以把很多不相關的內容進行整合
3.有利於代碼的規範和維護
4.能夠保證代碼的安全和嚴密

15.什麼是object類,作用是啥?

萬事萬物皆爲對象,在Java中所有的類都要繼承object,是所有類的根,我們寫的類即使不寫繼承關係,也都默認會繼承object。

16.“==”與equals比較

“= =”:默認判斷的是兩個對象的內存地址是否一致,常用於基本數據類型的判斷。(字符串,對於==而言,則比較的是所指向的對象的地址(即是否是同一個對象)
Equals:如果沒有對equals方法進行重寫,則比較兩者是否指向同一個對象;不能用作基本數據類型的比較;
可以對equals進行重寫,比如String類對equals方法進行了重寫,用來比較指向的字符串內容是否相等。

17.參數傳遞

值傳遞:把變量的值作爲參數進行傳遞
引用傳遞:直接把變量作爲參數進行傳遞

18.異常

異常分爲:
編譯時異常:在程序編譯時就能發現異常。
運行時異常:編譯能夠通過,在程序運行時發現異常。
JVM:java虛擬機

19.異常的分類

1.runtimexception:運行時異常,一般不手動處理,出問題了再處理
2.其他exception:必須要經過手動處理
3.Error:一般指的是系統級錯誤

20.異常的處理

1.try…catch(try中寫嘗試執行的代碼。Catch中寫處理異常的代碼)
2.throws:表示方法準備要扔出來一個異常
3.throw:表示向外拋出異常

21.自定義異常

直接繼承Exception或runtimeException來實現自定義異常。

22.包裝類:

Java是一個面向對象的語言,但是Java中的基本數據類型卻是不面向對象的,這在實際使用時存在很多的不便,爲了解決這個不足,在設計類時爲每個基本數據類型設計了一個對應的類進行代表,這樣八個和基本數據類型對應的類統稱爲包裝類。

23.深拷貝和淺拷貝:

淺拷貝只是對指針的拷貝,拷貝後兩個指針指向同一個內存空間,深拷貝不僅對指針進行拷貝,而且對指針指向的內容進行拷貝,經深拷貝後的指針是指向兩個不同地址的指針。

24.類與結構體有什麼區別?

答:(1)結構體存儲在棧中,類的實例化可以存儲在棧中,也可以存儲在堆中;(2)結構體的執行效 率比類要高;(3)結構體沒有析構函數,類有析構函數;(4)結構體不可以繼承,類可以繼承。

整理不易,請多點點關注和收藏謝謝啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章