原创 線程池的研究

什麼是線程池? 諸如web服務器、數據庫服務器、文件服務器和郵件服務器等許多服務器應用都面向處理來自某些遠程來源的大量短小的任務。構建服務器應用程序的一個過於簡單的模型是:每當一個請求到達就創建一個新的服務對象,然後在新的服務對象中爲

原创 ReentrantLock和Synchronized的區別

ReentrantLock可以成爲公平鎖。所謂公平鎖就是讓等待最長的線程最早獲得該鎖(獲得鎖的順序和申請鎖的順序是一致的);與之對應的synchronized是非公平的、當然ReentrantLock也可以成爲非公平鎖;只是公平鎖的性能相

原创 class卸載、熱替換和Tomcat的熱部署的分析

    這篇文章主要是分析Tomcat中關於熱部署和JSP更新替換的原理,在此之前先介紹class的熱替換和class的卸載的原理。一 class的熱替換ClassLoader中重要的方法loadClass       ClassLoad

原创 JAVA線程池的分析和使用

1. 引言 合理利用線程池能夠帶來三個好處。第一:降低資源消耗。通過重複利用已創建的線程降低線程創建和銷燬造成的消耗。第二:提高響應速度。當任務到達時,任務可以不需要等到線程創建就能立即執行。第三:提高線程的可管理性。線程是稀缺資源,

原创 Java中的ReentrantLock和synchronized兩種鎖定機制的對比

多線程和併發性並不是什麼新內容,但是 Java 語言設計中的創新之一就是,它是第一個直接把跨平臺線程模型和正規的內存模型集成到語言中的主流語言。核心類庫包含一個 Thread 類,可以用它來構建、啓動和操縱線程,Java 語言包括了跨線

原创 Tomcat 7最大併發連接數的正確修改方法

這是個很簡單的問題,但是搜了一圈,發現大家都寫錯了。所以這裏總結一下: 幾乎所有的中文網頁都介紹,要修改Tomcat的默認最大併發連接數,應該進行如下設置(實際上這些步驟是錯誤的): ------------------------

原创 Tomcat的classloader

1 - Tomcat的類載入器的結構 Tomcat Server在啓動的時候將構造一個ClassLoader樹,以保證模塊的類庫是私有的 Tomcat Server的ClassLoader結構如下:其中: - Bootstrap -

原创 Jetty 的工作原理以及與 Tomcat 的比較

Jetty 的基本架構 Jetty 目前的是一個比較被看好的 Servlet 引擎,它的架構比較簡單,也是一個可擴展性和非常靈活的應用服務器,它有一個基本數據模型,這個數據模型就是 Handler,所有可以被擴展的組件都可以作爲一個

原创 非常詳細GC學習筆記

這是我公司同事的GC學習筆記,寫得蠻詳細的,由淺入深,循序漸進,讓人一看就懂,特轉到這裏。 一、GC特性以及各種GC的選擇 1、垃圾回收器的特性 2、對垃圾回收器的選擇 2.1 連續 VS. 並行 2.2 併發 VS. st

原创 Effective Java Item7:Avoid Finalizers,解釋爲什麼finalize是不安全的,不建議使用

memory的釋放並不是通過finalize(),因爲finalize不安全而且影響能”。Effective Java一書中也提到:Avoid Finalizers。人都有潛在的叛逆意識,別人給的結論或者制定的規範,除非有足夠的理由說服

原创 Java的NIO以及線程併發

一、NIO的出現        NIO是JDK1.4裏面纔出現的東東,他給大家帶來的最大好處是異步socket。其它file,pipe暫時就不多談了。        在JDK1.4出現之前,如果你需要編寫一個Java服務器,爲了實現異步操

原创 用java的nio技術實現的異步連接池

http://wenku.baidu.com/link?url=2vWQpeSyUQJQtclbYIwULoPe9Rf-UGdeUD0dNY7DhwIMgkVl1PARqmli-tmQckDB7C05asloIJOCN5JbI1BSLUQ

原创 Google Java編程風格指南

January 20, 2014 作者:Hawstein 出處:http://hawstein.com/posts/google-java-style.html 聲明:本文采用以下協議進行授權: 自由轉載-非商用-非衍生-保持署名

原创 (翻譯)什麼是Java的永久代(PermGen)內存泄漏

本文是我對這篇文章的翻譯:What is a PermGen leak? 爲了便於閱讀,我將原文附於此處,翻譯穿插在其中。此外,爲了防止原鏈接在未來某一天失效後,文中的圖片再也看不到的問題,我將原文中的圖片也保存到了本站的服務器上,我

原创 HTTP響應頭之ETag

在HTTP1.1規範中,新增了一個HTTP頭信息:ETag。對Web開發者來說,它是一個非常重要的信息。它是用作緩存使 用的兩個主要的頭信息之一 (另一個是Expires)。除此之外,在REST架構中,它還可以用於控制併發操作(