原创 Spring軟件架構設計原則

1.1 開閉原則 定義: 一個軟件實體(類、模塊和函數)應該對擴展開放,對修改關閉。強調用抽象構建框架,用實現擴展細節。 舉例: 首先創建一個課程接口: public interface ICourse { Integer

原创 第二章 線程基本概念(二)

一、線程簡單操作 1. 創建線程的方式 1)繼承Thread,重寫run()。 public class MyThread extends Thread { public void run() { // 線程邏輯

原创 第五章 線程同步

1. 重入鎖 重入鎖使用java.util.concurrent.locks.ReentrantLock類來實現。 public class ReenterLock implements Runnable{ // 聲明可重入鎖,

原创 第四章 多線程中隱蔽的錯誤

1. 併發下的ArrayList ArrayList是一個線程不安全的容器,多線程使用會導致錯誤,如下面代碼。 public class ArrayListMultiThread { public static ArrayLis

原创 第三章 線程基本概念(三)

1. volatile關鍵字 可以保證在多線程環境下聲明瞭volatile的變量的可見性,即一個線程修改了改變的值,其他變量能夠看到修改後的結果,但是它不能代替鎖,即保證不了原子性。下面的代碼計算i的值,每個線程計數10000,但是10個

原创 Spring常用設計模式-工廠模式

簡單工廠模式 簡單工廠模式是指由一個工廠對象決定創建哪一種產品類的實例。 以課程爲例,假如目前某學院開設Java架構、大數據、人工智能等課程,通常的寫法: public interface ICourse { /** 錄製

原创 第一章 線程基本概念(一)

一、線程基本概念 1. 同步和異步 同步:調用者必須等被調用者返回了結果後,纔可以執行接下來的操作。 異步:調用者無需等到被調用者返回結果後才能執行。被調用者可以異步執行。 2. 併發和並行 併發:某一具體時刻只有一個線程運行,而在一個時

原创 網絡編程(二)

2.1 概述 TCP通信能實現兩臺計算機之間的數據交互,通信的兩端,要嚴格區分爲客戶端(Client)與服務端(Server)。 兩端通信時步驟: 1.先啓動服務端,等待客戶端連接。 2.客戶端主動連接服務器端,連接成功才能通信,服務端不

原创 網絡編程(一)

1.1 軟件結構 C/S結構:全稱Client/Server,是指客戶端/服務器結構,常見的有QQ、迅雷等。 B/S結構:全稱Browser/Server結構,是指瀏覽器和服務器結構。常見的有谷歌、IE瀏覽器。 不論如何,兩種架構都離