原创 常用框架Spring之面向切面編程

本篇介紹Spring的AOP,內容皆總結摘抄自《Spring實戰》,僅作筆記。 在軟件開發中,散佈於應用多處的功能被稱爲橫切關注點。通常來講,這些橫切關注點從概念上是與應用的業務邏輯相分離的,但往往會直接嵌入到應用的業務邏輯中。把這些橫切

原创 JVM之運行時棧幀結構與方法調用

本篇文章主要從概念模型的角度介紹虛擬機的方法調用和字節碼執行,以下大部分內容是筆者在《深入理解Java虛擬機》摘抄總結來的,旨在記筆記加深印象。 在Java虛擬機規範中指定了虛擬機字節碼執行引擎的概念模型,這個概念模型稱爲各種虛擬機執行引

原创 數據庫之關係模型介紹

本篇文章是數據庫系列的第一篇文章,本系列文章是筆者在學習《數據庫系統概念》這本書總結的內容,使用的數據庫是MySQL。 關係數據庫的結構 關係數據庫由表(table)的集合構成,每個表由唯一的名字。表中的一行代表了一組值之間的聯繫,而表就

原创 常用框架之Spring MVC

本篇介紹Spring MVC,部分內容摘抄自《Spring實戰》,僅作筆記。 Spring MVC基於模型-視圖-控制器(Model-View-Controller,MVC)模式實現,能夠幫我們構建像Spring框架那樣靈活和松耦合的We

原创 常用框架Spring之裝配Bean

本篇介紹Spring中裝配Bean,內容皆總結摘抄自《Spring實戰》,僅作筆記。 在Spring中,對象無需自己查找或創建與其相關聯的其他對象。容器負責將需要相互協作的對象引用賦予各個對象。創建應用對象之間協作關係的行爲稱爲裝配。這也

原创 常用框架Spring之Spring簡介

本篇是對Spring框架的簡介,部分內容總結摘抄自《Spring實戰》,僅作筆記。 Spring是一個爲了解決企業級應用開發的複雜性而創建的開源框架。爲了降低Java開發的複雜性,Spring採取了以下4中關鍵策略: 基於POJO的輕量級

原创 併發編程之Lock及其實現類

本篇介紹Lock接口、重入鎖、讀寫鎖和Condition等,部門內容總結摘抄自《Java併發編程的藝術》和《Java併發編程實戰》,僅作筆記。 Lock 鎖是用來控制多個線程方文共享資源的方式,一般來說,一個鎖能夠防止多個線程同時訪問共享

原创 數據庫之簡單SQL(二)

本篇文章繼數據庫之簡單SQL(一),繼續介紹SQL的基本結構和概念。 集合運算 SQL作用在關係上的union、intersect和except運算對應於數學集合論中的∪、∩和-運算。但MySQL只支持交運算,因此此處我們只介紹交運算。

原创 Java基礎之靜態代理和動態代理

本篇介紹靜態代理和動態代理。 代理模式也是設計模式中的一種,主要解決的是在直接訪問對象時帶來的問題,其目的是爲其他對象提供一個代理來控制對目標對象的訪問。代理類爲委託類預處理消息,過濾消息並轉發消息,以及消息被委託類執行後的後續處理。 代

原创 併發編程之原子操作類

本篇介紹Java中的13個原子操作類,內容皆總結摘抄自《Java併發編程的藝術》,僅作筆記。 當程序更新一個變量時,如果多線程同時更新這個變量,可能得到期望之外的值。通常我們使用synchronized來解決這個問題,synchroniz

原创 併發編程之AQS

本篇文章介紹AbstractQueuedSynchronized,內容皆總結摘抄自《Java併發編程的藝術》和《Java併發編程實戰》,僅作筆記。 AQS介紹 隊列同步器AbstractQueuedSynchronizer是用來構建鎖或其

原创 併發編程之併發編程基礎

本篇介紹Java併發編程基礎,內容皆總結摘抄自《Java併發編程的藝術》,僅作筆記。 線程簡介 現代操作系統在運行一個程序時,會爲其創建一個進程。現代操作系統調度的最小單元是線程,也叫輕量級進程,在一個進程裏可以創建多個線程,這些線程都擁

原创 併發編程之對象的共享

本篇文章介紹對象的共享,內容皆總結摘抄自《Java併發編程實戰》和《Java併發編程的藝術》,僅作筆記。 同步代碼塊和同步方法可以確保以原子的方式執行操作,而synchronized不僅可以用於實現原子性或確定臨界區,它還可以保證內存可見

原创 併發編程之線程安全性以及內置鎖

本章介紹線程的安全性和內置鎖,內容皆是筆者學習《Java併發編程實戰》或《Java併發編程的藝術》總結摘抄而來,僅作筆記。 當做個線程訪問某個類時,不管運行時環境採用何種調度方式或者這些線程將如何交替執行,並且在主調代碼中不需要任何額外的

原创 基本工具之Git

本篇介紹Git,內容皆總結摘抄自《Pro Git》,僅用作學習筆記。 版本控制 版本控制(Version Control Systems,簡稱VCS)是一種記錄一個或多個文件內容變化,以便來查閱特定版本修訂情況的系統。使用版本控制系統可以