原创 線上問題分析系列:數據庫連接池內存泄漏問題的分析和解決方案

前言本文來自好朋友彪哥整理,實際的生產問題分析,絕對乾貨~一、問題描述上週五晚上主營出現部分設備掉線,經過查看日誌發現是由於緩存系統出現長時間gc導致的。這裏的gc日誌的特點是:1.gc時間都在2s以上,部分節點甚至出現12s超長時間g

原创 Java程序員必備基礎結構圖

前言 最近看了深入理解Java虛擬機第三版,整理了一些基礎結構圖,算是比較全的了,做一下筆記,大家一起學習。 1.Java虛擬機運行時數據區圖 JVM內存結構是Java程序員必須掌握的基礎。 程序計數器 程序計數器,可以看作當

原创 一份熱乎乎的騰訊後端面試真題

前言 最近有個好朋友換工作了,面了騰訊後端,跟他要了份面試真題,大家一起來探討一下,哈哈~ 騰訊後端一面 ① JVM內存模型 這個可以複習一下《深入理解Java虛擬機》第12章(Java內存模型和線程)哈,也可以看看我之前的文章哈

原创 Redis鎖從面試連環炮聊到神仙打架。

背景鋪墊面試的時候,不管你的簡歷寫沒寫 Redis,它基本上是一個繞不過的話題。爲了引出本文要討論的關於 Redlock 的神仙打架的問題,我們就得先通過一個面試連環炮:Redis 做分佈式鎖的時候有需要注意的問題?如果是 Redis

原创 Java程序員必備:序列化全方位解析

前言 相信大家日常開發中,經常看到Java對象“implements Serializable”。那麼,它到底有什麼用呢?本文從以下幾個角度來解析序列這一塊知識點~ 什麼是Java序列化? 爲什麼需要序列化? 序列化用途 Jav

原创 看完這篇 HTTPS,和面試官扯皮就沒問題了

下面我們來一起學習一下 HTTPS ,首先問你一個問題,爲什麼有了 HTTP 之後,還需要有 HTTPS ?我突然有個想法,爲什麼我們面試的時候需要回答標準答案呢?爲什麼我們不說出我們自己的想法和見解,卻要記住一些所謂的標準回答呢?技術

原创 優化if-else代碼的八種方案

前言代碼中如果if-else比較多,閱讀起來比較困難,維護起來也比較困難,很容易出bug,接下來,本文將介紹優化if-else代碼的八種方案。優化方案一:提前return,去除不必要的else如果if-else代碼塊包含return語句

原创 後端程序員必備:分佈式事務基礎篇

前言最近看了幾篇有關於分佈式事務的博文,做一下筆記。哈哈~數據庫事務數據庫事務(簡稱:事務),是數據庫管理系統執行過程中的一個邏輯單位,由一個有限的數據庫操作序列構成,這些操作要麼全部執行,要麼全部不執行,是一個不可分割的工作單位。數據

原创 AQS解析與實戰

前言前段時間在面試,發現面試官都有問到同步器AQS的相關問題。AQS爲Java中幾乎所有的鎖和同步器提供一個基礎框架,派生出如ReentrantLock、Semaphore、CountDownLatch等AQS全家桶。本文基於AQS原理

原创 面試必備:Java線程池解析

前言掌握線程池是後端程序員的基本要求,相信大家求職面試過程中,幾乎都會被問到有關於線程池的問題。我在網上搜集了幾道經典的線程池面試題,並以此爲切入點,談談我對線程池的理解。如果有哪裏理解不正確,非常希望大家指出,接下來大家一起分析學習吧

原创 CAS樂觀鎖解決併發問題的一次實踐

前言最近做新項目,貨幣充值消耗,送禮競爭勳章等都使用了CAS解決併發問題,所以做一下筆記,談談CAS,大家一起互相學習。樂觀鎖,悲觀鎖:討論CAS的話,先來說有一下樂觀鎖,悲觀鎖。悲觀鎖:每次去取數據,很悲觀,都覺得會被別人修改,所以在

原创 金秋十月,讀阿里JAVA開發手冊有感而發

前言最近重溫阿里巴巴Java開發手冊這本書,思考了什麼樣的代碼是好代碼,給大家分享一下我的想法,有哪裏不對,歡迎指出,感激不盡。什麼樣的代碼是好代碼?什麼是好代碼?實現了功能的代碼只是合格的代碼,而真正的好代碼具有以下特點:命名易於理解

原创 後端程序員必備:索引失效的十大雜症

背景最近生產爆出一條慢sql,原因是用了or和!=,導致索引失效。於是,總結了索引失效的十大雜症,希望對大家有幫助,加油。一、查詢條件包含or,可能導致索引失效新建一個user表,它有一個普通索引userId,結構如下:CREATE T

原创 Java程序員必備:查看日誌常用的linux命令

前言趁週末,複習一下鳥哥的linux私房菜,看了文件內容查閱部分,做個筆記,哈哈,希望對你有幫助哦。catcat : 由第一行開始顯示文件所有內容參數說明cat [-AbEnTv] 參數: -A : 相當於-vET 的整合參數,可列出一

原创 設計模式之策略模式

策略模式定義: 定義了算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立於使用算法的客戶。 解決的問題: 在一些算法比較相似的情況下,需要有較多if...else 或者switch case的時候,代碼比較複雜並且難以維