原创 6.深入理解java虛擬機--第三部分虛擬機執行子系統----類文件結構

6.1概述 記得在第一節計算機程序課上我的老師就講過:“計算機只認識0和1,所以我們寫的程序需要經編譯器翻譯成由0和1構成的二進制格式才能由計算機執行”。10多年時間過去了,今天的計算機仍然只能識別0和1,但由於最近10年內虛擬機以及大量

原创 Redis 深度歷險: 核心原理和應用實踐

目錄 1.Redis 可以做什麼?  2.基礎:萬丈高樓平地起 ——Redis 基礎數據結構  string (字符串)   list (列表)  hash (字典)  set (集合)  zset (有序列表)   容器型數據結構的通用

原创 3.深入理解kafka:核心設計與實踐原理

目錄   主題與分區 主題的管理 初識KafkaAdminClient 分區的管理 如何選擇合適的分區數 主題與分區 主題的管理 主題的管理包括創建主題、查看主題信息、修改主題和刪除主題等操作。主題的管理並非只有使用 kafka-topi

原创 10.深入理解java虛擬機--第三部分程序編譯與代碼優化----早期編譯優化

10.1 概述 Java語言的“編譯期”其實是一段“不確定”的操作過程,因爲它可能是指一個前端編譯器(其實叫“編譯器的前端”更準確一些)把*.java文件轉變成*.class文件的過程;也可能是指虛擬機的後端運行期編譯器(JIT編譯器,J

原创 8.深入理解java虛擬機--第三部分虛擬機執行子系統----虛擬機字節碼執行引擎

8.1 概述 執行引擎是Java虛擬機最核心的組成部分之一。“虛擬機”是一個相對於“物理機”的概念,這兩種機器都有代碼執行能力,其區別是物理機的執行引擎是直接建立在處理器、硬件、指令集和操作系統層面上的,而虛擬機的執行引擎則是由自己實現的

原创 4.深入理解kafka:核心設計與實戰原理

目錄   日誌存儲 文件目錄佈局 日誌索引 日誌清理 磁盤存儲 深入服務端  協議設計  時間輪 延時操作 控制器 控制器的選舉及異常恢復  日誌存儲 文件目錄佈局 Kafka 中的消息是以主題爲基本單位進行歸類的,各個主題在邏輯上相互獨

原创 5.深入理解java虛擬機--第二部分--- 調優案例分析與實戰

5.1概述 上文介紹了處理Java虛擬機內存問題的知識與工具,在處理實際項目的問題時,除了知識與工具外,經驗同樣是一個很重要的因素。因此本章將與讀者分享幾個比較有代表性的實際案例。考慮到虛擬機故障處理和調優主要面向各類服務端應用,而大部分

原创 3.實戰java高併發程序設計--JDK併發包---3.2

3.2 線程複用:線程池 首先,雖然與進程相比,線程是一種輕量級的工具,但其創建和關閉依然需要花費時間,如果爲每一個小的任務都創建一個線程,則很有可能出現創建和銷燬線程所佔用的時間大於該線程真實工作所消耗的時間的情況,反而會得不償失。 其

原创 7.深入理解java虛擬機--第三部分虛擬機執行子系統----虛擬機類加載機制

代碼編譯的結果是從本地機器碼轉爲字節碼的,是存儲格式發展的一小步,卻是編程語言發展的一大步. 7.1 概述 虛擬機把描述類的數據從Class文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型,這

原创 2.實戰java高併發程序設計--java並行程序基礎

2.1 有關線程你必須知道的事 進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執行實體;在當代面向線程設計

原创 5.深入理解kafka:核心設計與實踐原理

深入客戶端 分區分配策略 Kafka提供了消費者客戶端參數partition.assignment.strategy來設置消費者與訂閱主題之間的分區分配策略。默認情況下,此參數的值爲org.apache.kafka.clients.con

原创 Redis 深度歷險: 核心原理和應用實踐2

目錄 1.應用 9:大海撈針 —— Scan  原理 1:鞭辟入裏 —— 線程 IO 模型  原理 2:交頭接耳 —— 通信協議 原理 3:未雨綢繆 —— 持久化  原理 4:雷厲風行 —— 管道  原理 5:同舟共濟 —— 事務  爲什

原创 4.深入理解java虛擬機--第二部分--- 虛擬機性能監控與故障處理工具

4.1概述 給一個系統定位問題的時候,知識、經驗是關鍵基礎,數據是依據,工具是運用知識處理數據的手段。這裏說的數據包括:運行日誌、異常堆棧、GC日誌、線程快照(threaddump/javacore文件)、堆轉儲快照(heapdump/h

原创 2深入理解kafka:核心設計與實踐原理

目錄   消費者 消費者與消費組 客戶端開發 訂閱主題與分區 反序列化 消息消費 位移提交 控制或關閉消費 指定位移消費  再均衡 消費者攔截器  多線程實現 重要的消費者參數 消費者 消費者與消費組 1.每個消費者都有一個對應的消費組,

原创 1.spring實戰

1.spring爲了降低java開發的複雜性,採取了4種關鍵策略: 基於pojo的輕量級和最小侵入性編程 通過依賴注入和麪向接口實現松耦合 基於切面和慣例進行聲明式編程 通過切面和模板減少樣板式樣板式代碼 2.如果一個對象只通過接口而不是