面試寶典

面試寶典

介紹

小編也是後臺開發者,出去面試總會遇到一些棘手的問題,小編也是一頭霧水,不知所措.特總結一下,方便後續面試者使用.
廢話補多少,直蹦主題.

1 Java 中 sleep 方法和 wait 方法的區別

sleep是Thread類裏的方法,此方法執行的時候,如果線程有鎖,則鎖機制沒有被釋放.並且需要拋異常.
wait 是Object類裏的方法,此方法執行的時候,鎖機制已經被被釋放.並且不需要拋異常.wait屬於Object的成員方法,一旦一個對象調用了wait方法,必須要採用notify()和notifyAll()方法喚醒該進程.

2 java當中的四種引用

 強引用,軟引用,弱引用,虛引用. 主要是考慮內存回收的問題.

3 BeanFactory和ApplicationContext有什麼區別

1. BeanFactory負責讀取bean配置文檔,管理bean的加載,實例化,維護bean之間的依賴關係,負責bean的聲明週期。
2. ApplicationContext除了提供上述BeanFactory所能提供的功能之外,還提供了更完整的框架功能:
a. 國際化支持
b. 資源訪問:Resource rs = ctx. getResource(“classpath:config.properties”), “file:c:/config.properties”
c. 事件傳遞:通過實現ApplicationContextAware接口
3. 常用的獲取ApplicationContext
FileSystemXmlApplicationContext:從文件系統或者url指定的xml配置文件創建,參數爲配置文件名或文件名數組,有相對路徑與絕對路徑。

4 redis的穿刺和雪崩

1  緩存穿透是指查詢一個一定不存在的數據,由於緩存是不命中時被動寫的,並且出於容錯考慮,如果從存儲層查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到存儲層去查詢,失去了緩存的意義.
解決思路 : 可以緩存null值,設置較短的過期時間.或者使用隆過濾器,將所有可能存在的數據哈希到一個足夠大的bitmap中,一個一定不存在的數據會被 這個bitmap攔截掉,從而避免了對底層存儲系統的查詢壓力.
2  雪崩是指在一段時間類緩存過期,數據庫面臨巨大的壓力,,請求全部轉發到DB,DB瞬時壓力過重雪崩.  
解決思路可以採用redis主從機制,或者redis的持久化,或者採用緩存標記法,設置標記時間爲緩存時間的一段,當標記時間到的時候,啓動任務更新緩存數據.

5 zset和set的區別

set是一個集合,它是string類型的無序集合,可以去重.
zset是在set的基礎上增加了順序,形成一個有序的集合,可以設置每個對象的分數.

在這裏插入圖片描述

待完成

作者:連理枝
轉載請註明出處:https://mp.csdn.net/mdeditor/89163680

發佈了7 篇原創文章 · 獲贊 7 · 訪問量 1669
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章