原创 HashMap、ConcurrentHashMap、Hashtable簡單分析以及簡單實現HashMap

HashMap分析: 1.根據鍵的hashCode值存儲數據,大多數情況下可以直接定位到它的值,因而具有很快的訪問速度。 2.HashMap非線程安全(併發情況下put操作可能會引起死循環,因爲多線程會導致HashMap的Entry鏈表形

原创 EventBus簡析

文章目錄一、概述二、觀察者設計模式1、目的2、應用實例3、代碼三、EventBus使用1、引入依賴2、示例3、注意事項4、帶來的問題5、原理圖6、注意四、源碼分析1、構造方法2、訂閱者(register)3、發佈者(post) 一

原创 Java內存模型

文章摘自:Java併發編程的藝術 方騰飛 魏鵬 程小明 著 Java內存模型基礎 線程通信與同步: 在命令式編程中,線程之間的通信機制有兩種:共享內存和消息傳遞。 在共享內存的併發模型中,線程之間共享程序的公共狀態,通過寫-讀內存中的

原创 正向代理與反向代理、nginx的負載均衡與高可用

正向代理: 舉例: 我訪問不了某網站,但是我能訪問一個代理服務器,這個代理服務能訪問我不能訪問的網站,於是我連上代理服務,告訴他我要訪問的那個網站內容,代理服務器取回來返回給我。 用途: 1.訪問原來無法訪問的資源如google 2.可以

原创 scheduleAtFixedRate與schedule區別

schedule和scheduleAtFixedRate的區別: 如果指定開始執行的時間在當前系統運行時間之前,scheduleAtFixedRate會把已經過去的時間也作爲週期執行(追趕性)而下一次執行的時間是參考上一次執行結束的時間,

原创 99首英文歌

  1 沉默之聲 The Sound Of Silence 2 愛的細語There's A Kind Of Hush 3 陽光季節 Seasons In The Sun 4 唱首憂鬱的歌 Song Sung Blue 5 在老橡樹上系黃絲

原创 HashMap、ConcurrentHashMap、Hashtable簡單分析

HashMap分析: 1.根據鍵的hashCode值存儲數據,大多數情況下可以直接i黨委到它的值,因而具有很快的訪問速度。 2.HashMap非線程安全(併發情況下put操作可能會引起死循環,因爲多線程會導致HashMap的Entry鏈表

原创 嘗試模擬實現AOP(二)

實現思路請看:嘗試模擬實現AOP(一) 源代碼:https://github.com/gaoyihua/mySpring

原创 嘗試模擬實現RMI(二)

實現思路請看:嘗試模擬實現RMI(一) 源代碼:GitHub

原创 嘗試模擬實現IOC(二)

實現思路請看:嘗試模擬實現IOC(一) 源代碼:GitHub

原创 Java設計模式—中介模式(Mediator)

目錄 目的 應用實例 代碼   目的 利用一箇中介處理不同類間的交互,鬆耦合。 應用實例 MVC 框架,其中C(控制器)就是 M(模型)和 V(視圖)的中介。 代碼 /** * describe:中介 * * @aut

原创 Java中移位運算以及int、long和byte的轉化

移位運算符 運算符 含義 << 左移運算符,將運算符左邊的對象向左移動運算符右邊指定的位數(在低位補0) >> "有符號"右移運算 符,將運算符左邊的對象向右移動運算符右邊指定的位數。使用符號擴展機制,也就是說,如果值爲正,則在高位補0,

原创 Java設計模式—原型模式

目錄 目的 應用實例 代碼   目的 原型模式屬於對象的創建模式。通過給出一個原型對象來指明所有創建的對象的類型,然後用複製這個原型對象的辦法創建出更多同類型的對象。即用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。

原创 Java虛擬機類加載過程

文章摘自:深入理解Java虛擬機 第二版 周志明著  本文主要講解一個Java虛擬機中類加載的全過程,也就是加載、驗證、準備、解析和初始化這5個階段所執行的具體動作。 加載 首先,加載是類加載Class Loading過程的一個階段。

原创 “重載”和“重寫”在Java虛擬機中如何確定正確的目標方法

文章摘自:深入理解Java虛擬機 第二版 周志明著  靜態分派 請看如下代碼: package com.gary.test.overload_overwrite; /** * 方法靜態分派演示 * @author gary *