java中whiletrue死循環會造成JVM內存溢出嗎?
如果是死循環,那有可能會產生內存溢出,而內存溢出一般有三種可能:
比如循環內一直創建對象放入到list中(保證對象一直被引用),那么就會出現堆內存溢出OutOfMemoryError:Java heap space。
而如果javaweb中jsp文件比較多或者第三方jar比較大超出了MaxPermSize設置,那么就會出現永久代內存溢出OutOfMemoryError: PermGen space(java8中永久代被移除)。
而如果jvm占用了服務器的大量內存,那么有可能出現無法創建新的線程錯誤OutOfMemoryError: unable to create new native thread 。
這三種內存溢出的情況,第一種和第三種都有可能出現在死循環中
在實際的開發中,通常的內存溢出,都是由于開發人員編程不當造成的。所以我們開發人員編寫代碼應該合理使用內存,比如強軟弱虛引用的合理使用,自定義內存分配,以此來降低內存溢出出現的概率。
希望我的回答對你有所幫助
上一篇jaza什么品牌