
🍕前言
失蹤人口終于更新了答案,我保證會更新完畢的!想直接看題目的小伙伴可以來這個傳送門:應粉絲要求,請假一周,面了9家深圳非外包初級開發,只為刷一刷真題(文末有福利)
🍟答案匯總
- 拿來吧你!六十題初級開發刷真題答案(7-12)
- 來了來了他來了!六十題初級開發刷真題答案(1-6)
🌈Spring的常用注解有哪些
🌊思路
二話不說,就是為了考驗你是否有真實開發經驗,拿下!我們只需說一些常用的注解和他們的意義即可
🎉答案
-
@SpringBootApplication:這個注解是Spring Boot最核心的注解,用在 Spring Boot的主類上,標識這是一個 Spring Boot 應用,用來開啟 Spring Boot 的各項能力,實際上這個注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三個注解的組合,由于這些注解一般都是一起使用,所以Spring Boot提供了這個統一的注解,
-
@Component:泛指各種組件,就是說當我們的類不屬于各種歸類的時候(不屬于@Controller、@Services等的時候),我們就可以使用@Component來標注這個類,把普通pojo實體化到spring容器中,
-
@Autowired:在Spring 2.5 引入了 @Autowired 注釋,它可以對類成員變數、方法及建構式進行標注,完成自動裝配的作業, 通過 @Autowired的使用來消除 set ,get方法,
-
@Bean:Spring的@Bean注解用于告訴方法,產生一個Bean物件,然后這個Bean物件交給Spring管理,產生這個Bean物件的方法Spring只會呼叫一次,隨后這個Spring將會將這個Bean物件放在自己的IOC容器中,SpringIOC 容器管理一個或者多個bean,這些bean都需要在@Configuration注解下進行創建,在一個方法上使用@Bean注解就表明這個方法需要交給Spring進行管理,
-
@Value :@Value的作用是通過注解將常量、組態檔中的值、其他bean的屬性值注入到變數中,作為變數的初始值,
🌈MySQL的事務你說一下對他的理解,他有幾種隔離級別
🌊思路
這道題有點難,講真一句,被問到的時候我愣了一下,有點難,但是仔細回過神想想,我們首先要拆分面試官的問題,事務、隔離級別,其實就不難!我們首先講一下啥是事務,然后說一下事務的特性,最后再說隔離級別,滿分!
答案
事務就是資料庫中的事務是指對資料庫執行一批操作,這些操作最終要么全部執行成功,要么全部失敗,不會存在部分成功的情況,他有ACID四個特性,
因為事務的并發問題會導致的問題:臟讀、幻讀、不可重復讀,他有四種隔離級別:
- 讀未提交(READ UMCOMMITTED): 對方的事務還沒有提交,我們當前事務可以讀取到對方未提交的資料,這種隔離級別是最低的,讀為未提交存在臟讀現象,表示堵到了臟資料,
- 讀已提交(READ COMMITTED):對方事務提交之后的資料我們才可以讀到,這種隔離級別解決了臟讀現象,但是卻出現了不可重復讀現象,這個級別是oracle的默認隔離級別,
- 可重復讀(REPEATABLE READ) MySQL默認:我們無法看到已提交的事務了,這種隔離級別雖然解決了不可重復讀的問題,但是卻帶來了幻讀的問題,比方說一個執行緒洗掉了資料庫中的所有資料,但是我們依然讀取的是原來的資料,讀到的是資料庫的備份,
- 串行化(SERIALIZABLE):將一個事務與其他事務完全地隔離,兩個事務不可以并發,執行緒之間需要排隊,也叫作序列化,雖然很安全,但是性能很低且客戶的體驗不好,
🌈Spring的AOP用過嗎,一般用它來做做啥,你怎么實作的,
🌊思路
Spring的AOP可以說是一個很重要的東西,面試官對于他的考察也無可厚非,其實AOP我們常做的就是做一些像日志列印、SQL攔截輸出,
🎉答案
我們以列印日志為例:
- 前期準備,設計日志表和日志類,撰寫日志Dao和Service以及實作
- 自定義注解,注解中加入幾個屬性,屬性可以標識操作的型別(方法是做什么的)
- 撰寫切面,切點運算式使用上面的注解直接定位到使用注解的方法,
- 撰寫通知,通過定位到方法,獲取上面的注解以及注解的屬性,然后從session中直接獲取或者從資料庫獲取當前登錄用戶的資訊,最后根據業務處理一些日志資訊之后呼叫日志Service存盤日志,
🌈不可重復讀和幻讀的區別
🌊思路
不多說,送分題,八股文理解背住滿分
🎉答案
- 不可重復讀:是同一條記錄(一條資料)的內容被其他事物修改了,關注的是update、delete操作一條資料的操作.
- 幻讀:是查詢某個范圍(多條資料)的資料行變多或變少了,在于insert、delete的操作,
🌈你們專案為什么用MyBatis-Plus,不用MyBatis
🌊思路
其實這道題我聽上去覺得好簡單,MyBatis-Plus簡單啊為啥!送分題
🎉答案
因為在一些基礎的CRUD功能中,我們無需寫太多重復的代碼,直接使用MyBatis的加強版即可,
🌈抽象和繼承的區別(你不會連這個都不知道把)
🌊思路
問這個問題的是一家做底層的公司,是Linux內核優化和改造的,他問的問題很有深度和廣度,很值得學習!
🎉答案
- 中所有的方法隱含的都是抽象的,但是抽象類中可以同時包含抽象方法和普通方法以及靜態常量
- 類可以實作很多個介面,但是只能繼承一個抽象類
- 類如果要實作一個介面,那么他必須要實作介面宣告的所有方法,但是類可以不實作抽象類中的所有方法,但是這個類必須是抽象類
- 介面中不存在構造方法,因為介面的成員變數都是static final變數,是在編譯的時候就完成了初始化操作了,無需通過構造方法來進行初始化操作,而抽象類必須有構造方法
- A類繼承了B抽象類表示它“是什么”!A類實作了C介面表示它“有什么功能”!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/299665.html
標籤:java
上一篇:【Java】剖析類和物件
