原创 我的併發編程(二):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的結構有哪些區別變化,並且深入分析產生這些變化的原因,最後再結合近幾年的面