原创 阿里架構師之Java代碼性能優化

代碼優化 一個很重要的課題。可能有些人覺得沒用,一些細小的地方有什麼好修改的,改與不改對於代碼的運行效率有什麼影響呢?這個問題我是這麼考慮的,就像大海里面的鯨魚一樣,它吃一條小蝦米有用嗎?沒用,但是,吃的小蝦米一多之後,鯨魚就被餵飽了。 代

原创 阿里面試必問的Dubbo相關問題

在過去持續分享的幾十期阿里Java面試題中,幾乎每次都會問到Dubbo相關問題,比如:“如何從0到1設計一個Dubbo的RPC框架”,這個問題主要考察以下幾個方面: 你對RPC框架的底層原理掌握程度。 以及考驗你的整體RPC框架系統設計能力

原创 使用Redis緩存必須要知道哪些知識點?

當我們在開發過程中需要用到分佈式緩存Redis的時候,我們首先要明白緩存在系統中用來做什麼? 少量數據存儲,高速讀寫訪問。通過數據全部in-momery 的方式來保證高速訪問,同時提供數據落地的功能,實際這正是Redis最主要的適用場景

原创 Zookeeper與paxos算法

一、 zookeeper是什麼 官方說辭:Zookeeper 分佈式服務框架是Apache Hadoop 的一個子項目,它主要是用來解決分佈式應用中經常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項的管理

原创 一文讓你讀懂JVM類加載機制

1、什麼是類的加載 類的加載指的是將類的.class文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法區內,然後在堆區創建一個java.lang.Class對象,用來封裝類在方法區內的數據結構。類的加載的最終產品是位於堆區中的Cla

原创 阿里Java面試題剖析:在高併發的情況下如何保證消息的順序性?

面試原題 如何保證消息的順序性? 面試官心理分析 其實這個也是用 MQ 的時候必問的話題,第一看看你了不瞭解順序這個事兒?第二看看你有沒有辦法保證消息是有順序的?這是生產系統中常見的問題。 面試題剖析 我舉個例子,我們以前做過一個 mysq

原创 阿里Java面試題剖析:項目中緩存是如何使用的?爲什麼要用緩存?緩存使用不當會造成什麼後果?

面試原題 項目中緩存是如何使用的?爲什麼要用緩存?緩存使用不當會造成什麼後果? 面試官心理分析 這個問題,互聯網公司必問,要是一個人連緩存都不太清楚,那確實比較尷尬。 只要問到緩存,上來第一個問題,肯定是先問問你項目哪裏用了緩存?爲啥要用

原创 巧用Spring Boot中的Redis

Redis 介紹 Redis 是目前業界使用最廣泛的內存數據存儲。相比 Memcached,Redis 支持更豐富的數據結構,例如 hashes, lists, sets 等,同時支持數據持久化。除此之外,Redis 還提供一些類數據庫的特

原创 Java到底要學到什麼程度才能稱之爲“精通”?

一、Java編程 這裏的Java編程部分包含了很多內容。我們可以分別看看,大概歸納一下就是這幾個部分。 Java基礎 這裏的Java基礎包括基本語法,集合類框架,以及一些高級特性,比如反射,註解等等。 Java基礎的知識點非常多,所以要真正

原创 阿里Java面試題剖析:瞭解什麼是 redis 的雪崩和穿透?redis 崩潰之後會怎麼樣?

面試原題 瞭解什麼是 redis 的雪崩和穿透?redis 崩潰之後會怎麼樣?系統該如何應對這種情況?如何處理 redis 的穿透?面試官心理分析其實這是問到緩存必問的,因爲緩存雪崩和穿透,是緩存最大的兩個問題,要麼不出現,一旦出現就是致命

原创 如何快速上手Spring Boot?

首先我們要知道什麼是 Spring Boot Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣

原创 阿里JAVA面試題剖析:redis 的併發競爭問題是什麼?如何解決這個問題?

面試原題 redis 的併發競爭問題是什麼?如何解決這個問題?瞭解 redis 事務的 CAS 方案嗎? 面試官心理分析 這個也是線上非常常見的一個問題,就是多客戶端同時併發寫一個 key,可能本來應該先到的數據後到了,導致數據版本錯了;或

原创 Redis高可用分佈式集羣

一,高可用 高可用(High Availability),是當一臺服務器停止服務後,對於業務及用戶毫無影響。 停止服務的原因可能由於網卡、路由器、機房、CPU負載過高、內存溢出、自然災害等不可預期的原因導致,在很多時候也稱單點問題。 (1)

原创 Mybatis的前世今生

一、MyBatis的簡介 MyBatis 是支持定製化 SQL、存儲過程以及高級映射的優秀的持久層框架。 MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。 MyBatis可以使用簡單的XML或註解用於配置和原始

原创 Redis常見面試題(附答案)

1.什麼是redis? Redis 是一個基於內存的高性能key-value數據庫(有理解錯誤或不足歡迎指正)。 2.Reids的特點 Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,整個數據庫統統加載在內