原创 022.自定義註解

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 註解是Jdk1.5新增新技術。很多框架爲了簡化代碼,都會提供有些註解。 可以理解爲插件,是代碼級別的插件,在類的方法上寫:@XXX,就是在代碼上插入了一個插件

原创 021.使用反射,編寫SpringIOC

什麼是SpringIOC就是把每一個bean(實體類)與bean(實體類)之間的關係交給第三方容器進行管理。 而不是傳統的在你的對象內部直接控制。SpringIOC實現原理讀取bean的XML配置文件使用beanId查找bean配置,並

原创 016.多線程-線程池的四種創建方式

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 https://blog.csdn.net/qwdafedv/article/details/84256291 前言爲什麼要用線程池經常創建、銷燬 線程,將是對

原创 015.多線程-併發隊列

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 在併發隊列上JDK提供了兩套實現, 一個是以ConcurrentLinkedQueue爲代表的高性能隊列, 一個是以BlockingQueue接口爲代表的阻

原创 012.多線程-interrupt線程的中斷

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 interrupt()中斷線程, 具體使用場景可以查看下面的源碼以及註釋 /** * 中斷線程 * * 除非當前線程中斷自

原创 013.多線程-ThreadLocal

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 爲每一個線程提供一個局部變量。code of demo:創建三個線程,分別打印遞增的IDS錯誤demopackage cn.qbz.thread; /**

原创 011.多線程-lock鎖

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 類似於上一篇使用synchronized實現生產者與消費者間的通信, 這裏使用lock鎖來實現。package cn.qbz.thread; import j

原创 009.多線程-AtomicInteger

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 package cn.qbz.thread; import java.util.concurrent.atomic.AtomicInteger; publ

原创 010.多線程-線程間通信

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 多線程之間的通信,其實就是多個線程同時操作(讀+寫)同一個資源。安全問題: 當線程在讀取資源的過程中,寫線程操作了資源, 導致讀線程讀取的數據,一部分是寫之

原创 007.多線程-Java內存模型

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 https://blog.csdn.net/qwdafedv/article/details/84074639 Java內存模型 ( Java Memory M

原创 008.多線程-synchronized鎖

版權聲明:本文爲博主原創文章,允許轉載,請標明出處。 爲了解決線程安全問題, 我們的做法是:不要讓多個線程同時對一個全局變量作寫的操作。常用的做法就是加鎖,來實現線程的同步。 自動鎖synchronized和手動鎖lock

原创 linux 安裝jenkins

1.下載deb包wget http://upyun.qubianzhong.cn/file/java/jenkins_2.138.3_all.deb2.安裝sudo dpkg -i jenkins_2.138.3_all.deb如果遇到下

原创 ubuntu 安裝 jdk8

1.下載jdk 進入當前用戶目錄 cd ~ 創建soft文件夾 mkdir soft 下載jdk wget http://upyun.qubianzhong.cn/file/java/jdk-8u191-linux-x64.

原创 001.多線程-進程與線程的區別

什麼是進程?顧名思義,就是進行中的程序,也就是運行中的程序。我們打開電腦的任務管理器可以看到: 此時,運行中的360瀏覽器,Google瀏覽器等都是獨立的一個進程,他們擁有相應的系統資源,比如:CPU,內存,磁盤等。 但是進程間的

原创 002.多線程-爲什麼要使用多線程

簡單來說就是爲了提高效率在單核CPU中,多線程主要是爲了降低阻塞。 多線程的併發,其實是一種“僞並行”。 在每個時刻,真正執行的只有一個線程。 但是,由於多線程減少了等待IO操作(比如:磁盤、網絡、數據庫等)時間, 所以,多線程大大