原创 3萬字長文帶你複習JUC

在複習JUC之前,先搞明白什麼情況下才能線程安全,也就是線程安全所具備的條件 原子性 有序性 可見性 那從上面這幾個角度來考慮Synchronized和volatile的區別? Synchronized可以保證原子性,有序性

原创 Spring源碼深度解析(八)——Spring環境的準備化工作

準備就包括了prepareRefresh(),obtainFreshBeanFactory()和prepareBeanFactory(beanFactory)。下面就逐個向下分析 prepareRefresh() 主要是對容器的激

原创 回顧數據結構(Java版)——中綴表達式實現簡單計算器

自定義棧並且使用中綴表達式實現計算器,代碼中有幾個比較容易出錯的點,比如多位數的情況,longNumber的清空等等 package com.wrial.calculator; /* * @Author Wrial * @D

原创 Spring源碼深度解析(三)——使用Aware接口編寫SpringUtils

在瞭解過一段時間源碼後,深深的被折服,就那簡簡單單的ApplicationContext初始化那幾條代碼都夠我研究很長一段時間了。Spring強大的地方很多,它留給了我們很多能夠擴展的地方比如BeanFactoryPostProc

原创 JDK8HashMap源碼

進入這篇文章之前,我想清楚的說一說怎麼去理解HashMap源碼。它先是使用的hash算法,那麼哈希算法需要注意的那就是怎麼hash,怎麼減少衝突,怎麼避免衝突。然後是Map,Map是存儲這些<K,V>結構的Entity,那麼Ha

原创 複習八大排序

這篇文章用來複習一下數據結構中常提到的八大排序和三大查找算法 八大排序 八大排序都有哪些? 八大排序按照種類可以分爲以下幾種: 交換排序:冒泡,快排 插入排序:直接插入,希爾排序 選擇排序:直接選擇,堆排 歸併排序 基數排序

原创 複習JVM

JVM概述 簡介 JVM全稱Java Virtual Machine,也就是Java虛擬機,目前大多數的Java虛擬機都是HotSpot。JVM它就包含在JRE(Java Runtime Environment)中。 說到這就不免

原创 重學Netty(四)——進一步瞭解Netty的組件及其作用

在上一篇文章簡單的編寫了EchoServer和EchoCLient,接下來就對這些常用組件進行進一步的瞭解 ByteBuf 從開始學習Java網絡編程開始,不知道大家有沒有發現API所規定的的數據傳輸最小單元就是字節,比如NI

原创 Spring源碼深度解析(五)——Spring中的常用後處理器和擴展器

Spring的後處理器的作用是什麼?能幹什麼?有多強大?讀完就瞭解了。可以這麼說吧,Spring中Bean的初始化基本就是圍着後處理器來完成的功能強化,比如AOP也就藉助於後處理器完成的。 BeanPostProcessor B

原创 Spring源碼深度解析(十)——Spring內置後置處理器哪來的

今天在看源碼的時候,有些後置處理器莫名其妙就加了進來,因此我就看看它是從哪來的? Spring內部會加載的選項如下 /** * Register all relevant annotation post processors

原创 重學Netty(一)——簡單回顧BIO及網絡編程

BIO bio也叫同步阻塞IO,位於java.io包下,也就是面向數據流的IO(Stream) 它的整體架構如下圖所示 可以從上圖看出除去文件系統,剩下的就是BIO,可以按照讀寫單元將它們同意分爲兩類 面向字節流 Inpu

原创 項目小點整體

怎麼實現第三方登錄 現在很多第三方登錄都是使用的,我在項目中使用的是GitHub第三方登錄 第一步先要在GitHub上配置自己的服務器地址和回調的地址 用戶點擊登錄,到ClientServer ClientServer通過red

原创 根據商城首頁需求編寫ES映射

在編寫ES映射前先看看JD商城的檢索頁面,然後根據這個頁面編寫自己的檢索映射,對於這些品牌,品牌屬性和所屬分類都是要保存的 下面這些手機就是根據上面條件檢索出來的 ES數據結構的編寫 那一個檢索的實體中,需要哪些信息呢?哪些是

原创 ES進階語法

在練習語法前,先導入官網中的數據,來進行各種的語法測試 導入數據 samples Elasticsearch語法學習 官方文檔上有詳細的操作過程,就根據官方文檔來進行操作 兩種語法的編寫形式(傾向於第一種,也叫作Query

原创 ElasticSearch安裝及操作

安裝ElasticSearch需要安裝ElasticSearch服務器和一個可視化界面(Kibana),它們的關係就和mysql和mysqlworkbench一樣。 安裝ElasticSearch 先從鏡像倉庫拉一個鏡像過來(