原创 我的併發編程(二):java對象頭以及synchronized升級過程

一、概述      研究java對象頭的目的是詳細分析Java的synchronized鎖的升級過程,因爲synchronized在鎖升級的時候,就是依賴對象頭的信息來決定的。本博文針對64位的操作系統來對Java對象頭進行詳解。 二、詳

原创 我的jdk源碼(二十三):ReentrantLock類

一、概述     ReentrantLock類是在內部利用自己的內部類Sync繼承了AbstractQueuedSynchronizer,實現了tryAcquire()方法,在這個方法中增強自己的功能,比如添加了重入和公平鎖、非公平鎖。R

原创 我的jdk源碼(二十四):AtomicInteger類和CAS機制

一、概述     AtomicInteger類處於java.util.concurrent.atomic包下,與其他原子操作的類一樣,底層都是採用CAS機制,調用了Unsafe類的CAS方法實現的。我們先分析一下AtomicInteger

原创 JDK1.8源碼 由淺入深!抽絲剝繭!重要類的歸納總結!

一、 java.lang     我的jdk源碼(一):Object 一切類的根本!     我的jdk源碼(二):String 一個特殊而強大的類!     我的jdk源碼(三):AbstractStringBuilder類     我

原创 教你一招:element日期選擇器el-date-picker修改指定日期樣式

一、概述     今天在項目開發中有一個需求,要求日期選擇器中,指定的日期標紅,並且其他日期不能選擇。查閱資料後我們得知,ElementUI在2.12.0版本里,日期選擇器的picker-options新增了cellClassName方法

原创 jdk1.8新特性,你還不知道就out了!

一、概述     在jdk1.8以後的版本需要收費前,jdk1.8相較於1.7進行了一次大更新,很多不願意付費的公司都只用到jdk1.8,所以學好jdk1.8就顯得格外重要,那麼本文就來着重講一下jdk1.8有哪些新的有趣的東西吧! 二、

原创 我的jdk源碼(二十二):AbstractQueuedSynchronizer類

一、概述     AbstractQueuedSynchronizer類翻譯爲抽象隊列同步器, 提供了一個基於FIFO隊列,可以用於構建鎖或者其他相關同步裝置的基礎框架,也是一個Java提供的底層同步工具類,用一個int類型的變量stat

原创 我的併發編程(一):java鎖的分類

一、概述     在我們的開發工作中,需要利用多線程處理高併發的情況,那麼我們就不可避免的需要用到鎖機制。分類總覽圖如下: 二、鎖的分類     1. 公平鎖與非公平鎖     (1) 公平鎖:在併發環境中,多個線程需要對同一資源進行訪

原创 我的jdk源碼(二十一):ConcurrentHashMap類

一、概述     ConcurrentHashMap類實際上就是爲了解決HashMap的線程不安全而設計的類,ConcurrentHashMap類處於jdk的併發包下,在併發編程中有着非常重要的作用。 二、源碼分析     1. 類的聲明

原创 java請求免費氣象https接口報錯,徹底解決sun.security.validator.ValidatorException: PKIX path building failed的問題!

一、背景     博主在java後端調用氣象數據接口時找到個合適的免費接口,是京東智聯雲旗下的,接口文檔地址如下 https://wx.jdcloud.com/market/datas/26/11065 ,但是在調用的時候報錯sun.se

原创 我的Spring Cloud(一):微服務概述

一、什麼是微服務     微服務是一種架構風格,是一種架構設計方式,一個大型複雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注於完成一件任務並很好地完成該任務。在所有情況下,每個

原创 2020最新免費氣象API調用,還不快來收藏一波!

一、背景     最近博主遇到項目要調用氣象數據,包括實時氣象數據和7天預報氣象數據,網上找了很多博客,要麼接口年代久遠,已經不能用,要麼需要收費。收費是不可能收費的,博主白嫖多年不能低頭。經過很久的查找翻閱,今天給大家帶來幾個免費氣象調

原创 我的jdk源碼(十九):TreeMap類 紅黑樹實現的map結構

一、概述     TreeMap類是一個有序的key-value的集合,與HashMap不同,TreeMap底層只有一個紅黑樹的結構(對紅黑樹不瞭解或者不熟悉的和覺得文字太枯燥的,推薦一個在線演示地址: https://rbtree.ph

原创 教你一招:如何獲取HashMap的容量capacity和閾值threshold

一、背景     在深入學習HashMap等集合類的源碼時,如果對於動態擴容或初始化的代碼理解不透徹,那麼我們需要實時監控HashMap的容量capacity以及閾值threshold的變化,這樣更能直觀的展示出來,便於我們理解源碼。話不

原创 我的jdk源碼(十三):HashMap 一磕到底,追根溯源!

一、前言     HashMap作爲java重要的數據結構之一,是jdk源碼閱讀必看的內容,今天就帶大家一起深入分析,探討jdk1.7和jdk1.8下HashMap的結構有哪些區別變化,並且深入分析產生這些變化的原因,最後再結合近幾年的面