原创 騰訊雲,五輪面試,六個小時,靈魂拷問,含淚拿下 60W offer 我是如何備戰騰訊面試的? 總結

在互聯網做了幾年之後,去大廠“鍍鍍金”是大部分人的首選。大廠不僅待遇高、福利好,更重要的是,它是對你專業能力的背書,大廠工作背景多少會給你的簡歷增加幾分競爭力。 但說實話,想進大廠還真沒那麼容易。我的一個朋友在入職騰訊之前,大大小小的面試經

原创 【面試覆盤】2021金三銀四之後,這些大廠Java高頻面試點你都知道嗎? 第一份:2021金三銀四最新Java中高級面試題合集 第二份:2021Java高級架構面試點解析

時隔半年,歷經金三銀四之後,大廠招聘已然接近尾聲,接踵而來的是下一波畢業季應屆生招聘計劃及金九銀十。在這幾個月裏收到很多粉絲反饋,今年找工作太難了,好不容易有面試邀請,卻倒在了前幾輪技術面,據瞭解在大廠面試中基本都會問到Redis、分佈式、

原创 深入底層探究併發編程Bug禍首源頭——可見性、原子性、有序性 併發程序幕後的故事 源頭之一:緩存導致的可見性問題 源頭之二:線程切換帶來的原子性問題 源頭之三:編譯優化帶來的有序性問題 總結

如果你細心觀察的話,你會發現,不管是哪一門編程語言,併發類的知識都是在高級篇裏。換句話說,這塊知識點其實對於程序員來說,是比較進階的知識。我自己這麼多年學習過來,也確實覺得併發是比較難的,因爲它會涉及到很多的底層知識,比如若你對操作系統相關

原创 Java內存模型:看Java如何解決可見性和有序性問題 什麼是 Java 內存模型? 使用 volatile 的困惑 Happens-Before 規則 總結

什麼是 Java 內存模型? 你已經知道,導致可見性的原因是緩存,導致有序性的原因是編譯優化,那解決可見性、有序性最直接的辦法就是禁用緩存和編譯優化,但是這樣問題雖然解決了,我們程序的性能可就堪憂了。 合理的方案應該是按需禁用緩存以及編譯優

原创 系統性能百倍提升典型案例分析:高性能隊列Disruptor RingBuffer 如何提升性能 如何避免“僞共享” Disruptor 中的無鎖算法 總結

Disruptor 是一款高性能的有界內存隊列,目前應用非常廣泛,Log4j2、SpringMessaging、HBase、Storm 都用到了 Disruptor,那 Disruptor 的性能爲什麼這麼高呢?Disruptor 項目團隊

原创 全網講解最透徹:高性能網絡應用框架Netty,僅此一篇 網絡編程性能的瓶頸 Reactor 模式 Netty 中的線程模型 用 Netty 實現 Echo 程序服務端 總結

Netty 是一個高性能網絡應用框架,應用非常普遍,目前在 Java 領域裏,Netty 基本上成爲網絡程序的標配了。Netty 框架功能豐富,也非常複雜,今天我們主要分析 Netty 框架中的線程模型,而線程模型直接影響着網絡程序的性能。

原创 你的線程很可能出現了:安全性、活躍性以及性能問題 安全性問題 活躍性問題 性能問題 總結

併發編程中我們需要注意的問題有很多,很慶幸前人已經幫我們總結過了,主要有三個方面,分別是:安全性問題、活躍性問題和性能問題。下面我就來一一介紹這些問題。 安全性問題 相信你一定聽說過類似這樣的描述:這個方法不是線程安全的,這個類不是線程安

原创 Java架構進階筆記:一不小心就死鎖了,怎麼辦? 向現實世界要答案 沒有免費的午餐 如何預防死鎖 總結

歡迎關注專欄:Java架構技術進階。裏面有大量面試集錦,還有各種技術分享,如有好文章也歡迎投稿哦。 我們用 Account.class 作爲互斥鎖,來解決銀行業務裏面的轉賬問題,雖然這個方案不存在併發問題,但是所有賬戶的轉賬操作都是串行的,

原创 阿里P7私傳“併發編程核心講義”,實戰案例剖析,個個都是經典 一、併發理論基礎 二、併發工具類

最近幾年,併發編程已經慢慢成爲了一項必備技能。高薪崗位面試必問,併發編程似乎已經成爲大廠必備的敲門磚。 這主要是硬件的驅動以及國內互聯網行業的飛速發展決定的,現在 64 核的服務器已經飛入尋常百姓家,大型互聯網廠商的系統併發量輕鬆過百萬,傳

原创 併發編程經典案例分析:高性能限流器Guava RateLimiter 經典限流算法:令牌桶算法 Guava 如何實現令牌桶算法 總結

Guava 是Google 開源的 Java 類庫,提供了一個工具類 RateLimiter。我們先來看看 RateLimiter的使用,讓你對限流有個感官的印象。假設我們有一個線程池,它每秒只能處理兩個任務,如果提交的任務過快,可能導致系

原创 我的Java應用程序被OOMKilled了,原因竟是這樣?

在AWS雲上,我們運行並部署容器化應用程序到我們的PaaS管道。像我們這樣在Docker中運行Java應用程序的人,可能已經遇到過 **JVM在容器中運行時無法準確檢測可用內存的問題 **。jvm沒有準確地檢測Docker容器中可用的內存

原创 阿里架構師JVM精講篇——你真的瞭解JNI的運行機制嗎?

我們經常會遇見 Java 語言較難表達,甚至是無法表達的應用場景。比如我們希望使用匯編語言(如 X86_64 的 SIMD 指令)來提升關鍵代碼的性能;再比如,我們希望調用 Java 核心類庫無法提供的,某個體系架構或者操作系統特有的功能。

原创 一線互聯網大企業,每天面對【千萬級】海量數據,是如何快速查詢的呢? 一、常用的分析類系統應該如何選擇存儲? 二、轉變你的思想:根據查詢來選擇存儲系統 三、總結

本文和大家分享一下如何來保存原始數據,我們知道,原始數據的數據量太大,能存下來就很不容易了,這個數據是沒法直接來給業務系統查詢和分析的。有兩個原因,一是數據量太大了,二是也沒有很好的數據結構和查詢能力,來支持業務系統查詢。 所以一般的做法是

原创 面試官問你:MySQL事務和隔離級別,你該如何回答 一、事務 二、併發一致性問題 三、事務隔離級別 慕容千語:專注於Java開發技術的研究與知識分享!

一、事務 事務是由一組SQL語句組成的邏輯處理單元,是滿足 ACID 特性的一組操作,可以通過 Commit 提交一個事務,也可以使用 Rollback 進行回滾。事務具有以下4個屬性,通常簡稱爲事務的ACID屬性: 原子性(Atomi

原创 程序員進階之路:Java之String重點解析

主題 Java String s = new String("abc") 這段代碼創建了幾個對象呢? s=="abc" 這個判斷的結果是什麼? s.substring(0,2).intern()=="ab" 這個的結果是什麼呢? s.c