Java工程師常見面試題集錦(六)網際網路人必看!(附答案及視訊教程,持續更新)
年節放假進入6天倒數計時,我們的Java工程師面試題也更新至第六期了,仍舊10道題,分享給大家,感謝小夥伴們的持續支援!
Java工程師常見面試題集錦(一)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/85602533
Java工程師常見面試題集錦(二)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86138938
Java工程師常見面試題集錦(三)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86471513
Java工程師常見面試題集錦(四)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86525565
Java工程師常見面試題集錦(五)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86591005
如果覺得文字學習較慢,也可以跟著老師一起視訊學習:
Java面試題視訊學習連結:https://edu.csdn.net/course/detail/10533
51.簡述Redis持久化的形式
Redis 提供了2個不同形式的持久化方式。
1)RDB (Redis DataBase):在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,也就是行話講的Snapshot快照,它恢復時是將快照檔案直接讀到記憶體裡。
2)AOF (Append Of File):以日誌的形式來記錄每個寫操作,將Redis執行過的所有寫指令記錄下來(讀操作不記錄),只許追加檔案但不可以改寫檔案,Redis啟動之初會讀取該檔案重新構建資料,換言之,Redis重啟的話就根據日誌檔案的內容將寫指令從前到後執行一次以完成資料的恢復工作。
52.Redis的RDB形式下如何執行備份?
Redis會單獨建立(fork)一個子程式來進行持久化,會先將資料寫入到一個臨時檔案中,待持久化過程都結束了,再用這個臨時檔案替換上次持久化好的檔案。整個過程中,主程式是不進行任何IO操作的,這就確保了極高的效能如果需要進行大規模資料的恢復,且對於資料恢復的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺點是最後一次持久化後的資料可能丟失。
在Linux程式中,fork()會產生一個和父程式完全相同的子程式,但子程式在此後多會exec系統呼叫,出於效率考慮,Linux中引入了“寫時複製技術”,一般情況父程式和子程式會共用同一段實體記憶體,只有程式空間的各段的內容要發生變化時,才會將父程式的內容複製一份給子程式。
53.RDB如何儲存檔案?
1)在redis.conf中配置檔名稱,預設為dump.rdb
2)RDB檔案的儲存路徑,也可以修改。預設為Redis啟動時命令列所在的目錄下
3)RDB的儲存策略
4)手動儲存快照
命令save: 只管儲存,其它不管,全部阻塞
save vs bgsave
stop-writes-on-bgsave-error yes
當Redis無法寫入磁碟的話,直接關掉Redis的寫操作
rdbcompression yes
進行rdb儲存時,將檔案壓縮
rdbchecksum yes
在儲存快照後,還可以讓Redis使用CRC64演算法來進行資料校驗,但是這樣做會增加大約10%的效能消耗,如果希望獲取到最大的效能提升,可以關閉此功能
5)RDB的備份
先通過config get dir 查詢rdb檔案的目錄 ,將*.rdb的檔案拷貝到別的地方。
6)RDB的恢復
關閉Redis;先把備份的檔案拷貝到工作目錄下;啟動Redis, 備份資料會直接載入。
54.RDB的優缺點
優點:節省磁碟空間;恢復速度快
缺點:雖然Redis在fork時使用了寫時拷貝技術,但是如果資料龐大時還是比較消耗效能。在備份週期在一定間隔時間做一次備份,所以如果Redis意外down掉的話,就會丟失最後一次快照後的所有修改。
Java工程師常見面試題集錦(一)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/85602533
Java工程師常見面試題集錦(二)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86138938
Java工程師常見面試題集錦(三)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86471513
Java工程師常見面試題集錦(四)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86525565
Java工程師常見面試題集錦(五)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86591005
如果覺得文字學習較慢,也可以跟著老師一起視訊學習:
Java面試題視訊學習連結:https://edu.csdn.net/course/detail/10533
55.AOF檔案備份及恢復
1)AOF檔案故障備份:
AOF的備份機制和效能雖然和RDB不同, 但是備份和恢復的操作同RDB一樣,都是拷貝備份檔案,需要恢復時再拷貝到Redis工作目錄下,啟動系統即載入
(AOF和RDB同時開啟,系統預設取AOF的資料)
2)AOF檔案故障恢復:
AOF檔案的儲存路徑,同RDB的路徑一致。
如遇到AOF檔案損壞,可通過 redis-check-aof --fix appendonly.aof 進行恢復
3)如何實現重寫?
AOF檔案持續增長而過大時,會fork出一條新程式來將檔案重寫(也是先寫臨時檔案最後再rename),遍歷新程式的記憶體中資料,每條記錄有一條的Set語句。重寫aof檔案的操作,並沒有讀取舊的aof檔案,而是將整個記憶體中的資料庫內容用命令的方式重寫了一個新的aof檔案,這點和快照有點類似。
4)何時重寫
重寫雖然可以節約大量磁碟空間,減少恢復時間。但是每次重寫還是有一定的負擔的,因此設定Redis要滿足一定條件才會進行重寫。
系統載入時或者上次重寫完畢時,Redis會記錄此時AOF大小,設為base_size,如果Redis的AOF當前大小>= base_size +base_size*100% (預設)且當前大小>=64mb(預設)的情況下,Redis會對AOF進行重寫。
56.AOF的優缺點
優點:備份機制更穩健,丟失資料概率更低。可讀的日誌文字,通過操作AOF穩健,可以處理誤操作。
缺點:比起RDB佔用更多的磁碟空間。恢復備份速度要慢,每次讀寫都同步的話,有一定的效能壓力。存在個別Bug,造成恢復不能。
57.Redis在專案中的使用場景
資料型別 |
使用場景 |
String |
比如說 ,我想知道什麼時候封鎖一個IP地址。Incrby命令 |
Hash |
儲存使用者資訊【id,name,age】 Hset(key,field,value) Hset(userKey,id,101) Hset(userKey,name,admin) Hset(userKey,age,23) ----修改案例---- Hget(userKey,id) Hset(userKey,id,102) 為什麼不使用String 型別來儲存 Set(userKey,用資訊的字串) Get(userKey) 取出來的值會將(userKey)取出來的值,全部進行反序列化,增加了IO次數,降低了程式的效能。 不建議使用String 型別 |
List |
實現最新訊息的排行,還可以利用List的push命令,將任務存在list集合中,同時使用另一個命令,將任務從集合中取出[pop]。 Redis—list資料型別來模擬訊息佇列。【電商中的秒殺就可以採用這種方式來完成一個秒殺活動】 |
Set |
特殊之處:可以自動排重。比如說微博中將每個人的好友存在集合(Set)中, 這樣求兩個人的共通好友的操作,我們只需要求交集即可。 |
Zset |
以某一個條件為權重,進行排序。 京東:商品詳情的時候,都會有一個綜合排名,還可以按照價格進行排名。 |
58. 什麼是反射機制?哪裡用到反射機制?反射機制的優缺點
1)反射就是動態載入物件,並對物件進行剖析。在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法,這種動態獲取資訊以及動態呼叫物件方法的功能成為Java反射機制。
2)jdbc中,獲取資料庫驅動物件例項的程式碼,很多框架都用到反射機制,如hibernate、struts、spring。
3)優點:可以動態的建立物件和編譯,最大限度發揮了java的靈活性。缺點:對效能有影響。使用反射基本上一種解釋操作,告訴JVM我們要做什麼並且滿足我們的要求,這類操作總是慢於直接執行java程式碼。
59. Java中的23種設計模式
Factory(工廠模式), Builder(建造模式), Factory Method(工廠方法模式),
Prototype(原始模型模式),Singleton(單例模式), Facade(門面模式),
Adapter(介面卡模式), Bridge(橋樑模式), Composite(合成模式),
Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),
Command(命令模式), Interpreter(直譯器模式), Visitor(訪問者模式),
Iterator(迭代子模式), Mediator(調停者模式), Memento(備忘錄模式),
Observer(觀察者模式), State(狀態模式), Strategy(策略模式),
Template Method(模板方法模式), Chain Of Responsibleity(責任鏈模式)
60.工廠模式
工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的資料生成一組類中某一個類的例項,通常這一組類有一個公共的抽象父類並且實現了相同的方法,但是這些方法針對不同的資料進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現了基類中的方法。然後需要定義一個工廠類,工廠類可以根據條件生成不同的子類例項。當得到子類的例項後,開發人員可以呼叫基類中的方法而不必考慮到底返回的是哪一個子類的例項。
Java工程師常見面試題集錦(一)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/85602533
Java工程師常見面試題集錦(二)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86138938
Java工程師常見面試題集錦(三)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86471513
Java工程師常見面試題集錦(四)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86525565
Java工程師常見面試題集錦(五)網際網路人必看!https://blog.csdn.net/CSDNedu/article/details/86591005
如果覺得文字學習較慢,也可以跟著老師一起視訊學習:
Java面試題視訊學習連結:https://edu.csdn.net/course/detail/10533
相關文章
- Java工程師常見面試題集錦(三)網際網路人必看!(附答案及視訊教程,持續更新!)Java工程師面試題
- Java工程師常見面試題集錦(二)網際網路人必看!(附答案及視訊教程,持續更新)Java工程師面試題
- Java工程師常見面試題集錦(一)網際網路人必看!(附答案及視訊教程,持續更新)Java工程師面試題
- 來了!Java工程師常見面試題集錦(五)網際網路人必看!(附答案及視訊教程,持續更新)Java工程師面試題
- 知否?知否!Java工程師常見面試題集錦(四)網際網路人必看!(附答案及視訊教程,持續更新)Java工程師面試題
- 雲端計算工程師面試題集錦,常見雲端計算面試題及答案工程師面試題
- GO面試題集錦快答[持續更新]Go面試題
- 大資料類工程師面試題集錦附指南:網際網路公司篇!大資料工程師面試題
- 雲端計算工程師面試題集錦,雲端計算面試題及答案工程師面試題
- 雲端計算面試題及答案,雲端計算工程師面試題集錦面試題工程師
- 2018年最新大資料類工程師面試題集錦附指南:網際網路公司篇!大資料工程師面試題
- 網際網路 Java 工程師面試題(Spring 面試題一)Java工程師面試題Spring
- Java常見面試題及答案彙總Java面試題
- 好程式設計師Java教程分享:Java工程師常見面試題程式設計師Java工程師面試題
- 常見AI面試題及答案AI面試題
- 2019最新Web前端經典面試試題及答案,持續更新Web前端面試
- Docker常見面試題及答案!Linux入門教程Docker面試題Linux
- 10道常見的Python面試題及答案!Python入門必看Python面試題
- 前端工程師面試必備(持續更新中)前端工程師面試
- 測試面試題集錦(六)| 軟素質篇與反問面試官篇(附答案)面試題
- 求職面試常見問題:Python常見面試題全解析附答案求職Python面試題
- Android開發工程師面試指南(面試題集附答案、簡歷模板)Android工程師面試題
- PHP開發工程師面試問題集錦PHP工程師面試
- Python資料型別面試題集錦!(附答案)Python資料型別面試題
- Java面試專屬視訊 最新Java阿里京東美團滴滴面試題及答案教程Java阿里面試題
- Java工程師面試題之Dubbo(含答案)Java工程師面試題
- Linux面試題,淺析常見Linux命令面試題及答案Linux面試題
- 新手必看!使用New File Menu常見問題集錦
- 吐血總結!50道Python面試題集錦(附答案)Python面試題
- 高階前端工程師面試必備(持續更新中)前端工程師面試
- AI面試題(持續更新)AI面試題
- Hbase面試題(持續更新)面試題
- 金三銀四:螞蟻金服JAVA開發面試題及答案之一面(持續更新)Java面試題
- 一線網際網路常見的14個Java面試題,你顫抖了嗎程式設計師Java面試題程式設計師
- Java開發工程師最新面試題庫系列——集合部分(附答案)Java工程師面試題
- 總結Java開發面試常問的問題,持續更新中~Java面試
- 經典的Java面試題及回答集錦Java面試題
- 2020面試必知:中高階工程師面試題集整理(題目+答案)工程師面試題