開發(fā)工具jupyter,使用的版本基于python3.8 下面是運(yùn)行效果:

三、AOP實(shí)現(xiàn) 前面多次談到AOP,以及我們的Bean是通過原始對(duì)象+代理對(duì)象,這里來看看AOP部分的實(shí)現(xiàn):AOP說到底主要目的不是產(chǎn)生代理對(duì)象,而是要通過代理對(duì)象執(zhí)行方法,...
有了前面關(guān)于反射和動(dòng)態(tài)代理的基礎(chǔ),理解IOC和AOP就相對(duì)簡單了。 一、概述 IOC:控制反轉(zhuǎn)(Inversion of Control,縮寫為IoC),是面向?qū)ο缶幊讨械囊?..
代理可以分為靜態(tài)代理、動(dòng)態(tài)代理,動(dòng)態(tài)代理又可以分為 jvm的動(dòng)態(tài)代理 和 cglib的動(dòng)態(tài)代理。像spring框架的AOP的底層就使用了動(dòng)態(tài)代理的技術(shù)。代理(Proxy)是一...
反射是框架設(shè)計(jì)的靈魂(使用的前提條件:必須先得到代表的字節(jié)碼的Class,Class類用于表示.class文件(字節(jié)碼)) 一、反射的概述 JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)...
前言 現(xiàn)在使用NIO的場景越來越多,很多網(wǎng)上的技術(shù)框架或多或少的使用NIO技術(shù),譬如Tomcat,Jetty。學(xué)習(xí)和掌握NIO技術(shù)已經(jīng)不是一個(gè)JAVA攻城獅的加分技能,而是一...
一、什么是異常 異常:程序在運(yùn)行過程中發(fā)生由于硬件設(shè)備問題、軟件設(shè)計(jì)錯(cuò)誤等導(dǎo)致的程序異常事件。(在Java等面向?qū)ο蟮木幊陶Z言中)異常本身是一個(gè)對(duì)象,產(chǎn)生異常就是產(chǎn)生了一個(gè)異...
概述: 集合類繼承或?qū)崿F(xiàn)自兩個(gè)接口Collection和map。 list、set、queue實(shí)現(xiàn)Collection接口,map類實(shí)現(xiàn)map接口。 Set有HashSet,...
在 Class 文件格式與執(zhí)行引擎這部分中,用戶的程序能直接影響的內(nèi)容并不太多,Class 文件以何種格式存儲(chǔ),類型何時(shí)加載、如何連接,以及虛擬機(jī)如何執(zhí)行字節(jié)碼指令等都是由虛...
在軟件業(yè)發(fā)展的初期,程序編寫都是以算法為核心的,程序員會(huì)把數(shù)據(jù)和過程分別作為獨(dú)立的部分來考慮,數(shù)據(jù)代表問題空間中的客體,程序代碼則用于處理這些數(shù)據(jù),這種思維方式直接站在計(jì)算機(jī)...
一、內(nèi)存模型 1. 主內(nèi)存與工作內(nèi)存 虛擬機(jī)運(yùn)行時(shí)內(nèi)存區(qū)域: 虛擬機(jī)內(nèi)存模型 前者內(nèi)存區(qū)域中的Java堆、棧、方法區(qū)等和后者講的主內(nèi)存、工作內(nèi)存并不是同一個(gè)層次的內(nèi)存劃分,這...
字節(jié)碼執(zhí)行引擎是Java虛擬機(jī)最核心的組成部分之一。虛擬機(jī)是相對(duì)于物理機(jī)的概念,兩者都有代碼執(zhí)行能力。不同的是物理機(jī)的執(zhí)行引擎直接建立在物理硬件和操作系統(tǒng)層面上,而虛擬機(jī)的執(zhí)...
一、什么事類加載機(jī)制 虛擬機(jī)把描述類的數(shù)據(jù)從Class文件加載到內(nèi)存,并對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)、轉(zhuǎn)換解析和初始化,最終形成可以被虛擬機(jī)直接使用的Java類型,這就是虛擬機(jī)的類加載機(jī)制...
Java虛擬機(jī)的指令由一個(gè)字節(jié)長度的、代表著某種特定操作含義的數(shù)字(稱為操作碼,Opcode)以及跟隨其后的零至多個(gè)代表此操作所需參數(shù)(稱為操作數(shù),Operands)而構(gòu)成。...
下面我們接著為訪問標(biāo)志,類索引,父類索引,接口索引集合,字段集合,方法表集合 訪問標(biāo)志: 常量池結(jié)束后緊接著的兩個(gè)字節(jié)代表訪問標(biāo)志,用來標(biāo)識(shí)一些類或接口的訪問信息,包括:這個(gè)...
Java在誕生時(shí)就以一次編寫,到處運(yùn)行特點(diǎn)在各個(gè)平臺(tái)都可以進(jìn)行運(yùn)行。其實(shí)就是通過不同的編譯器(Javac編譯器,jrubyc編譯器,groovyc編譯器等等)將代碼編譯成規(guī)范...
在JDK的bin目錄下,可以看到很多工具,這些工具的程序體積都異常小巧。基本都穩(wěn)定在17K左右。這并非JDK開發(fā)團(tuán)隊(duì)刻意把他們制作得如此精煉,而是這些命令行工具大多數(shù)是JDK...
對(duì)象的內(nèi)存分配,往大方向講,就是在堆上分配(但也可能經(jīng)過JIT編譯后被拆分為標(biāo)量類型并間接地在棧上分配),對(duì)象主要分配在新生代的Eden區(qū)上,如果啟動(dòng)了本地線程分配緩沖,將按...