原创 線程安全與鎖優化

閱讀《深入理解Java虛擬機-JVM高級特性與最佳實踐》.周志明 筆記 線程安全的實現方法: 1.互斥同步 互斥同步是一種常見的併發正確性保障手段。同步是指在多個併發線程訪問共享數據時,保證共享數據在同一時刻只被一個(或者是一些,使用信號

原创 Java內存模型與線程

閱讀《深入理解Java虛擬機-JVM高級特性與最佳實踐》.周志明 筆記 Java內存模型 主內存與工作內存 Java內存模型的主要目的是定義程序中各個變量的訪問規則,即虛擬機中變量存儲到內存和從內存中取出變量這樣的底層細節。此處的變量包括

原创 虛擬機類加載機制

閱讀《深入理解Java虛擬機-JVM高級特性與最佳實踐》.周志明 筆記 虛擬機把描述類的數據從Class文件加載到內存,並對數據進行校驗,轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型,這就是虛擬機的類加載機制。    --

原创 JVM監控和分析工具

閱讀《深入理解Java虛擬機-JVM高級特性與最佳實踐》.周志明 筆記 給一個系統定位問題的時候,知識、經驗是關鍵基礎,數據是依據,工具是運用知識處理數據的手段。這裏說的數據包括:運行日誌、異常堆棧、GC日誌、線程快照、堆轉儲快照等。經常

原创 別人的JVM調優經驗

在高性能硬件上部署程序,目前主要有兩種方式: 通過64位JDK來使用大內存 使用若干32位虛擬機建立邏輯集羣來利用硬件資源 其中第一種方案,給Java虛擬機分配超大堆的前提是有把握把應用程序的Full GC頻率控制得足夠低,至少要不影響到

原创 Java GC

閱讀《深入理解Java虛擬機-JVM高級特性與最佳實踐》.周志明 筆記 上一篇文章記錄了自己學習JVM運行時數據區,對內存幾個區域的劃分有了瞭解,以及會遇到的一些OOM的問題。使用1.7和1.8的JDK環境跑了幾個程序,結果有些不一樣。爲

原创 Java OOM問題

閱讀《深入理解Java虛擬機-JVM高級特性與最佳實踐》.周志明 筆記 關於OOM(out of memory),目前有兩方面的接觸。一個是在面試當中面試官會經常問到(面試造航母),另外一個就是在使用IDEA或者eclipse開發項目,項

原创 ThreadLocal 方法耗時計算

《 Java併發編程的藝術》筆記 import java.util.concurrent.TimeUnit; /** * @Author: yangkun3 * @CreateDate: 2019/3/1 * @Descripti

原创 對於一個後端來說,什麼是RESTful API

不知道從什麼時候開始,在招聘要求中出現這麼一條:能夠寫出RESTful風格 API。 先看概念: RSET即表述狀態傳遞(Representational State Transfer)。表述性狀態轉移是一組織架構約束條件和原則。而滿足這

原创 關於前後端分離

爲什麼要前後端分離? 記得大學時候剛開始接觸web開發時候,前端用的是Html+jsp,根本不懂得架構什麼的。直到畢業工作,入了第一家公司。趕上一個項目,老框架的那種,有段時間我負責解bug。有些問題是頁面的問題,有些事dispatche

原创 nginx專題-內置變量轉義

上一篇介紹入門安裝,nginx的配置文件使用的都是默認配置。helloworld是沒什麼問題。 但是default  nginx.conf是無法滿足每個服務的要求。最簡單的例子就是中文問題。默認的配置你試試,中文會被轉義。 例如這樣的請求

原创 分佈式鎖之redis分佈式鎖

    分佈式應用中,需要如何解決資源同步的問題? 這篇文章講解的很不錯了。Redis 分佈式鎖的正確實現方式( Java 版 )。另外在Github上也有一個demo做的很不錯。 什麼時候需要用到分佈式鎖呢?比如:減庫存。 假設某個商品

原创 初體驗 Rabbit MQ(Java)

年初就有想法要了解MQ,總算是實踐了一波! 講解MQ的博客、資料實在是多,不知道應該從何看起。看過幾篇博客之後,總覺得不成體系。 在大佬的指導下去官網看。傳送門 官方教程結合動畫製作可以更有效的理解掌握Rabbit MQ。 1.經典入門H

原创 體驗ELK

如今數據是越來越重要了,日誌就是很重要的數據來源了。通過對日誌的分析,可以瞭解用戶習慣、發現系統缺陷。通過shell腳本、awk就可以對日誌文件進行處理,但是很耗費時間、精力。所以ELK(Elasticsearch、Logstash、Ki

原创 2018年終總

大概總結:換了4個住的地方,完成首次跳槽,考到駕照。 年初的時候給自己既定了兩個目標: 跳槽(完成) 出國旅遊(未完成) 爲什麼是這兩個目標呢?跳槽,是因爲在原公司已經有將近兩年的工作時間。同期(畢業生)進入公司(部門)的同事已經基本走