原创 實戰Java高併發程序設計-06 Java併發包併發集合

ConcurrentHashMap 這是一個高效的併發hashmap,可以理解爲一個線程安全的hashmap。 CopyOnWriteArrayList 這是一個線程安全的List,在讀多寫少的場合,這個list性能非常好,遠遠好

原创 實戰Java高併發程序設計-07原子操作

悲觀與樂觀 對於併發而言,鎖是一種悲觀策略。總是假設每一次臨界區操作都會產生衝突,因此,必須每次操作都小心翼翼。如果有多個線程訪問臨界區資源,就犧牲性能讓線程進行等待,使得線程阻塞。而無鎖是一種樂觀的策略,它會假設對資源的訪問時沒

原创 zookeeper學習記錄-01分佈式架構

前言 隨着計算機系統規模變得越來越大,將所有業務單元集中部署在一個或者若干個大型機 上的體系結構物,已經越來越不能滿足當今計算機系統,尤其是大型互聯網系統的快速發展,各種靈活多變的系統架構模型層出不窮。同時,隨着微型計算機的出 現

原创 Java加密與解密學習記錄01-加密分類

對稱密碼 採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱爲對稱加密,也稱爲單密鑰加密。 工作過程 甲和乙是一對生意搭檔,他們住在不同的城市。由於生意上的需要,他們經常會相互之間郵寄重要的貨物

原创 實戰Java高併發程序設計-05 Java併發包線程池

概念 線程的創建與銷燬都需要銷燬資源,爲了避免頻繁的創建與銷燬線程,可以讓創建的線程進行復用。類似數據庫連接池的概念, Java中的線程池 Java通過Executors提供四種線程池,分別爲: newCachedThreadP

原创 實戰Java高併發程序設計-02幾個重要概念

同步與異步 概念 同步和異步通常用來形容一次方法調用。同步方法調用一旦開始,調用者必須等到方法調用完成並返回後,才能繼續後續的工作。異步方法調用更像一個消息傳遞,被調用之後,調用者馬上開始後續工作。而異步方法通常在另外一個線程中“

原创 Java加密與解密學習記錄02-Base64

概述 Base64編碼,是我們程序開發中經常使用到的編碼方法。它是一種基於用64個可打印字符來表示二進制數據的表示方法。它通常用作存儲、傳輸一些二進制數據編碼方法!也是MIME(多用途互聯網郵件擴展,主要用作電子郵件標準)中一種可

原创 nginx學習記錄02-配置說明

基本配置 用於調試定位問題的配置 daemon on|off 是否以守護進程的方式運行nginx,默認on master_process on|off 是否以master/worker的方式工作 error_log path le

原创 深入I/O學習記錄-01java I/O工作機制

概述 I/O在web中隨處可見,網絡傳輸,文件讀取 java I/O分類 基於字節操作的I/O : inputStream 和 outputStream 基於字符操作的I/O : Writer 和 Reader 基於磁盤操作的I/

原创 深入javaweb學習記錄-01web請求過程

web2.0時代的到來,互聯網的網絡架構已經逐步替代傳統C/S架構. B/S架構的好處 1 客戶端使用統一的瀏覽器,瀏覽器具有統一性,不需要配置,使用簡單。 2 服務端基於統一的HTTP。 簡化的開發 B/S網絡架構概述 B

原创 spring4學習記錄07-調用遠程服務RPC(同步)

概念 遠程調用與本地調用的區別在於距離,程序內部直接調用叫做本地調用,一個程序訪問另外一個程序提供的服務就叫做遠程調用。 類似於人與人之間的交流,兩個人在會議室討論一個話題,這種面對面的形式就是本地交流。而如果我們拿起電話跟另外

原创 實戰Java高併發程序設計-03 Java線程

概念 線程的生命週期 線程的狀態定義在 java.lang.Thread.State 中 NEW 創建狀態並未執行,通過start()方法開始線程執行,進入RUNNABLE RUNNABLE 運行狀態 BLOCKED 阻塞狀

原创 深入I/O學習記錄-02java NIO工作機制

爲什麼需要NIO 標準IO 也就是 阻塞I/O(後面統一稱爲I/O),不管是網絡I/O還是磁盤I/O數據寫(outputStream)或者讀(inputStream)都會存在阻塞,一旦出現了阻塞,線程將失去cpu的使用權。在網絡I

原创 實戰Java高併發程序設計-01歷史概述

摩爾定律的失敗 摩爾定律是由英特爾創始人之一的戈登*摩爾提出來的,內容爲:集成電路上可容納的電晶體數目,大約每隔24個月就會增加一倍,這是芯片性能會提高一倍。 說的直白一點就是沒24個月,我們的計算機性能就能翻一番。 但是摩爾

原创 Java加密與解密學習記錄06-數字簽名算法

概述 在超時購買東西刷銀行卡支付時,我們都會簽下自己的名字,這種行爲稱之爲 手寫簽名 。簽名與使用者一一綁定,稱爲防止使用者否認的一種手段。如果使用者對自己的行爲表示質疑,可以鑑定簽名是否一致,判斷簽名是否有效。 數字簽名是計算