原创 netty高性能的原因

“性能是設計出來的,而不是測試出來的”。下面我們看Netty的架構設計是如何實現 高性能的。 (1)採用異步非阻塞的I/O類庫,基於Reactor 模式實現,解決了傳統同步阻塞I/O 模式下一個服務端無法平滑地處理線性增長的客戶端的問題。

原创 java高頻面試

必須深⼊入了了解的知識點: a. java集合數據結構 b. jvm:gc、內存模型、堆分代 c. 多線程:volatile、java.util.concurrent包 d. spring:啓動、時間 e. redis:分佈式鎖

原创 手寫Hashmap第一版

     關於hashmap的問題,經常被問到。雖然看了一下源碼和相關博客,記憶還是不太深刻。發現只有手寫之後,對其中的運行原理纔有更深刻的理解。這裏記錄第一版,實現了存儲、查詢、刪除、擴容操作,是線程不安全的,且沒有實現迭代器功能。鏈表

原创 簡單描述下synchronize的實現原理

     看到synchronize第一印象是鎖。鎖,保證在同一時刻只有一個線程能夠訪問共享資源。那synchronize是如何實現這個原理的呢?依稀記得它可以放在方法中,可以將對象包裹起來,具體怎麼去實現的,還是有點模糊。      

原创 小米運動數據導出並做個性化統計

       小米運動數據是沒有對外提供接口的,它本身提供的數據統計有不足之處,比如體重數據,在一天中不同時間體重數據時不一樣的,把所有數據混合在一起看,是很難得出體重變化趨勢的。所以,最好是能夠獲取到這些數據,根據時間段來對數據進行統計

原创 springcloud之eruaka使用時遇到的問題

當引入springcloud依賴包,但沒有引入 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sta

原创 idea上不顯示git項目信息

第二次遇到這個問題,在左上角的file--》setting--》Version Control裏面,

原创 爲什麼JDK1.8中放棄了分段鎖

       在網上找了很多參考文章,講解的都只是一知半解,看完以後都想放棄了,但還是想把這個問題搞清楚,所以多參考了幾篇博客,然後看了一下源代碼,最終理解了一點。         其實一切的優化和升級都是圍繞時間和空間來進行的,jdk1

原创 技術原理思考20190904

先記錄幾個問題,今天把詳細答案整理出來 一、netty底層使用的是epoll,還有其他的poll,select,他們直接的區別是什麼? https://www.cnblogs.com/Anker/p/3265058.html epoll是

原创 個人應該具備的素質

一、聰明       善於利用資源。聰明的人和不聰明的人,差距在於不聰明的人總是在做一些重複性的工作,且個人成長速度很慢。聰明的人善於抓住問題的核心,學會基礎的知識,能夠舉一反三。聰明的人學的是術,武功中的精髓,笨的人學的是技,遇到一個問

原创 springboot技術原理思考

一.springboot如何實現零配置的     主要是在依賴的jar包中包含有一個配置文件。factories.properties,裏面指定了配置內所在的相對路徑。在springboot項目啓動的時候,會通過classloader找到

原创 Sentinel介紹和使用

一、介紹和使用

原创 Nacos的介紹和使用

官方文檔: https://nacos.io/zh-cn/docs/what-is-nacos.html 一、介紹 二、踩過的坑  1.版本兼容問題     當spring-boot-starter-parent的版本太低時,會有兼容性

原创 docker-compose的安裝與使用,安裝nacos

一、背景       通常一個軟件的安裝過程比較複雜,使用docker之後,可以不用管這些複雜的配置,直接啓動就可以了。在使用docker的時候,需要首先pull下來鏡像,然後啓動,如果有特殊的個性化配置,後面還會加很多的參數。爲了簡化這

原创 一、Spring源碼閱讀----整體概況

一、Spring能幹啥 1.進行對象的管理,對象的創建和銷燬,不用使用new來進行對象創建了 準備寫第二條的,發現spring核心內容就是對象管理,那爲什麼必須是spring呢? 2.如果僅僅是對象管理,那其實很容易實現,關鍵是其還有豐富