- 虛擬機棧溢出
- 堆區 內存溢出
- 大量資源都用於GC回收了,每次GC後也清理不了多少空間,反覆如此,就拋出此錯誤
- 寫NIO程序經常使用ByteBuffer來讀取或者寫入數據,這是一種基於通道-channel 與 緩衝區-buffer的I/O方式
- 他可以使用Native函數庫直接分配堆外內存,然後通過一個存儲在java堆裏面的DirectByteBuffer對象作爲這塊內存的引用進行操作
- 這樣能在一些場景中顯著提高性能,因爲避免了java堆和Native堆中來回的複製數據
- 當堆外內存(本地內存)不夠用時,就會拋出此異常
- 應用創建了太多線程了,超過系統承載
- 你的服務器不允許創建過多的線程
- 元空間內存溢出
- 元空間使用的是本地內存,類信息創建太多