1. 靜態變數和實體變數的區別,它們加載的時機是什么時候?
- 靜態變數前要加static關鍵字,而實體變數前不加,
- 靜態變數屬于類,在加載類的時候,就加載了靜態變數,
- 實體變數屬于物件的屬性,創建了實體物件,實體變數才會被分配空間,
- 靜態變數可以直接使用類名來呼叫,實體變數必須創建物件之后才來使用,
參考博客:https://blog.csdn.net/hjq_ku/article/details/122452611
2. 包裝類和基本資料型別的區別?
a、包裝類是物件,擁有方法和欄位,物件的呼叫都是通過參考物件的地址;基本類不是,
b、包裝型別是參考的傳遞;基本型別是值的傳遞
c、宣告方式不同:
基本資料型別不需要new關鍵字;
包裝型別需要new在堆記憶體中進行new來分配記憶體空間
d、存盤位置不同:
基本資料型別直接將值保存在值堆疊中;
包裝型別是把物件放在堆中,然后通過物件的參考來呼叫他們
e、初始值不同:
int的初始值為 0 、 boolean的初始值為false
包裝型別的初始值為null
f、使用方式不同:
基本資料型別直接賦值使用就好;
包裝型別是在集合如 coolectionMap時使用
參考博客:https://blog.csdn.net/weichi7549/article/details/108745119
3. 面向物件的幾個特征
有四大特征:
抽象
封裝
繼承
多型
https://m.php.cn/faq/421584.html
4. 抽象類和介面的區別
抽象類是類只能被單繼承,介面可以被多實作,
介面中只能有抽象方法,抽象類中有抽象方法,也可以有普通的方法,
介面使用的是interface關鍵字,抽象類用abstract class來定義,
https://blog.csdn.net/qq_47908816/article/details/126236967
5. String、StringBuffer、StringBuilder的區別
String是不可變的,StringBuffer和StringBuilder是可變的,
String、StringBuffer是執行緒安全的,StringBuilder是執行緒不安全的,
不安全的速度最快,安全的慢一些,String最慢,
https://blog.csdn.net/zxl646801924/article/details/84646918
6. HashMap擴容原理,什么時候擴容?
這里回答的不好,需要重點學習一下,
當hashmap中的元素個數超過陣列大小*loadFactor時,就會進行陣列擴容,loadFactor的默認值為0.75,也就是說,默認情況下,陣列大小為16,那么當hashmap中元素個數超過16*0.75=12的時候,就把陣列的大小擴展為2*16=32,即擴大一倍,然后重新計算每個元素在陣列中的位置,
7. Java的序列化與反序列化,
實作了資料的持久化,通過序列化可以把資料持久地保存在硬碟上(磁盤檔案),
利用序列化實作遠程通信,在網路上傳輸位元組序列,
8. union和union all的區別?哪個速度快
union會去重,進行默認規則排序,
union all 不會去重 ,不會進行排序,速度快,
https://blog.csdn.net/a200822146085/article/details/119545374
9. 是否設計過資料庫,資料庫的三范式?
第一范式:保證每列的原子性,不可再拆分,
第二范式:保證一張表只描述一件事情,有主鍵,非主鍵欄位依賴主鍵,
第三范式:保證每列都和主鍵直接相關,非主鍵欄位不能相互依賴,
https://blog.csdn.net/charlesyoosky/article/details/89204229
https://baijiahao.baidu.com/s?id=1703973144064369296&wfr=spider&for=pc
10. 主鍵索引和唯一索引的區別,
主鍵是一種約束,一張表只有一個;
唯一索引是一個索引,可以為多個欄位設定唯一索引,
唯一索引允許為空,主鍵列不允許為空值,
11. Sql陳述句優化的思路?
盡量避免全表掃描,考慮在where及order by涉及的列上建立索引,
盡量避免可能引起索引失效的寫法,例如:
1 對null進行判斷,
2 使用or來連接,or可以改寫為 union all
3 避免使用like操作,
4 避免使用in 和 not in , 盡量使用 between and,
等其他操作,
參考博客:https://blog.csdn.net/biyusr/article/details/125599865
12. 視圖是否會自動重繪,如何實作視圖的自動重繪?
單表的視圖會自動重繪,多表的視圖不會自動重繪,
可以使用觸發器實作視圖的自動重繪,
13. 談談對IOC的理解?
這里主要分為兩方面去談,一個是物件的創建交給ioc容器去創建與管理,一個是依賴注入,
14. @autowired默認注入方式是什么?構造器注入的前提條件與setter方法注入前提條件,
默認注入方式是根據型別去注入,類的名稱,
set方法注入前提條件:在配置的類中有對應屬性的set方法,
構造器注入前提條件:在配置的類中有對應的有參構造器,
https://blog.csdn.net/m0_52325708/article/details/125669000
15. 談談對AOP的理解?
面向切面,抽離出一些與業務無關的操作,例如記錄日志、事務管理,
16. Spring的AOP中環繞通知與后置通知的執行順序?
最新spring版本環繞通知在最后,
17. MQ解決了什么痛點?
異步、解耦、消峰
https://blog.csdn.net/lisu061714112/article/details/116465216
18. Redis的主從架構與哨兵模式,哨兵是如何選主的?
哨兵也是分布式集群架構,當主宕機后,哨兵會進行監控,通過選舉投票來選擇一個主,哨兵會把自己選擇主的訊息發給其他的哨兵,如果大多數都同意,那么就選定了主,
參考博客:https://blog.csdn.net/a745233700/article/details/112451629
19. Redis資料量過大,占用記憶體,如何解決?
采用熱點資料定時過期的方式,
參考博客:http://www.muzhuangnet.com/show/47034.html
20. Mybatis的映射器,xml檔案與介面是如何映射的?
通過反射的方式拿到介面的型別然后再來對應相應的xml檔案,
參考博客:https://blog.csdn.net/weixin_38192427/article/details/123340994
21. Mybatis的xml檔案的引入方式,有哪幾種?
絕對路徑引入:url
相對路徑引入:resource
mapper介面引入:class
package引入:name
參考博客:https://www.jianshu.com/p/f08ca40e7260
22. Mybatis的大概執行流程是怎樣的?
決議組態檔,獲取資料源資訊,建立連接,
決議mapper檔案,獲取sql陳述句,執行sql,
決議執行結果,并回傳,
https://blog.csdn.net/fengzhizi520m/article/details/118330815
23. Mybatis的組態檔可以配置哪些內容?
environments: 環境配置,一些資料源資訊等,
properties:屬性資訊,可以進行動態的設定值,
typeAliases: 型別別名.
plugins: 插件,等
參考博客:https://blog.csdn.net/weixin_44688973/article/details/125891522
24. Mybatis的一級快取與二級快取?什么時候用到一級快取,什么時候用到二級快取?
一級快取是sqlsession級別,二級快取是mapper級別,一級快取是默認開啟,二級快取默認沒有開啟,查詢的時候,會先看快取里有沒有,有就取快取,沒有就去取資料庫,然后存入快取,那么是如何找到快取的?快取是根據id,sql陳述句作為key來存盤,下次再根據這個key來查找就可以了,
其他:又到了金九銀十面試季,且面且珍惜,初面為電話面試, 對Java系列的基本功考察還是比較多,總體難度不大,面試體驗比較好,
求職一份Java相關作業轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506083.html
標籤:其他
上一篇:vlan原理與配置
下一篇:vlan原理與配置
