a = 3 中3在栈还是堆_56.堆、栈、方法区(3.0)
生活随笔
收集整理的這篇文章主要介紹了
a = 3 中3在栈还是堆_56.堆、栈、方法区(3.0)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0、上面比較形象可以看出堆、棧、方法區之間的區別, 棧存的是局部變量、堆一般是對象等等,而方法區存在的事一些信息加載出來等等,他們互相分工。
1、String a=new String(“fdsdfs”);
堆 存放的是new出來的對象 jvm中只有一個堆區 被所有的線程共享
棧 是變量a 每個棧中的數據私有的 其他棧不能訪問。棧中分配的是基本類型和自定義對象的引用。
方法區 是“fdsdfs”;被所有的線程共享,方法區包含所有的class static變量。方法區存放的是類信息和static變量。
2、也可以這么理解:堆是用來存放對象的,棧是用來運行程序的。堆:java的垃圾回收器會自動的回收這些不用的數據。缺點是由于要動態的分配內存,存儲效率會比較的慢。
棧:棧的優勢是存取效率比較快,僅次于寄存器,棧數據可以共享。但缺點是棧中的數據大小和生存期的固定的,缺乏靈活性。
3、堆和棧的區別可以用如下的比喻來看出:(來自csdn/weixin_41254254)
使用棧就象我們去飯館里吃飯,只管點菜(發出申請)、付錢、和吃(使用),吃飽了就
走,不必理會切菜、洗菜等準備工作和洗碗、刷鍋等掃尾工作,他的好處是快捷,但是自
由度小。
使用堆就象是自己動手做喜歡吃的菜肴,比較麻煩,但是比較符合自己的口味,而且自由 度大。
總結
以上是生活随笔為你收集整理的a = 3 中3在栈还是堆_56.堆、栈、方法区(3.0)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python什么时候用框架_python
- 下一篇: python3命令记忆技巧_Python