課程
/后端開發
/Java
/Java入門第二季 升級版
為了實現要求,我全部都用了靜態,變量都靜態有啥問題?
2015-05-12
源自:Java入門第二季 升級版 8-10
正在回答
首先你得先了解java的內存管理,靜態變量的內存開銷很大,眾所周知,java有著自己的一個JVM內存垃圾回收機制,但是一旦是靜態的內存開辟就意味著幾乎不可能會被回收。也就意味著即使你的程序再也不用此靜態內存(static變量),所占內存也不會被釋放掉,而使用new關鍵字則會在失去引用的時候或者手動釋放掉內存,或者定義string以及int等8大數據類型變量會被jvm放到棧內存中來(說的有點多這里面還有常量池的概念 都是為了更好的管理內存),在一個大的項目中內存的開銷直接影響著程序的性能,當然合理的使用static反而會讓程序更加節約內存,把至始至終用到的變量設為static是不錯的選擇,static 一般定義一些公共的變量 或者 公共方法。以上是我學習java的一些拙見 希望對你有用,。
lorenzt 提問者
你存在 回復 lorenzt 提問者
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答為什么無法解析呢?
1 回答大神們看看我的能不能在簡潔了
2 回答請大神求解obj1.way()為什么會報錯
1 回答項目實戰解析還有么
3 回答求更簡潔的代碼
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-05-12
首先你得先了解java的內存管理,靜態變量的內存開銷很大,眾所周知,java有著自己的一個JVM內存垃圾回收機制,但是一旦是靜態的內存開辟就意味著幾乎不可能會被回收。也就意味著即使你的程序再也不用此靜態內存(static變量),所占內存也不會被釋放掉,而使用new關鍵字則會在失去引用的時候或者手動釋放掉內存,或者定義string以及int等8大數據類型變量會被jvm放到棧內存中來(說的有點多這里面還有常量池的概念 都是為了更好的管理內存),在一個大的項目中內存的開銷直接影響著程序的性能,當然合理的使用static反而會讓程序更加節約內存,把至始至終用到的變量設為static是不錯的選擇,static 一般定義一些公共的變量 或者 公共方法。以上是我學習java的一些拙見 希望對你有用,。