原创 【高併發】04 線程安全性、併發安全性、可見性

一、線程安全性 1、當多個線程訪問某個類時,不管運行時環境採用何種調度方式或者這些進程將如何交替執行,並且在主調代碼中,不需要任何額外的同步或協同,這個類都能表現出正確的行爲,那麼就稱這個類時線程安全的。 2、原子性 提供了互斥

原创 【高併發】05 線程封閉 ThreadLocal

一、三種方式 1、Ad-hoc 線程封閉: 程序控制實現,最糟糕 2、堆棧封閉:局部變量、無併發問題 3、ThreadLocal線程封閉:特別好的封閉方法 二、代碼 1、ThreadLocal package com.curren

原创 【Java內存模型】03 緩衝

一、爲什麼需要緩衝 1、CPU 的處理頻率太快,主存讀取更不上。處理器時鐘週期內,CPU 常常需要等待主存,浪費資源。 2、cache 的出現是爲了緩解CPU 和內存之間速度不匹配的問題 CPUcachememory 3、由於價格

原创 【編程思想】02 編寫高質量代碼、Java 開發中通用的方法和準則

6、【建議】:覆寫變長方法也循規蹈矩 子類覆寫父類的方法 a: 可以修改bug、提供擴展的業務功能支持 b: 符合開閉原則 滿足條件 a: 重寫方法不能縮小訪問權限 b: 參數列表必須與被重寫方法相同

原创 【tomcat】03 Web服務器機制 之 服務器模型

一、介紹 1、I/O:可以分成阻塞I/O與非阻塞I/O兩大類型。阻塞I/O在做I/O讀寫操作時會使當前線程進入阻塞狀態,而非阻塞I/O則不進入阻塞狀態。 2、線程:單線程情況下由一條線程負責所有客戶端連接的I/O操作,而多線程情況

原创 【tomcat】01 Web服務器機制 之 通信協議

一、、Http 與 Https 1、Http / Https介紹 HTTP是Hyper Text Transfer Protoco(超文本傳輸協議)的縮寫。HTTP協議是用於從Web服務器傳輸超文本到本地瀏覽器的協議,它能使瀏

原创 【tomcat】02 Web服務器機制 之 套接字通信 代碼實現

一、單播 package com.example.tomcat.http; import lombok.extern.slf4j.Slf4j; import java.io.DataInputStream; import ja

原创 【tomcat】04 Servlet規範

一、介紹 百度百科 二、Servlet 接口 1、Servlet規範的核心接口即是Servlet接口,它是所有Servlet類必須實現的接口。 2、Java Servelt API中已經提供了兩個抽象類方便開發者實現Servlet

原创 【tomcat】 01 Web服務器機制 之 通信協議 圖片

1 、http 和 https 2、https 工作流程 3、http 請求/響應 4、請求報文 5、響應報文

原创 Redis學習筆記11、Jedis基礎編程的實踐案例

一、介紹 1、Jedis是一個高性能的Java客戶端,是Redis官方推薦的Java開發工具。 2、要在Java開發中訪問Redis緩存服務器Jedis的項目地址 二、使用 1、Maven的pom文件中增加依賴 ${redis.v

原创 【tomcat】02 Web服務器機制 之 套接字通信

一、介紹 1套接字通信是應用層與TCP/IP協議族通信的中間抽象層,它是一組接口。應用層通過調用這些接口發送和接收數據。一般這種抽象層由操作系統提供或者由JVM自己實現。 套接字抽象層位於傳輸層與應用層之間。類似於設計模式中的門

原创 Redis學習筆記14、 JedisPool連接池學習

一、介紹 1、Jedis開源庫提供了一個負責管理Jedis連接對象的池,名爲JedisPool類,位於redis.clients.jedis包中。爲了防止數據庫連接的頻繁創建、銷燬帶來的性能損耗。 二、JedisPool的配置 J

原创 【tomact】06 Tomcat中的變量及屬性

一、介紹 1、變量及屬性的目的主要是將某些參數剝離出程序,以實現可配置性。在Tomcat中,啓動時會涉及大量環境變量、JVM系統屬性及Tomcat屬性。 2、環境變量在操作系統中配置,也可以在批處理中添加或修改環境變量,在Tomc