SSM是指Spring、Spring MVC和MyBatis三個框架的組合。它們分別負責不同的功能,一起構建一個完整的Java Web應用。
Spring:負責依賴注入(DI)和控制反轉(IoC),實現各個組件之間的松耦合。
Spring MVC:負責處理用戶請求,實現Model-View-Controller(MVC)模式的Web應用開發。
MyBatis:負責數據持久層的操作,實現對象關系映射(ORM),簡化數據庫操作。
通過SSM框架組合,可以快速地構建一個可擴展、高性能、易維護的Java Web應用。
中國聯通java工程師面試題
請簡要介紹一下你的Java項目經驗。
應聘者:在校期間,我參與了一個基于SSM框架的倉庫管理系統項目,負責后端開發。
面試官:談談你對Java多態的理解。
應聘者:Java多態指的是不同對象對同一方法的不同實現,它包括編譯時多態和運行時多態。多態實現了代碼的可擴展性和復用性。
面試強度比較大,題目比較簡單。和互聯網差不多。因為應屆的身份,多為八股。
這是我最開始面的一個,經驗不足,敬請諒解(現在已經倒背如流了)
中國聯通java軟件開發工程師面試題
說一下什么是反射?
沒說出來,忘了
Java中的數據結構
給他說了一下集合里的 單列集合 List :Arraylist LinkList Vector Stack Set : Hashset Treest 雙列集合Map:Hashtable Hashmap TreeMap
arraylist 是動態擴容的嗎
是的,而且當前元素個數達到容量極限的時候會擴容至原來的 1.5 倍
hashmap 可以 put null進去嗎
可以 ,但是put進去的null值是被視為不相等的(面完發現記錯了,mysql里是不相等的,Java里是相等的)。現在意識到他想讓我說二義性。
hashMap是線程安全嗎
不是 安全的話要用concurrenthashmap
線程的生命周期
詳細說了那四個階段(新建-可運行-阻塞、等待、限時等待-死亡)
如何預防死鎖
說了一下形成死鎖的必要條件,然后解決:破壞不可搶占條件 破壞循環等待條件
Mysql中的鎖介紹一下
說了latch: mutex rwlock lock:共享鎖排他鎖意向鎖 record lock gaplock nextkeylock
隔離級別
說了四個隔離級別
springboot有哪些依賴注入方式?
我不會(只知道概念)
bean的生命周期
創建、使用、銷毀,細分 實例化、初始化、注冊Destruction回調、Bean的正常使用以及Bean的銷毀
bean的循環依賴如何解決
三級緩存 解釋了下
springboot可以熱更新嗎?有哪幾種熱更新的方式?
不會
Autowired和Resource的關系
byType byName順序,作用域,支持方。說了下具體的
redis數據結構
緩存雪崩 穿透 ?沒答的很好。剛開始說成擊穿了,然后假裝思考了一下說了穿透的定義,解決方法(加校驗、存keynull、布隆過濾器,每個都展開說)。雪崩沒讓說就下一個了。
redis為什么是單線程?
忘記了,但是提到了它性能不吃CPU。
說說分布式鎖
忘了,沒記。
kafka的數據保存策略?
沒見過,不知道咋說?只說了消息存儲的五個 零拷貝、磁盤順序寫入、頁緩存、系數索引、分區和副本。不知道對不對
gRPC優點?
只說了優點,說他很快,為什么快?gRPC 基于 HTTP/2,相比于 HTTP/1.x,HTTP/2 支持頭部壓縮、多路復用等特性,可以更有效地利用網絡資源,減少延遲。
他問底層會嗎?
不會,說只用了幾個成熟的RPCs。
JVM調優有哪些方式?
不會。我說根據我見過的項目,JVM都是設定好的,完全沒有給人調優的機會和空間,所以沒有了解。
講一下GC?
講了回收原理,算法,如何識別垃圾-強軟弱虛。
GC沒有實際應用過還是單純處于理論層面?
我說了我只改了堆內存大小,因為我做了一些調查了解到的只需要這么改。裝了個b,說前兩天看的得物和阿里的新技術優化了zookeepper的ZAB(我就看了個皮毛),說我看他們優化了ZAB算法,在GC上最后也只是設置了xms和xmx。
如何保持數據一致性?
回答了雙寫一致性,延遲雙刪和canal+rabbitMQ,只讓說了延遲雙刪,沒讓說canal+rabbitMQ。說了操作方式,為啥刪第一次,為啥刪第二次,為啥不能只刪一次。
Spring Cloud會嗎?不會
反問環節,問分布式場景多嗎,都哪些
答用的都是最新技術,springcloud之類的,沒正面回答
卡殼了,感覺打的不是很好,沒好意思問二面要準備啥,就尋求了下銳評:
面試官說我的簡歷沒提現技術能力(我后來看了下國聘上的簡歷沒有專業技能,技術棧一個沒漏出來,如果有二面必須讓hr給我更新簡歷)。
腦子轉得快,不夠深入底層。
面完感覺G了
一共三面,前兩輪線上。第一輪一個面試官,第二輪與第三輪群面。問的技術,差不多就是八股文。,涉及到線程、IO、鎖、集合、JVM、索引、隔離級別、事務底層等
面試官問的面試題:天津聯通java開發面試題
8.INNODB的數據結構
9.多線程
多線程的構造方法
10.線程
Sychronized是如何實現的
11.Mybatis緩存 一級緩存和二級緩存
12.IO 有哪幾種方式
13.什么是同步 什么是阻塞 同步和阻塞一樣嗎 有什么關系, 分別在什么情況下發生
14.數據庫隔離級別,他們有什么關系
15.幻讀是什么
16.Spring如何加事務,
17.事務注解的底層原理
此次面試主要是中國聯通在學校的宣講會,有很多地區的聯通分公司都在,當時天津聯通能現場發offer(直簽的機會),我沖著這個現場發offer的機會就去投遞了天津聯通。
面試官問的面試題:天津聯通軟件開發工程師面試題
一上來面試官就看了看我的簡歷,問題也比較簡單,主要如下:
你是哪里人?(南方的)
為什么想要從南方來到天津這么遠?沒想過在家附近嗎?(我說喜歡大城市)
廣東、湖南也有大城市呀,為什么不選擇?(我喜歡北上廣深(天津挨著北),但深和上消費太高了)
接受崗位調劑嗎?(崗位可能要考試,沒達到錄取名額最后排名的會被調劑)