原创 分享:關於 JVM 內存的 N 個問題和定位工具

JVM的內存區域是怎麼劃分的? JVM的內存劃分中,有部分區域是線程私有的,有部分是屬於整個JVM進程;有些區域會拋出OOM異常,有些則不會,瞭解JVM的內存區域劃分以及特徵,是定位線上內存問題的基礎。那麼JVM內存區域是怎麼劃分的呢? 首

原创 如何面對高併發?緩存?中臺爲什麼會火?

場景的變化 場景 特點 變化點 老 複雜的業務邏輯 新 大量用戶高併發訪問 軟件開發方法,過程管理,組織架構變化 垂直伸縮 提高服務器的硬件配置來支撐; 兩個問題: 物理服務器的硬件性能上限; 投入的成本跟性能提

原创 手撕ArrayList底層,透徹分析源碼

ArrayList概述 Hello大家好,今天就來介紹一下ArrayList,說到ArrayList,很多人都知道它的底層是使用數組實現的,線程不安全的,說到它的特點,都會說查找快,增刪慢,因爲面試題大家都是這麼背過來的。今天就來說說它的底

原创 迄今爲止把Mybatis講解的最詳細的PDF,圖文並茂,通俗易懂

廢話不多說,直接進入文章。 我們在使用MyBatis的時候,會在xml中編寫sql語句。如圖: 那麼,MyBatis底層是如何構造sql,寫了接口爲啥就能執行sql? 下面帶着這個疑問我們一步步分析。 梳理MyBatis的設計思路 創

原创 從原理到優化,深入淺出數據庫索引

MySQL官方對索引的定義爲:索引(Index)是幫助MySQL高效獲取數據的數據結構。數據庫查詢是數據庫的最主要功能之一,我們都希望查詢數據的速度能儘可能的快,因此數據庫系統的設計者會從查詢算法的角度進行優化,這篇文章對索引做一個系統的梳

原创 理解RabbitMQ中的AMQP-0-9-1模型

前提 之前有個打算在學習RabbitMQ之前,把AMQP詳細閱讀一次,挑出裏面的重點內容。後來找了下RabbitMQ的官方文檔,發現了有一篇文檔專門介紹了RabbitMQ中實現的AMQP模型部分,於是直接基於此文檔和個人理解寫下這篇文章。

原创 有了這份SpringBoot神級文檔,面試真的可以爲所欲爲

前言 做 Java 開發,沒有人敢小覷 Spring Boot 的重要性,現在出去面試,無論多小的公司 or 項目,都要跟你扯一扯 Spring Boot,扯一扯微服務,如果啃不下來,很可能就與大廠失之交臂。 精通Spring Boot的

原创 Dubbo如何支持本地調用?InJvm方式解析

Dubbo是一個遠程調用的框架,對於一個服務提供者,暴露了一個接口供外部消費者調用,那麼對於提供者自己是否可以調用這個接口,需要什麼特殊處理嗎? 這篇文章就分享下Dubbo關於本地調用的實現機制,以及如何開啓和關閉本地調用。 injvm支持

原创 對標Eureka的AP一致性,Nacos如何實現Raft算法

一、快速瞭解Raft算法 Raft 適用於一個管理日誌一致性的協議,相比於 Paxos 協議 Raft 更易於理解和去實現它。爲了提高理解性,Raft 將一致性算法分爲了幾個部分,包括領導選取(leader selection)、日誌複製(

原创 JVM虛擬機面試指南:年薪30W以上高薪崗位需求的JVM,你必須要懂!

JVM的重要性 很多人對於爲什麼要學JVM這個問題,他們的答案都是:因爲面試。無論什麼級別的Java從業者,JVM都是進階時必須邁過的坎。不管是工作還是面試中,JVM都是必考題。如果不懂JVM的話,薪酬會非常吃虧。其實學習JVM並不僅僅可以

原创 面試官:延遲隊列有哪些實現方案?說說你的看法

延遲隊列的需求各位應該在日常開發的場景中經常碰到。比如: 用戶登錄之後5分鐘給用戶做分類推送; 用戶多少天未登錄給用戶做召回推送; 定期檢查用戶當前退款賬單是否被商家處理等等場景。 一般這種場景和定時任務還是有很大的區別,定時任務是你知道任

原创 阿里、騰訊、字節跳動等一線大廠都在用的敏捷開發到底是什麼?

我最早接觸敏捷,是源於一位做開發的朋友。他就屬於那種效率極高的,大家一個禮拜的任務他2-3天就能做完,代碼質量高 bug 少。最主要的是,他除了寫代碼以外,有足夠多的時間研究新技術,指導其他同事,在團隊中口碑極好,後來還研究上了管理,聽說這

原创 透過源碼學優化:String字符串性能優化的方案,你知道幾種?

推薦閱讀: 阿里二面涼經:設計模式+緩存+Spring+虛擬機+MySQL+中間件+併發等難題,全部迎刃而解 阿里巴巴字節跳動那些大廠必問的HTTP該怎麼學?我建議你看看這篇文章! 螞蟻、字節、PDD社招面經Java崗(分佈式+線程安全+

原创 MySQL的啓動選項和系統變量該如何配置?

MySQL的配置信息可以通過兩種方式實現,一種是命令行形式,在啓動MySQL服務時後邊帶上相關配置參數,此種方式會在MySQL重啓後失效。另外一種是通過寫入配置文件,如my.cnf,啓動或者重啓MySQL服務都會生效,此種方式是永久生效。

原创 想玩轉JAVA高併發,這些概念你必須懂!

我們在找工作時,經常在招聘信息上看到有這麼一條:有構建大型互聯網服務及高併發等經驗,你第一時間想到的是媒體常說的雙十一嗎?帶着問題,我們一起思考技術…. 高併發高併發 它是互聯網分佈式系統架構設計中必須考慮的因素之一,通常是指,保證系統