三年前寫(xiě)的文章,最近在整理資料時(shí)發(fā)現(xiàn)這篇沒(méi)發(fā)布過(guò),就順便分享出來(lái),希望能幫到有需要的人。 一點(diǎn)點(diǎn)歷史回顧 ARPAnet Reference Model 1969年11月,美...
三年前寫(xiě)的文章,最近在整理資料時(shí)發(fā)現(xiàn)這篇沒(méi)發(fā)布過(guò),就順便分享出來(lái),希望能幫到有需要的人。 一點(diǎn)點(diǎn)歷史回顧 ARPAnet Reference Model 1969年11月,美...
第一時(shí)間閱讀最新文章[http://www.itdecent.cn/p/d2c22a50608f] 重要的一個(gè)接口和兩個(gè)抽象類(lèi) 在NIO中,有一個(gè)接口和兩個(gè)抽象類(lèi)是我們需要...
1. 前言 任意一個(gè)Java對(duì)象,都有一組監(jiān)視器方法(定義在java.lang.Object上),主要包括wait()、wait(long timeout)、notify()...
01 初識(shí)線程池 我們知道,線程的創(chuàng)建和銷(xiāo)毀都需要映射到操作系統(tǒng),因此其代價(jià)是比較高昂的。出于避免頻繁創(chuàng)建、銷(xiāo)毀線程以及方便線程管理的需要,線程池應(yīng)運(yùn)而生。 1.1 線程池優(yōu)...
前言 我們知道, 在java開(kāi)發(fā)中, .java文件會(huì)被編譯超成一個(gè)個(gè).class文件, 最終被JVM加載和運(yùn)行. 大致流程圖如下 什么是類(lèi)的加載 我們寫(xiě)的java文件保存...
1|0前言 現(xiàn)如今很多系統(tǒng)都會(huì)基于分布式或微服務(wù)思想完成對(duì)系統(tǒng)的架構(gòu)設(shè)計(jì)。那么在這一個(gè)系統(tǒng)中,就會(huì)存在若干個(gè)微服務(wù),而且服務(wù)間也會(huì)產(chǎn)生相互通信調(diào)用。那么既然產(chǎn)生了服務(wù)調(diào)用,就...
實(shí)現(xiàn)熔斷降級(jí) 在分布式系統(tǒng)中,網(wǎng)關(guān)作為流量的入口,因此會(huì)有大量的請(qǐng)求進(jìn)入網(wǎng)關(guān),向其他服務(wù)發(fā)起調(diào)用,其他服務(wù)不可避免的會(huì)出現(xiàn)調(diào)用失?。ǔ瑫r(shí)、異常),失敗時(shí)不能讓請(qǐng)求堆積在網(wǎng)關(guān)上...
前言 執(zhí)行引擎是 Java 虛擬機(jī)最核心的組成部分之一?!柑摂M機(jī)」是相對(duì)于「物理機(jī)」的概念,這兩種機(jī)器都有代碼執(zhí)行的能力,區(qū)別是物理機(jī)的執(zhí)行引擎是直接建立在處理器、硬件、指令...
一、synchronized方式 1、添加在靜態(tài)方法上:則是對(duì)該class對(duì)象加鎖,所以盡量不要在同一個(gè)類(lèi)中添加多個(gè)synchronized方法,避免產(chǎn)生鎖競(jìng)爭(zhēng)導(dǎo)致的性能問(wèn)題...
JMM把happens-before 要求禁止的重排序分為了下面兩類(lèi)。 會(huì)改變程序執(zhí)行結(jié)果的重排序。 不會(huì)改變程序執(zhí)行結(jié)果的重排序。JMM對(duì)這兩種不同性質(zhì)的重排序,采取了不同...
類(lèi)加載的時(shí)機(jī) 隱式加載 new 創(chuàng)建類(lèi)的實(shí)例,顯式加載:loaderClass,forName等訪問(wèn)類(lèi)的靜態(tài)變量,或者為靜態(tài)變量賦值調(diào)用類(lèi)的靜態(tài)方法使用反射方式創(chuàng)建某個(gè)類(lèi)或者...
一、什么是分布式事務(wù) 分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。一個(gè)大的操作由 N 多的小的操作共同完成。...
jmc:Java Mission Control 使用 JMC可以監(jiān)視和管理 Java 應(yīng)用程序,不會(huì)導(dǎo)致相關(guān)工具類(lèi)的大幅度性能開(kāi)銷(xiāo),它使用為 Java 虛擬機(jī) (JVM) ...
代理模式是在不修改原有代碼邏輯的情況下,對(duì)原有代碼邏輯增強(qiáng)的一種方式,要了解什么是動(dòng)態(tài)代理,首先要知道什么是靜態(tài)代理。 一、靜態(tài)代理 假設(shè)一種場(chǎng)景,一個(gè)汽車(chē)類(lèi)(Car)有一個(gè)...
JVM的簡(jiǎn)化架構(gòu) 運(yùn)行時(shí)數(shù)據(jù)區(qū) 包括:程序計(jì)數(shù)器(PC寄存器)、Java虛擬機(jī)棧、Java堆、方法區(qū)、運(yùn)行時(shí)常量池、本地方法棧等等。 PC 寄存器,也叫程序計(jì)數(shù)器 1、JVM...
一、并發(fā)編程特性 1、原子性:一個(gè)操作要么成功要么失敗,中間不會(huì)中斷 2、可見(jiàn)性:多個(gè)線程同時(shí)訪問(wèn)某個(gè)變量,當(dāng)變量發(fā)生修改,其他線程可以立即看到被修改的值 3、有序性:代碼按...
java線程的創(chuàng)建非常昂貴,需要JVM和OS(操作系統(tǒng))互相配合完成大量的工作。而java高并發(fā)頻繁的創(chuàng)建和銷(xiāo)毀線程的操作是非常低效的,如何降低java線程的創(chuàng)建成本,就必須...
一、synchronized鎖定的目標(biāo) 如圖所示,非常明了了,歸根結(jié)底,synchronized鎖定的既不是代碼塊、也不是一個(gè)方法,而是一個(gè)對(duì)象:方法鎖鎖定的是當(dāng)前類(lèi)的實(shí)例對(duì)...