原创 【JVM】方法字節碼signature和descriptor的區別

一、概述     在用asm或javassist動態生成字節碼的時候,需要了解字節碼的內容。     descriptor:主要是對方法參數和返回值進行描述;     signature:泛型中才會將該屬性編譯進字節碼文件,JDK 1.5

原创 【持久層】java程序猿的JDBC知識點

聲明:本文只是JDBC和數據庫的一個知識路線圖,只是給出了一個大概的學習結構,很多東西提到了但是沒有細節,需要自行豐富。 一、基本操作     JDBC的基本操作,總結起來就是“註冊驅動、獲取連接、獲取執行對象並執行SQL、獲取結果集並

原创 【併發編程】CPU cache結構和緩存一致性(MESI協議)

一、cache     cpu cache已經發展到了三級緩存結構,基本上現在買的個人電腦都是L3結構。 1. cache的意義     爲什麼需要CPU cache?因爲CPU的頻率太快了,快到主存跟不上,這樣在處理器時鐘週期內,CPU

原创 【J2SE】爲什麼靜態內部類的單例可以實現延遲加載

一、單例     單例是一個常見的設計模式,常見有四種方式來實現,即懶漢式、餓漢式、枚舉和靜態內部類實現,這個模式的本質是爲了控制內存中某個類的實例數量。     懶漢式採用懶加載,時間換空間,因此需要注意獲取實例時的併發安全問題,即便正

原创 【J2SE】這纔是java虛引用(PhantomReference)

一、java.lang.ref     java.lang.ref包規範(參看JDK API中所述內容,本文就不貼出來了)有幾個點很重要。     1. 這個包中的類使得應用程序可以與JVM垃圾收集器進行一些交互;     2. 引用的可

原创 【JVM】異常和return

        參照下文字節碼對應來看,環境JDK 8. package exception; /** * 1. 當只有try塊中有return且能正常返回的時候,return的value被存放到局部變量表中,然後執行完finally

原创 【編解碼】web整站中涉及的編碼原理淺析

一、問題範圍 1.1 客戶端 1. 瀏覽器地址 2. 表單提交 3. 超鏈接 4. js 5. ajax 6. cookie或請求頭 7. js文件編碼 1.2 服務端 1. tomcat連接器 2. request.getInputS

原创 【mybatis】mybatis數據源源碼剖析(JNDI、POOLED、UNPOOLED)

一、概述      二、創建     mybatis數據源的創建過程稍微有些曲折。     1. 數據源的創建過程;     2. mybatis支持哪些數據源,也就是dataSource標籤的type屬性可以寫哪些合法的參數?    

原创 【IO】getResourceAsStream小記

    J2SE中資源的加載,隸屬IO的範疇,這是一個老生常談的問題。     1. 先看一個相關測試的小demo,其資源和項目結構如下圖。     2. 測試源碼及註釋如下,這一部分請集合下文分析來看。 package cn.wxy

原创 【併發編程】CPU流水線的探祕之旅

       原文鏈接:點擊打開鏈接        英文原文:A Journey Through the CPU Pipeline 編譯:@deuso_ICT    作爲程序員,CPU 在我們的工作中扮演了核心角色,因此瞭解處理器

原创 【併發編程】Java中斷機制——協作式中斷含義及應用

一、概要 本文試圖對以下內容進行闡述和說明:     1. Java中斷是協作式中斷,“協作式中斷”的含義;     2. Java中斷並不是立即響應,那麼線程什麼時候中斷?又在什麼時候響應中斷?如何響應中斷? 二、詳解 1. 協作

原创 【併發編程】java.lang.Thread.UncaughtExceptionHandler

一、有什麼用     當一個線程拋出異常,如果沒有顯式處理(即try catch),JVM會將該異常事件報告給該線程對象的java.lang.Thread.UncaughtExceptionHandler,如果沒有設置UncaughtEx

原创 【HTTP】http重定向301/302/303/307

一、概述     重定向常常和請求轉發放在一起討論(前者是兩次不相關的請求,後者是一次請求服務器端轉發),然而本文並不討論兩者的區別,而是HTTP 1.0規範和HTTP 1.1規範中關於重定向的區別,以及實際使用中的情況。     重定向

原创 【shiro】UsernamePasswordToken中char[]替代String的安全性

        shiro中UsernamePasswordToken類的源碼中有一段註釋很有意思。 * <p>Note that this class stores a password as a char[] instead of

原创 【Mybatis】mybatis插件源碼分析

一、基本概要     參見mybatis官方文檔:點擊打開鏈接     1. 快速開發;      2. 插件原理實現的主要技術和思想;     3. 爲什麼插件只支持Executor、StatementHandler、ResultSet