原创 面試官:聊聊 Spring 中的線程安全性

Spring與線程安全 Spring作爲一個IOC/DI容器,幫助我們管理了許許多多的“bean”。但其實,Spring並沒有保證這些對象的線程安全,需要由開發者自己編寫解決線程安全問題的代碼。 Spring對每個bean提供了一個sco

原创 JVM 實戰學習總結:JVM 的分代模型:年輕代、老年代、永久代

1、背景引入 我們從下面這段代碼開始今天的內容:   有沒有很眼熟呀,跟前面我們的代碼差不多。只是這裏稍微調整了一下,在main() 方法中,會循環調用 loadReplicasFormDisk() 方法。 我們來用內存分配的角度來用圖

原创 6天面試10家,已經拿到offer,Java程序員的面試總結分享

前言: 最近一朋友離了職後,找工作前前後後面試了6天,一共10家公司,我找他分享出面試過程及經驗,希望能對各位正在面試中或者準備面試的童鞋有所幫助,以下面試企業爲了保密不說實際名稱。以下爲第一人稱。     第一家公司:簡稱A  由於剛

原创 Java 代碼優化細節之比比誰更細

就像鯨魚吃蝦米一樣,也許吃一個兩個蝦米對於鯨魚來說作用不大,但是吃的蝦米多了,鯨魚自然飽了。 代碼優化一樣,也許一個兩個的優化,對於提升代碼的運行效率意義不大,但是隻要處處都能注意代碼優化,總體來說對於提升代碼的運行效率就很有用了。

原创 面試官:熟悉Redis嗎,項目中你是如何對Redis內存進行優化的

對於redis來說,什麼是最重要的? 毋庸置疑,是內存。 一、reids 內存分析 redis內存使用情況:info memory 示例: 可以看到,當前節點內存碎片率爲226893824/209522728≈1.08,使用的內存分配

原创 關於Spring AOP,你都知道什麼?

Spring 作爲 Java 中最流行的框架,主要歸功於其提供的 IOC 和 AOP 功能。本文將討論 Spring AOP 的實現。第一節將介紹 AOP 的相關概念,若熟悉可跳過,第二節中結合源碼介紹 Spring 是如何實現 AOP

原创 螞蟻金服+抖音+拼多多+天貓(技術三面)面經合集助你拿大廠offer

前言 很多Java開發者面試之前,可能沒有較長的工作時間或者較爲豐富的工作經驗,所以不知道互聯網公司或者一線互聯網公司技術面試都會問哪些問題? 再加上可能自己準備也不充分,去面試沒幾個回合就被面試官幾個問題打蒙了,最後以慘敗收場。 針對這

原创 阿里P8架構師耗時7個月著作《架構解密:從分佈式到微服務》

本書一開始並沒有提及分佈式的枯燥理論,巧妙地引出CPU、內存、網絡、存儲的分佈式演進過程,這恰恰是分佈式軟件系統賴以運行的“物質基礎”。然後簡明扼要地介紹了進行系統架構所必需的網絡基礎,並詳細介紹了分佈式系統中的經典理論、設計套路及RPC

原创 異常、堆內存溢出、OOM的常見情況有哪些,該如何解決

堆內存溢出 【情況一】:java.lang.OutOfMemoryError: Java heap space: 這種是java堆內存不夠,一個原因是真不夠,另一個原因是程序中有死循環; 如果是java堆內存不夠的話,可以通過調整JVM下

原创 微服務架構解密:關於構建大規模應用的介紹

微服務是什麼? 微服務就是一些協同工作的小而自制的服務。   無論現在的影響力如何,分佈式系統仍然是最容易被忽視的主題之一,至少在大學層面是如此。沒有多少學生理解諸如容器化和容錯等概念,你也永遠不會看到系統項目贏得黑客馬拉松。儘管如此,

原创 面試官:Spring 用了哪些設計模式?說三種即可

1. 策略模式 2. 工廠方法模式 3. Builder模式 4. 小結 關於設計模式,如果使用得當,將會使我們的代碼更加簡潔,並且更具擴展性。本文主要講解Spring中如何使用策略模式,工廠方法模式以及Builder模式

原创 阿里、騰訊等大廠架構師必知必會:分佈式消息中間件

消息中間件是分佈式系統中的重要組件,在實際工作中常用消息中間件進行系統間數據交換,從而解決應用解耦、異步消息、流量削峯等問題,實現高性能、高可用、可伸縮和最終一致性架構。 目前市面上可供選擇的消息中間件有RabbitMQ、ActiveMQ

原创 微服務架構:關於構建大規模應用的介紹

微服務是什麼? 微服務就是一些協同工作的小而自制的服務。   無論現在的影響力如何,分佈式系統仍然是最容易被忽視的主題之一,至少在大學層面是如此。沒有多少學生理解諸如容器化和容錯等概念,你也永遠不會看到系統項目贏得黑客馬拉松。儘管如此,

原创 RabbitMQ和Kafka哪個更吊一點

導言 作爲一個有豐富經驗的微服務系統架構師,經常有人問我,“應該選擇RabbitMQ還是Kafka?”。基於某些原因, 許多開發者會把這兩種技術當做等價的來看待。的確,在一些案例場景下選擇RabbitMQ還是Kafka沒什麼差別,但是這兩

原创 三面阿里,有驚無險拿到offer,不得不說“太難了”

一位阿里程序員的自述: 一面 自我介紹 項目中的監控:那個監控指標常見的有哪些? 微服務涉及到的技術以及需要注意的問題有哪些? 註冊中心你瞭解了哪些? consul 的可靠性你瞭解嗎? consul 的機制你有沒有具體深入過?有沒有和其