更新時間:2022-12-20 14:53:59 來源:動力節點 瀏覽1225次
小編發現網上有不少的Java相關面試題,但問題也同樣存在,第一就是面試題不全、第二就是沒有答案、第三有答案但未必會有解答思路等等,所以今天小編就根據以上問題,總結出了比較詳細的Java初級工程師面試題:
1.你對SpringMVC的了解
答:采用三層框架,降低代碼之間的耦合,提高代碼質量。SpringMVC的重要核心組件有:前端控制器(dispatcherServlet), 處理器映射(handlerMapping), 處理器適配器(HandlerAdapter), 視圖解析器(ViewResolver)
工作流程
1.客戶端發送請求到前端控制器(中央處理器),前端控制器判斷請求是否符合格式,
如果符合格式到請求到達處理映射器,處理器映射器查找對應的處理器,將查找到的結果(處理器路徑)返回給前端控制器,前端控制器到處理器適配器,處理器適配器進行處理業務,將業務執行的結果返回給前端控制器,前端控制器到視圖解析器,進行視圖解析,視圖解析后返回一個view(數據)到前端控制器,前端控制器到視圖渲染,將渲染后的結果返回給客戶端
2.面向對象的特征有哪些
封裝、繼承、多態、重載、重寫
(1)繼承:就是保留父類的屬性,開擴新的東西。通過子類可以實現繼承,子類繼承父類的所有狀態和行為,同時添加自身的狀態和行為。
(2)封裝:就是類的私有化。將代碼及處理數據綁定在一起的一種編程機制,該機制保證程序和數據不受外部干擾。
(3)多態:是允許將父對象設置成為和一個和多個它的子對象相等的技術。包括重載和重寫。重載為編譯時多態,重寫是運行時多態。
(4)重載:在同一個類中,方法名一樣。參數列表、方法體、返回值類型、訪問修飾符可以不一樣
(5)重寫:存在于子父類關系中,子類重寫父類方法,方法名一樣訪問權限修飾符大于等于父類,拋出異常范圍小于等于父類,參數列表一樣,方法體不一樣
3.抽象類和接口的區別
(1)抽象類中有抽象方法有構造方法,構造方法不能直接創建對象,可以有靜態代碼塊和靜態方法;子類繼承抽象類必須重寫所有抽象方法,否則把自己變成抽象類
(2)接口中只能有抽象方法,jdk1.8之后允許有普通方法,不能含有靜態代碼塊以及靜態方法
一個類只能繼承一個抽象類,而一個類卻可以實現多個接口
4.在java里面有反射,反射的用途
反射:動態地發現和綁定類、方法、字段,以及所有其他的由于有所產生的的元素。通過反射,能夠在需要時完成創建實例、調用方法和訪問字段的工作。
在程序運行中通過類名,可以調用這個類中的所有方法以及屬性
優點: 可以在程序運行的過程中,操作這些對象。
可以解耦,提高程序的可擴展性。
缺點:因為是JVM操作,所以對于性能來說會有所下降。
容易對程序源碼造成一定的混亂。
用途:
1.在運行時判斷任意一個對象所屬的類
2.在運行時構造任意一個類的對象
3.在運行時判斷任意一個類所具有的成員變量和方法
3.在運行時調用任意一個對象的方法,通過反射甚至可以調用到private修飾的方法
4.生成動態代理
5.實現線程的方法
1.繼承Thread類,重寫run方法
2.實現Runnable接口,重寫run方法,實現Runnable接口的實現類的實例對象作為Thread構造函數的target
3.通過Callable和FutureTask創建線程
4.通過線程池創建線程
線程的物種狀態:創建、就緒、運行、阻塞、死亡
6.get和post的區別
(1)get:地址欄傳輸數據,攜帶數據數量小,地址欄可見,速度快,不安全
(2)post:Tcp包傳輸數據,攜帶數據量大,地址欄不可見,速度相對慢,安全
7.SpringBoot相對于SpringMVC優勢
(1)SpringBoot減少了大量的配置文件,約定優于配置 ,可以極大地簡化了 spring 的配置流程,Spring Boot實現了自動配置,降低了項目搭建的復雜度。
(2)Spring 是一個“引擎”;
Spring MVC 是基于Spring的一個 MVC 框架 ;
Spring Boot 是基于Spring4的條件注冊的一套快速開發整合包。
8.在java里面常用的集合類都有哪些
(1)單集合:set不能重復(HashSet,LinkedHashSet,TreeSet)
List有序、可重復(ArrayList,LinkedList)
(2)雙列集合:Map(HashMap,TreeMap)
1、List(有序、可重復)
List里存放的對象是有序的,同時也是可以重復的,List關注的是索引,擁有一系列和索引相關的方法,查詢速度快。因為往list集合里插入或刪除數據時,會伴隨著后面數據的移動,所以插入刪除數據速度慢。
ArrayList:基于數組實現,查找、更新效率高,自動擴容1.5倍,初始容量10
LinkedList:基于雙向鏈表實現,刪除插入效率高,鏈表是由節點組成的節點中分兩部分一部分存儲節點元素,另一部分存儲指針,指向下一個節點,刪除一個元素,只要改變他前一個節點的指針指向就可以了
2、Set(不能重復)
Set里存放的對象是無序,不能重復的,集合中的對象不按特定的方式排序,只是簡單地把對象加入集合中。
HashSet,基于Hash表去重,重寫equals和hashcode
LinkedHashSet,通過比較器,實現Comparable重寫comporTo()方法,底層是紅黑樹
3、Map(鍵值對、鍵唯一、值不唯一)
Map集合中存儲的是鍵值對,鍵不能重復,值可以重復。根據鍵得到值,對map集合遍歷時先得到鍵的set集合,對set集合進行遍歷,得到相應的值。
HashMap,初始大小11,加載因子0.75,擴容2倍+1
TreeMap,有序(自然升序)基于紅黑樹葉
集合的優點
(1)使用核心集合類降低開發成本,而非實現我們自己的集合類。
(2)隨著使用經過嚴格測試的集合框架類,代碼質量會得到提高。
(3)通過使用JDK附帶的集合類,可以降低代碼維護成本。
(4)復用性和可操作性。
以上就是“Java初級工程師面試題常見問題集錦”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習