原创 重構:高手的姿勢你學不會

軟件開發是一門工程技術,其中任何一個技術或技能如果孤立地看都會是管中窺豹,只見一斑。任何一個作者在寫書時都有一些前提和細節,然而經常是要不作者沒說清楚,要不讀者直奔主題而忽略了這些前提和細節,結果是東施效顰,適得其反,照貓畫虎不成反類犬。

原创 騰訊大牛教你如何使用Java實現二叉樹的添加,刪除,獲取以及遍歷

一段來自百度百科的對二叉樹的解釋: 在計算機科學中,二叉樹是每個結點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree)。二叉樹常被用於實現二叉查找樹和二叉堆。 一棵深度爲k

原创 技巧分享丨可以提高千倍效率的Java代碼的35個小技巧

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

原创 【阿里面經分享】螞蟻金服研發面經+阿里中間件研發面經+面試題

螞蟻金服研發面經 螞蟻金服中間件 螞蟻財富 研發工程師 之前面了阿里中間件的提前批,不過沒走流程。同期還面了螞蟻中間件的兩輪面試,被告知不走流程就不能面了,所以也沒面完。 後來走了螞蟻金服財富事業羣這邊的流程。前幾天剛剛面完H

原创 再不懂ZooKeeper,就安安心心把這篇文章看完

我本人曾經使用過 ZooKeeper 作爲 Dubbo 的註冊中心,另外在搭建 Solr 集羣的時候,我使用到了 ZooKeeper 作爲 Solr 集羣的管理工具。 前幾天,總結項目經驗的時候,我突然問自己 ZooKeeper 到底是個

原创 Java大學問——優雅地處理異常

一.前言 你有沒有這樣的印象,當你想要更新一款 APP 的時候,它的更新日誌裏總有這麼一兩句描述: 修復若干 bug 殺了某程序員祭天,併成功解決掉他遺留的 bug 作爲一名負責任的程序員,我們當然希望程序不會出現 bug,因爲 bug

原创 JVM 與 Linux 的內存關係詳解

在一些物理內存爲8g的服務器上,主要運行一個Java服務,系統內存分配如下:Java服務的JVM堆大小設置爲6g,一個監控進程佔用大約 600m,Linux自身使用大約800m。 從表面上,物理內存應該是足夠使用的;但實際運行的情況是,會

原创 微服務探索與實踐—服務註冊與發現

前言 微服務從大規模使用到現在已經有很多年了,從之前的探索到一步步的不斷完善與成熟,微服務已經成爲衆多架構選擇中所必須面對的一個選項。服務註冊與發現是相輔相成的,所以一般會合起來思索。其依託組件有很多,比如Zookeeper,Consul,

原创 講一些你所不知道的Java動態代理

簡介 Proxy 是設計模式中的一種。當需要在已存在的 class 上添加或修改功能時,可以通過創建 proxy object 來實現 通常 proxy object 和被代理對象擁有相同的方法,並且擁有被代理對象的引用,可以調用其方法 代

原创 深入學習Java序列化

前言 對於Java的序列化,一直只知道只需要實現Serializbale這個接口就可以了,具體內部實現一直不是很瞭解,正好這次在重複造RPC的輪子的時候涉及到序列化問題,就抽時間看了下 Java序列化的底層實現,這篇文章算是這次的學習小結吧

原创 對於MySQL你必須要了解的鎖知識

一、前言 MySQL 的鎖按照範圍可以分爲全局鎖、表鎖、行鎖,其中行鎖是由數據庫引擎實現的,並不是所有的引擎都提供行鎖,MyISAM 就不支持行鎖,所以文章介紹行鎖會以InnoDB引擎爲例來介紹行鎖。 二、全局鎖 MySQL 提供全局鎖

原创 詳解SpringBoot——啓動原理及自定義starter

一、引言 SpringBoot的一大優勢就是Starter,由於SpringBoot有很多開箱即用的Starter依賴,使得我們開發變得簡單,我們不需要過多的關注框架的配置。 在日常開發中,我們也會自定義一些Starter,特別是現在微服

原创 阿里架構師手寫Tomcat——Session源碼解析

在 web 開發中,我們經常會用到 Session 來保存會話信息,包括用戶信息、權限信息,等等。在這篇文章中,我們將分析 tomcat 容器是如何創建 session、銷燬 session,又是如何對 HttpSessionListene

原创 哪有什麼中年危機,不過是把定目標當成了有計劃

一、計劃比總結更具有建設性 個人以爲,計劃其實比總結更具有建設性。 計劃是主動的,總結是被動的。計劃首先意味著你有目標,有了目標,纔會有決心和動力。人們常常講求方法與效率的重要性,固然不錯,但在方法之前,是方向。 “對於盲目航行的帆船,什麼

原创 吐血總結——90%程序員面試都用得上的索引優化手冊

目錄 多關於索引,分爲以下幾點來講解: 一、索引的概述(什麼是索引,索引的優缺點) 二、索引的基本使用(創建索引) 三、索引的基本原理(面試重點) 四、索引的數據結構(B樹,hash) 五、創建索引的原則(重中之重,面試必問!敬請收藏!)