十年架構(gòu)師詳解jvm運(yùn)行原理 學(xué)完java基礎(chǔ)下一步學(xué)什么?
學(xué)完java基礎(chǔ)下一步學(xué)什么?下一步就提前了。Java多線程、NIO、高并發(fā)、外設(shè)主流框架、數(shù)據(jù)庫(kù)優(yōu)化等前沿技術(shù)都要研究。Java主流技術(shù)分享:SpringBoot,SpringCloud,Dockj
學(xué)完java基礎(chǔ)下一步學(xué)什么?
下一步就提前了。Java多線程、NIO、高并發(fā)、外設(shè)主流框架、數(shù)據(jù)庫(kù)優(yōu)化等前沿技術(shù)都要研究。Java主流技術(shù)分享:SpringBoot,SpringCloud,Dock
jvm元空間與堆和棧的區(qū)別?
1內(nèi)存分配策略
1)靜態(tài)存儲(chǔ):在編譯時(shí)確定每個(gè)數(shù)據(jù)目標(biāo)在運(yùn)行時(shí)的存儲(chǔ)空間需求(沒有可改變的數(shù)據(jù)結(jié)構(gòu),代碼中沒有嵌套遞歸)。
2)堆棧存儲(chǔ):編譯時(shí)數(shù)據(jù)需求未知,確定運(yùn)行時(shí)模塊入口,動(dòng)態(tài)分配存儲(chǔ)。當(dāng)在操作過程中進(jìn)入一個(gè)程序模塊時(shí),在分配其內(nèi)存之前,必須知道該程序模塊所需的數(shù)據(jù)區(qū)的大小。
3)堆存儲(chǔ):編譯時(shí)和運(yùn)行時(shí)的模塊條目無法確定,是動(dòng)態(tài)分配的。
2Java內(nèi)存模型中的堆和棧
1)兩者的關(guān)系:引用對(duì)象和數(shù)組時(shí),棧中定義的變量存儲(chǔ)的是堆中目標(biāo)的第一個(gè)地址。
2)兩者的區(qū)別:
(1)管理模式:棧自動(dòng)釋放(對(duì)應(yīng)方法完成),棧需要GC(垃圾收集機(jī)制)。
(2)空間大小:堆大于棧。
(3):堆產(chǎn)生的碎片比堆產(chǎn)生的碎片小得多。
(4)分配棧支持靜態(tài)和動(dòng)態(tài)分配,堆只能動(dòng)態(tài)分配。
(5)效率:堆比棧效率低。
(6)棧是線程私有的,堆是線程共享的。
干java也1年多了,怎么能提升代碼編寫能力?
It 這很簡(jiǎn)單。你關(guān)注一些網(wǎng)絡(luò)課的課程,比如高級(jí)工程師,建筑師,翻翻他們的課程目錄。你能做什么?;t do是你需要改進(jìn)的地方。我聲明我不從事培訓(xùn),因?yàn)?這就是我的經(jīng)歷,所以我這樣說。希望對(duì)你有幫助。