月薪20k的java面試題他來了

1.場景描述

最近有朋友私信,說網上的面試資料有點散,還有些過期的,問老王可否幫忙整理下,老王晚上恰好有空,就給梳理了下,分享給你們。java

2.解決方案

2.1 說明

(1)面試的題目多數是從網上找的,老王過濾梳理了下,把一些不經常使用的或者知道就行的過濾掉了,又加了一些老王本身的,你們面試前背背,更加容易經過「月薪20k」的工做吧。面試

(2)有關springboot和springcloud的問題就很少說,老王有這兩個系列的博客,能夠看下,免費的,就挑了兩三個題目,有問題也請關注老王的公衆號,直接溝通。spring

(3)面試題僅僅是基礎,其實大廠或者有點要求的公司,通常都是直接聊,主要問實際項目經驗,面試題做爲輔助,通常不會讓直接作題,假若有,能夠考慮接下來是否有面試的必要。數組

2.2 開始正題

一、maven、springboot、springcloud之間的關係安全

(1) maven是springboot的基礎,springboot項目自己就是maven項目。在maven項目中使用springboot的多個starter加幾個約定,就能成爲springboot項目了。springboot

(2)springboot是springcloud的基礎,springcloud自己是springboot項目。服務器

(3)關係:maven->springboot->springcloud微信

maven是springboot的基礎,springboot是springcloud的基礎,maven不依賴於springboot,springboot不依賴與springcloud。多線程

二、 nacos與eureka區別架構

(1)springcloud eureka是註冊中心,負責微服務的註冊與發現,起到承上啓下的做用,在微服務架構中至關於人體的 大腦,很重要,nacos是阿里巴巴出的,功能相似eureka,區別再也不囉嗦了。

(2)nacos的部署方式與springcloud eureka不太同樣,euraka是須要建立springboot項目,而後將euraka服務端經過gav的方式加載進來,而後部署項目。

(3)nacos是直接從阿里巴巴nacos的官網下載jar包,啓動服務。

三、描述一下JVM加載class文件的原理機制?

答:JVM中類的裝載是由類加載器(ClassLoader)和它的子類來實現的,Java中的類加載器是一個重要的Java運行時系統組件,它負責在運行時查找和裝入類文件中的類。類的加載是指把類的.class文件中的數據讀入到內存中,一般是建立一個字節數組讀入.class文件

四、java 中操做字符串都有哪些類?它們之間有什麼區別?

操做字符串的類有:String、StringBuffer、StringBuilder。

String 和 StringBuffer、StringBuilder 的區別在於 String 聲明的是不可變的對象,每次操做都會生成新的 String 對象,而後將指針指向新的 String 對象,而 StringBuffer、StringBuilder 能夠在原有對象的基礎上進行操做,因此在常常改變字符串內容的狀況下最好不要使用 String。

StringBuffer 和 StringBuilder 最大的區別在於,StringBuffer 是線程安全的,而 StringBuilder 是非線程安全的,但 StringBuilder 的性能卻高於 StringBuffer,因此在單線程環境下推薦使用 StringBuilder,多線程環境下推薦使用 StringBuffer。

5. BIO、NIO、AIO 有什麼區別?

  • BIO:Block IO 同步阻塞式 IO,就是咱們日常使用的傳統 IO,它的特色是模式簡單使用方便,併發處理能力低。
  • NIO:New IO 同步非阻塞 IO,是傳統 IO 的升級,客戶端和服務器端經過 Channel(通道)通信,實現了多路複用。
  • AIO:Asynchronous IO 是 NIO 的升級,也叫 NIO2,實現了異步非堵塞 IO ,異步 IO 的操做基於事件和回調機制。

6. 解釋一下什麼是 ioc?

​ IOC是Inversion of Control的縮寫,多數書籍翻譯成「控制反轉」,其實叫「依賴注入」更加合適。

​ 軟件系統在沒有引入IOC容器以前,對象A依賴於對象B,那麼對象A在初始化或者運行到某一點的時候,本身必須主動去建立對象B或者使用已經建立的對象B。不管是建立仍是使用對象B,控制權都在本身手上。

​ 軟件系統在引入IOC容器以後,這種情形就徹底改變了,因爲IOC容器的加入,對象A與對象B之間失去了直接聯繫,因此,當對象A運行到須要對象B的時候,IOC容器會主動建立一個對象B注入到對象A須要的地方。

​ 經過先後的對比,咱們不難看出來:對象A得到依賴對象B的過程,由主動行爲變爲了被動行爲,控制權顛倒過來了,這就是「控制反轉」這個名稱的由來。

說明:

有點多,小100個面試題,建議面試的話,能夠背背,這樣內心有點底,老王直接放網盤上了。

連接:https://pan.baidu.com/s/1bvzJYPQGnC28WfO_dmzJAg 
提取碼:rm55

歡迎關注原創微信公衆號「軟件老王」,分享一些軟件技術、軟件行業和好玩的事,裏面還有免費分享的java書籍、百萬張高清可商用圖片等。

月薪20k的java面試題他來了

相關文章
相關標籤/搜索