java流程控制三大結(jié)構(gòu) 大學(xué)教材《java語言程序設(shè)計》哪個版本比較好?
大學(xué)教材《java語言程序設(shè)計》哪個版本比較好?Java基礎(chǔ)知識介紹:《《Java基礎(chǔ)入門(第2版)》》是Java編程的經(jīng)典教材,第一版已經(jīng)發(fā)行了近20萬冊。歷史悠久,精心修改。全書共11章,內(nèi)容包括
大學(xué)教材《java語言程序設(shè)計》哪個版本比較好?
Java基礎(chǔ)知識介紹:
《《Java基礎(chǔ)入門(第2版)》》是Java編程的經(jīng)典教材,第一版已經(jīng)發(fā)行了近20萬冊。歷史悠久,精心修改。全書共11章,內(nèi)容包括Java開發(fā)環(huán)境的構(gòu)建和運行機制、基本語法、面向?qū)ο笏枷?、常用API、集合、IO、GUI、JDBC、多線程、網(wǎng)絡(luò)編程等。提供經(jīng)典案例208個,綜合案例5個,經(jīng)典習(xí)題219個。配套數(shù)字化教學(xué)資源豐富,包括精美PPT、1500道試題、40小時教學(xué)視頻。
JAVA的內(nèi)存是如何劃分的?
謝謝邀請~
關(guān)于JVM的知識一直是很多Java程序員頭疼的問題,但是JVM也是值得我們深入學(xué)習(xí)的。我來說說我對JVM內(nèi)存劃分的理解。
Java的內(nèi)存是什么?學(xué)Java的朋友應(yīng)該知道,Java程序是在JVM上運行的,所以我們一般講的Java內(nèi)存的劃分,其實指的是JVM內(nèi)存區(qū)域的劃分。在討論JVM內(nèi)存分區(qū)之前,我們需要了解一下Java程序的執(zhí)行過程(手動動畫,有點難看):
從這個圖可以看出,JVM在執(zhí)行Java程序時,需要使用一個空間來存儲運行時使用的數(shù)據(jù)。這個區(qū)域就是我們經(jīng)常使用的運行時區(qū)域,也就是常說的JVM內(nèi)存。
Java的內(nèi)存由程序計數(shù)器寄存器、Java棧、本機方法棧、方法區(qū)和堆組成。
這是Java虛擬機規(guī)范中規(guī)定的,但如何實現(xiàn)則取決于廠商。
運行時,每個區(qū)域存儲什么數(shù)據(jù)?先看一張圖:
程序計數(shù)器存儲指令地址,即下一次執(zhí)行所在的存儲地址。如果是多線程的話,由于一個CPU一次只能執(zhí)行一個命令,為了使每個線程在切換后能夠恢復(fù)到切換前的位置,每個線程都需要有自己的計數(shù)器,所以程序計數(shù)器是每個線程私有的。
虛擬機堆棧
它是Stack,逐個存儲堆棧幀,每個堆棧幀對應(yīng)一個被調(diào)用的方法。在堆棧框架中,有局部變量表、操作數(shù)堆棧、對當(dāng)前方法所屬類的運行時常量池的引用、方法返回地址和一些附加信息。(這些東西是干什么用的?你可以分別寫一篇關(guān)于他們的文章...)
每個線程都有自己的Java棧,它也是線程私有的。
本地方法堆棧
本地方法棧和Java棧的作用和原理非常相似。唯一的區(qū)別是Java棧用來執(zhí)行Java方法。本地方法堆棧用于執(zhí)行本地方法。
在HotSopt虛擬機中,本地方法棧和Java棧直接合二為一。大量
存儲對象本身和數(shù)組,堆由所有線程共享,JVM中只有一個堆。
方法區(qū)域
存儲每個類的信息(包括類名、方法信息、字段信息)、靜態(tài)變量、常量、編譯器編譯的代碼等。,也由線程共享。
Java內(nèi)存分區(qū)是中高級程序員的必修課。希望我的回答能幫到你!
我會繼續(xù)分享我對Java開發(fā)、架構(gòu)設(shè)計、程序員職業(yè)發(fā)展等方面的看法,希望得到大家的關(guān)注。