原创 喫透Java併發六:ThreadLocal

一、ThreadLocal簡介 ThreadLocal 用一種存儲變量與線程綁定的方式,在每個線程中用自己的 ThreadLocalMap 安全隔離變量,爲解決多線程程序的併發問題提供了一種新的思路。ThreadLocal不是爲了

原创 Spring框架八、Spring IOC重要接口

我們使用Spring的時候,總是定義一個applicationContext.xml的文件,然後裏面會定義各種bean,那麼Spring框架是怎麼對這些外部資源文件訪問的呢?我們下面首先來看Resource組件。 一、Resour

原创 喫透Java併發八:locks之 Lock、ReadWriteLock、Condition接口

一、Lock接口 在JDK1.5之前,我們加鎖只能通過synchronized關鍵字。在多線程情況下,一段代碼被synchronized關鍵字修飾,那麼同一時刻只能被一個線程訪問,其它線程都必須等待該線程釋放鎖之後纔有機會獲取鎖進

原创 喫透Java併發九:locks之AbstractQueuedSynchronizer(AQS)

一、AQS綜述 AbstractQueuedSynchronizer抽象類(以下簡稱AQS)是整個java.util.concurrent包的核心。在JDK1.5時,Doug Lea引入了J.U.C包,該包中的大多數同步器都是基於

原创 喫透Java併發十二:locks之AQS的Conditon功能

一、概述 本章將繼續以ReentrantLock的調用爲例,說明AbstractQueuedSynchronizer提供的Conditon等待功能。 J.U.C包提供了Conditon接口,用以對原生的Object.wait()、

原创 喫透Java併發十三:locks之ReentrantLock

一、ReentrantLock類簡介 ReentrantLock類,實現了Lock接口,是一種可重入的獨佔鎖,它具有與使用 synchronized 相同的一些基本行爲和語義,但功能更強大。ReentrantLock內部通過內部類

原创 喫透Java併發二十一:併發集合之ConcurrentHashMap(1) 原理

一、ConcurrentHashMap類簡介 ConcurrentHashMap是在JDK1.5時,J.U.C引入的一個同步集合工具類,顧名思義,這是一個線程安全的HashMap。不同版本的ConcurrentHashMap,內部

原创 喫透Java併發十五:線程池框架

一、概述 executors框架是整個J.U.C包中類/接口關係最複雜的框架,真正理解executors框架的前提是理清楚各個模塊之間的關係,高屋建瓴,從整體到局部才能透徹理解其中各個模塊的功能和背後的設計思路。 Executor

原创 喫透Java併發十七:線程池之ScheduledThreadPoolExecutor

一、ScheduledThreadPoolExecutor簡介 我們曾經提到過一種可對任務進行延遲/週期性調度的執行器(Executor),這類Executor一般實現了ScheduledExecutorService這個接口。S

原创 Spring框架三、Spring IOC基本使用

一、spring對象的獲取及屬性賦值方式 People.java package com.bobo.bean; public class People { private int id; private Stri

原创 喫透面試一:DCL單例爲什麼要加volatile

一、什麼是DCL DCL的全拼是double check lock,也就是雙重鎖判斷機制。 二、回顧幾種單例 1、餓漢式 public class SingleInstance { private SingleInstan

原创 喫透Java併發十九:線程池之Fork/Join框架(1) 原理

一、引言 算法領域有一種基本思想叫做“分治”,所謂“分治”就是將一個難以直接解決的大問題,分割成一些規模較小的子問題,以便各個擊破,分而治之。 比如:對於一個規模爲N的問題,若該問題可以容易地解決,則直接解決;否則將其分解爲K個規

原创 Java Web:Servlet高級用法

一、EL表達式 1、傳統方式獲取request中的值 User.java package com.bobo; public class User { private String name; private St

原创 Spring框架四、Spring IOC註解使用

在之前的項目中,我們都是通過xml文件進行bean或者某些屬性的賦值,其實還有另外一種註解的方式,在企業開發中使用的很多,在bean上添加註解,可以快速的將bean註冊到ioc容器。 一、使用註解的方式註冊bean到IOC容器中

原创 Java Web:Servlet用法

一、HttpServletRequest、HttpServletResponse 1、HttpServletRequest HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HTTP請