JAVA基礎篇
1、簡述你所知道的JAVA修飾符及各自的使用機制?
public:允許所有客戶訪問
protected:只能在本包內被該類的子類所使用
private:只允許在本類內使用
abstract:沒有提供實作,需要子類提供
synchronized:方法獲得對物件監控的訪問權;如果該方法是static型別的,獲得是對類本身的訪問權,
final:你只能定義一個物體一次,以后不能改變它或繼承它,一個final修飾的類不能被子類化,一個final修飾的方法不能被重寫,一個final修飾的變數不能改變其初始值
super:構造器和方法,都用關鍵字super指向超類,但是用的方法不一樣,方法用這個關鍵字去執行被多載的超類中的方法,
2.?String、StringBuffer與StringBuilder之間區別?別簡述各自的執行效率?
區別:(百度)
執行速度:StringBuilder?>??StringBuffer??>??String
使用場景:
1.如果要操作少量的資料用?=?String?
2.單執行緒操作字串緩沖區下操作大量資料?=?StringBuilder?
3.多執行緒操作字串緩沖區下操作大量資料?=?StringBuffer
3、靜態變數和實體變數的區別?能在靜態方法中呼叫非靜態變數嗎?

這里也整理了一下其他的面試資料,需要的話可以點擊:點這個!點這個!暗號:csdn
4、繼承和介面是什么?以及他們的區別?
5、HashMap和Hashtable的區別??
1,Hashtable是基于陳舊的Dictionary類的,HashMap是Map介面的一個實作,?
2,Hashtable的方法是同步的,而HashMap的方法不是?
3,只有HashMap可以讓你將空值作為一個表的條目的key或value
6、抽象類(abstract?class)和介面(interface)有什么區別?
7、多載(Overload)和重寫(Override)的區別,Overloaded的方法是否可以改變回傳值的型別??
Overload是多載,是有相同的方法名,但引數型別或個數彼此不同??
Override是重寫,是在子類與父類中,子類中的方法的方法名,引數個數、型別都與父類中的完全一樣,在子類中覆寫掉了父類的改方法,
8、你所知道的集合類都有哪幾類?主要區別有哪些并簡單描述?
集合型別主要有3種:set(集)、list(串列)和map(映射)
集?Set?
它的物件不按特定方式排序,只是簡單的把物件加入集合中? 對集中成員的訪問和操作是通過集中物件的參考進行的,所以集中不能有重復物件,
串列?List?
List介面與其實作類是容量可變的串列,可以按照索引訪問集合中的元素,是有序的集合?串列在資料結構中分別表現為:陣列和向量、鏈表、堆疊、佇列,常用的有ArrayList?vector
映射?Map?
映射中每個項都是成對的,Map是把鍵物件和值物件進行關聯的容器,? 映射中存盤的每個物件都有一個相關的關鍵字(Key)物件,關鍵字決定了物件在映射中的存盤位置,關鍵字應該是唯一的,常用的有HashMap,HashTable
9、JAVA?SERVLET?API中forward()?與redirect()的區別?
10、寫出JSP的常用內置物件?以及每個內置物件的簡單介紹?
11、JAVA決議XML有哪幾種方法?并簡述各自的優缺點
12、概述MVC體系結構及優點?
M:模型(Model),V:視圖(View),C:控制Controller),?
MVC模式的目的就是實作Web系統的職能分工,?
Model層實作系統中的業務邏輯,?View層用于與用戶的互動,Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當的視圖以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執行的操作,
概括一下吧,用戶瀏覽,由URL路由決議地址,如何指定對應的控制器?去處理,結合業務邏輯層(M),處理資料,比方說增\刪\改\查,完成之后,在呼叫指定的視圖(V),把處理的結果回傳給用戶.?
意義就是:職能分工
13.?執行緒和行程的區別?實作多執行緒的方式有哪幾種?如何實作多執行緒同步?
區別:?
執行緒和行程是不同的,每個行程都是一個獨立運行的程式,擁有自己的變數,且不同行程間的變數不能共享;而執行緒是運行在行程內部的,每個正在運行的行程至少有一個執行緒,而且不同的執行緒之間可以在行程范圍內共享資料,也就是說行程有自己獨立的存盤空間,而執行緒是和它所屬的行程內的其他執行緒共享一個存盤空間,
實作多執行緒的方法:?
1、?繼承java.lang.Thread,并重寫它的run()方法,將執行緒的執行主體放入其中,
2、?實作java.lang.Runnable介面,實作它的run()方法,并將執行緒的執行主體放入其中,
如何實作執行緒同步:?
給一個方法增加synchronized修飾符之后就可以使它成為同步方法,這個方法可以是靜態方法和非靜態方法,但是不能是抽象類的抽象方法,也不能是介面中的介面方法
14:中的例外處理機制的簡單和應用,
當Java程式違反了Java的語意規則時,Java虛擬機就會將發生的錯誤表示為一個例外,違反語意規則包括2種情況,一種是Java類別庫內置的語意,例如陣列下標越界,會引發IndexOutOfBoundsException;訪問null的物件時會引發NullPointerException,另一種情況就是Java允許程式員擴展這種語意檢查,程式員可以創建自己的例外,并自由選擇在何時用throw關鍵字引發例外,所有的例外都是java.lang.Thowable的子類
15:執行緒同步的方法(類里有哪些方法來支持執行緒同步),
16.?Error與Exception有什么區別?
Error表示系統級的錯誤和程式不必處理的例外,?
Exception表示需要捕捉或者需要程式進行處理的例外,
17.談談final,?finally,?finalize的區別,
final—修飾符(關鍵字)如果一個類被宣告為final,意味著它不能再派生出新的子類,不能作為父類被繼承,因此一個類不能既被宣告為?abstract的,又被宣告為final的,將變數或方法宣告為final,可以保證它們在使用中不被改變,被宣告為final的變數必須在宣告時給定初值,而在以后的參考中只能讀取,不可修改,被宣告為final的方法也同樣只能使用,不能多載,
finally—例外處理時提供?finally?塊來執行任何清除操作,如果拋出一個例外,那么相匹配的?catch?子句就會執行,然后控制就會進入?finally?塊(如果有的話),
finalize—方法名,Java?技術允許使用?finalize()?方法在垃圾收集器將物件從記憶體中清除出去之前做必要的清理作業,這個方法是由垃圾收集器在確定這個物件沒有被參考時對這個物件呼叫的,它是在?Object類中定義的,因此所有的類都繼承了它,子類覆寫?finalize()?方法以整理系統資源或者執行其他清理作業,finalize()?方法是在垃圾收集器洗掉物件之前對這個物件呼叫的,
同時提供【免費】的Java架構學習資料,學習技術內容包含有:Spring,Dubbo,MyBatis, RPC, 原始碼分析,高并發、高性能、分布式,性能優化,微服務 高級架構開發等等,需要的朋友可以點擊:點這個!點這個!暗號:csdn,
還有Java核心知識點+全套架構師學習資料和視頻+一線大廠面試寶典+面試簡歷模板可以領取+阿里美團網易騰訊小米愛奇藝快手嗶哩嗶哩面試題+Spring原始碼合集+Java架構實戰電子書等,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/1392.html
標籤:其他
