小姐姐說:你一點都不懂表達,一點都不懂愛情,一點也不愛我!
你答:你知道嗎,我聽說過一個這樣的故事,講的就是有一個小女孩和一個男孩在一起,小男孩呢很不幸是位聾啞人,雖然如此,但是他們的日子過得特別的美滿。有一天小女孩因為切菜不小心把手給弄破了(ps:這種層度不用打破傷風哈😘),小男孩翻遍家里沒有創口貼,於是沖出家門來到街邊的小店買創口貼,由於小男孩不會說話,一直盡力描述,無奈店主不知其意,這是小男孩看見店主桌上的剪刀,直接拿起往手上戳,鮮紅的血冒出(ps:這種層度也不用打破傷風哈😘),小男孩高興的拿着創口貼往家里飛奔...
愛情有時候,並不需要花言巧語,我不善言辭,但一直愛你!!
看完那我們開始咯😍
1 自我介紹哈(這塊沒有一點准備的可以看面試java后端面經_1)
2 類加載的三種方式(1:命令行啟動應用時由JVM初始化加載 2:通過Class.forName() 方式動態加載 3:通過ClassLoder.loadClass() 方法動態加載)
3 如何判斷對象已死(1:引用計數法(java中沒用,因為,沒辦法解決循環引用:A引用B,B也引用A,但是沒有其他引用去引用A和B,這時AB都是垃圾,但是引用計數法無法判斷)。2:可達性分析算法:通過GC Roots為起始點向下搜索,說白了就是通過你已知的活對象,去找這對象里的引用,再找引用對象里的引用,一直這樣下去,找的到的就是活的。那么哪些對象可以作為GC Roots呢:1虛擬機棧中引用的對象。2方法區靜態屬性引用的對象。3方法區中常量引用的對象。4本地方法棧中JNI(一般說的是Native方法)引用的對象)
4 常見的垃圾回收算法(1標記清除:通過可達性分析算法標記好活對象,然后清除掉沒標記得對象,有個缺點:空間很零碎所以有了
標記
整理算法。2復制算法:同樣是可達性分析后,活對象呢就直接復制到一片新內存中,之前的內存中所有對象直接清除,優點是沒有零碎空間產生,但是消耗了很大內存。3標記整理算法:先標記清除再整理。4分代算法:這里分代是將堆里的對象進行分代,比如螞蟻爺爺屬於老年代,剛出生的螞蟻孩子屬於新生代等,分完代后呢 其實沒有自己的算法,用的都是前面說的算法,但是分代特點是:不同的代,用合適自己的算法 比如:新生代很多對象都是很快消亡所以用復制算法,老年代里的對象都是存活率高的用:標記清除或標記整理)
5 JVM常見的命令工具包括(
jps用於查詢正在運行的JVM進程。 jstat可以實現顯示本地或遠程JVM進程中類加載、內存、垃圾回收、JIT編譯等數據。 jinfo用於查詢當前運行着的JVM屬性和參數的值。
jmap用於顯示當前堆永久代的詳細信息。
jhat 用於分析使用jmap生成的dump文件,是JDK自帶的。
jstack用於生成當前線程的所有快照,用於定位線程長時間出現停頓的原因)
6 重寫equals方法要遵循哪些通用的約定(
自反性:x.equals(x)要成立。
對稱性:x.equals(y) 和y.equals(x)要成立。
傳遞性:x、y、z x.equals(y) 和y.equals(z)成立 那x.equals(z)要成立。
一致性:說白點就是只要進行equals的對象不變,那么結果就一直不能變。
非空性:對於任意非空引用x,x.equals(null)應該返回false)
7
關鍵字transient(簡單地說,就是讓某些被修飾的成員屬性變量不被序列化。transient不能修飾類和方法,被transient關鍵字修飾的變量不能被序列化,一個靜態變量不管是否被transient修飾均不能被序列化。)
8 redis的持久化方式中 RDB方式優缺點(RDB:是指用數據集快照的方式記錄redis數據庫的所有鍵值對
優點:1.只有一個文件 dump.rdb 方便持久化。2.容災性好,一個文件可以保存到安全磁盤。3.性能最化,fork子進程來完成寫操作,讓主進程繼續處理命令。4.相對於數據集大時,比AOF啟動效率高。
缺點:數據安全性較低)
9 redis的持久化方式中AOF方式優缺點(AOF:是指所有的命令行記錄以redis,命令請求協議的格式保存為aof文件
優點:數據安全,通過append模式寫文件,即使中途服務器宕機可以通過redis-check-aof工具解決數據一致性問題。3AOF機制的rewrite模式。
缺點:1文件比RDB形式文件大。2數據集大比RDB啟動效率低)
10 講解一下HTTP請求里的Header有什么作用(accept:瀏覽器端可以接受的媒體類型。Accept-Encoding: 瀏覽器申明自己接收的編碼方法。Accept-Language:瀏覽器申明自己接收的語言。Connection:連接狀態,close 的話就要新開連接。Host:請求報頭域主要用於指定被請求資源的Internet主機和端口號。User-Agent:告訴HTTP服務器, 客戶端使用的操作系統和瀏覽器的名稱和版本。)
11 linux中grep的使用(用於過濾/搜索的特定字符、如:grep "qqq\|aaa" abc.txt 是把qqq和aaa從abc.txt中篩選出來,grep "q" abc.txt 把小q篩選出來 ,如grep -i "q" abc.txt這樣就不區分大小寫了 ,還有很多參數以及正則表達式,不太明白的童鞋百度哦)
祝早日get心儀offer
大量面試經驗以及學習資料書籍請關注:AVAJ
回復"offer"進行獲取
365篇大廠java面經 你想要的我這里都有