原创 Java IO 底層原理
引言 一提到 IO,就繞不開對 page cache(頁緩存)的討論,頁緩存是操作系統爲了提升磁盤讀寫性能在應用進程與磁盤之間加設的提供預讀和異步刷盤機制的內核緩衝區。java 的 IO 操作是建立在操作系統的 IO 之上的,從最
原创 RandomAccessFile、FileChannel和MappedByteBuffer
一、RandomAccessFile 簡單示例: import java.io.IOException; import java.io.RandomAccessFile; /** * @author debo * @date
原创 Ubuntu 20.04安裝後需要做的事情
1、支持多指手勢和滑動切換應用 參考這篇文章 2、把主題改爲暗黑主題 設置–>外觀–>Dark 3、設置系統完全暗黑 默認的暗黑主題黑的不徹底,比如輸入法候選框和頂部通知欄都還是白色的,需要做如下處理變成全黑: 3.1 安裝gno
原创 WeakReference弱引用
示例代碼如下: import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; /
原创 (三)CXF發佈WebService服務
1.導入CXF相關jar包,我是用maven管理工程的,所以直接貼出CXF的maven依賴 <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-fron
原创 Ubuntu觸控板支持多指手勢和滑動切換應用
用過蘋果筆記本的同學肯定會被它那極爲方便的觸控板多指手勢操作所吸引,特別是左右滑動觸控板就能在多個應用界面來回切換這個功能用起來真的太爽了!以至於鼠標對於蘋果筆記本都是多餘的。其實Ubuntu也是支持在多個應用之間來回切換的,效果
原创 聊一聊volatile的可見性和有序性
衆所周知,volatile無法保證原子性,但是可以保證可見性和有序性,今天就結合實際案例聊一聊volatile的可見性和有序性,同時詳細說一下happens-before原則中關於volatile的部分,最後說一下稍帶同步的概念。
原创 詳述DirectByteBuffer直接內存
什麼是直接內存 我們都知道Java程序是運行在Java虛擬機中的,Java對象的分配一般情況下是在虛擬機的堆內存空間,俗稱堆內內存。這一塊的內存垃圾回收是受JVM控制的,程序員無需爲此處的內存回收而操心。Java對象除了能分配在堆
原创 (二)JDK原生支持的WebService協議文件分析及個性化定製
1.分析協議文件 上一章發佈了WS服務,於是在瀏覽器地址欄輸入http://localhost:8888/msg?wsdl訪問,將得到如下協議文件,該協議文件不僅是WS客戶端調用程序員參考手冊,同時也是生成WS客戶端調用代碼必不可少的依據
原创 (一)JDK原生支持的WebService
1.接口 package cn.cjc.ws; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; @WebService // jdk1.6.0_22版本以
原创 PhantomReference虛引用
示例代碼如下: import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue;
原创 Docker中安裝redis主從節點和sentinel集羣
一、準備工作 需要先創建一個docker網絡,類型爲橋接網絡,後面會將redis主從節點和sentinel集羣都加入到這網絡中,目的是保證全部節點的相互連通。 # 創建名稱爲redis-net的橋接網絡 docker networ
原创 SoftReference軟引用
示例代碼: import java.lang.ref.SoftReference; /** * @author chenjc * @since 2020-01-13 */ public class SoftReferenc
原创 Docker中安裝redis cluster集羣
一、新建一個docker橋接網絡 # 創建名稱爲redis-cluster-net的橋接網絡 docker network create -d bridge redis-cluster-net 二、部署redis節點 參照我的這
原创 ClassLoader雙親委派機制在Java SPI中的應用
概述 Java SPI機制指的是java來定義接口,然後由不同的廠商去實現這個接口,比如數據庫的驅動程序就是由不同廠商實現的,MySQL的驅動和Oracle的驅動是不同的,但是它們都實現了java.sql.Driver接口。下面就