欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java.lang.OutOfMemoryError: Metaspace異常解決的方法

 更新時(shí)間:2021年03月18日 14:47:36   作者:瘋狂的太陽  
這篇文章主要介紹了java.lang.OutOfMemoryError: Metaspace異常解決的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

介紹 Metaspace

java8 及以后的版本使用Metaspace來代替永久代,Metaspace是方法區(qū)在HotSpot中的實(shí)現(xiàn),它與持久代最大區(qū)別在于,Metaspace并不在虛擬機(jī)內(nèi)存中而是使用本地內(nèi)存也就是在JDK8中,classe metadata(the virtual machines internal presentation of Java class),被存儲(chǔ)在叫做Metaspace的native memory.
永久代(java 8 后被元空間Metaspace取代了)存放了以下信息:

  • 虛擬機(jī)加載的類信息
  • 常量池
  • 靜態(tài)變量
  • 即時(shí)編譯后的代碼

出現(xiàn)問題原因

錯(cuò)誤的主要原因, 是加載到內(nèi)存中的 class 數(shù)量太多或者體積太大。

解決辦法

增加 Metaspace 的大小

-XX:MaxMetaspaceSize=512m

代碼演示

模擬Metaspace空間溢出,我們不斷生成類往元空間灌,類占據(jù)的空間是會(huì)超過Metaspace指定的空間大小的

查看元空間大小

java -XX:+PrintFlagsInitial

在這里插入圖片描述

設(shè)置配置 這里設(shè)置10m方便演示效果

-XX:MetaspaceSize=10m -XX:MaxMetaspaceSize=10m

在這里插入圖片描述

編寫代碼

import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.MethodInterceptor;
import org.springframework.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;

public class MetaspaceDemo {
  static class OOM{}
  public static void main(String[] args) {
    int i = 0;//模擬計(jì)數(shù)多少次以后發(fā)生異常
    try {
      while (true){
        i++;
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(OOM.class);
        enhancer.setUseCache(false);
        enhancer.setCallback(new MethodInterceptor() {
          @Override
          public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
            return methodProxy.invokeSuper(o,args);
          }
        });
        enhancer.create();
      }
    } catch (Throwable e) {
      System.out.println("=================多少次后發(fā)生異常:"+i);
      e.printStackTrace();
    }
  }
}

運(yùn)行結(jié)果:

在這里插入圖片描述

到此這篇關(guān)于java.lang.OutOfMemoryError: Metaspace異常解決的方法的文章就介紹到這了,更多相關(guān)java.lang.OutOfMemoryError: Metaspace異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語句的工具類

    Java實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語句的工具類

    這篇文章主要為大家詳細(xì)介紹了如何利用Java編寫一個(gè)工具類,可以實(shí)現(xiàn)一鍵獲取Mysql所有表字段設(shè)計(jì)和建表語句,感興趣的小伙伴可以了解一下
    2023-05-05
  • 如何基于Java實(shí)現(xiàn)對象List排序

    如何基于Java實(shí)現(xiàn)對象List排序

    這篇文章主要介紹了如何基于Java實(shí)現(xiàn)對象List排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)之順序表詳解

    Java數(shù)據(jù)結(jié)構(gòu)之順序表詳解

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之順序表詳解,線性表在邏輯上是線性結(jié)構(gòu),也就說是連續(xù)的一條直線。但是在物理結(jié)構(gòu)上并不一定是連續(xù)的,線性表在物理上存儲(chǔ)時(shí),通常以數(shù)組和鏈?zhǔn)浇Y(jié)構(gòu)的形式存儲(chǔ),需要的朋友可以參考下
    2023-07-07
  • @PathVariable和@RequestParam傳參為空問題及解決

    @PathVariable和@RequestParam傳參為空問題及解決

    這篇文章主要介紹了@PathVariable和@RequestParam傳參為空問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對數(shù)據(jù)庫密碼加密的方法

    SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對數(shù)據(jù)庫

    這篇文章主要介紹了SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools對數(shù)據(jù)庫密碼加密的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • SpringCloud中分析講解Feign組件添加請求頭有哪些坑梳理

    SpringCloud中分析講解Feign組件添加請求頭有哪些坑梳理

    在spring?cloud的項(xiàng)目中用到了feign組件,簡單配置過后即可完成請求的調(diào)用。又因?yàn)橛邢蛘埱筇砑親eader頭的需求,查閱了官方示例后,就覺得很簡單,然后一頓操作之后調(diào)試報(bào)錯(cuò)...下面我們來詳細(xì)了解
    2022-06-06
  • 寫了兩年代碼之后再來談一談Spring中的Bean

    寫了兩年代碼之后再來談一談Spring中的Bean

    這篇文章主要介紹了寫了兩年代碼之后再來看看Spring中的Bean,這里列出四種常用的添加Bean的方式,介紹最基本的@Bean注解,@Bean注解聲明這個(gè)類是一個(gè)Bean,需要的朋友可以參考下
    2021-10-10
  • JAVA十大排序算法之冒泡排序詳解

    JAVA十大排序算法之冒泡排序詳解

    這篇文章主要介紹了java中的冒泡排序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • JSONObject如何轉(zhuǎn)為實(shí)體類對象

    JSONObject如何轉(zhuǎn)為實(shí)體類對象

    介紹了JSONObject轉(zhuǎn)為實(shí)體類對象的三種方法:JSONObject中的toJavaObject方法和getObject方法支持深轉(zhuǎn)換,而JSON中的parseObject方法只能轉(zhuǎn)換一層對象,此外,還補(bǔ)充說明了在對JSON轉(zhuǎn)為實(shí)體類對象時(shí),無論JSON中的數(shù)據(jù)字段是否多于或少于實(shí)體類中字段,轉(zhuǎn)化都不會(huì)報(bào)錯(cuò)
    2024-11-11
  • Maven直接依賴、間接依賴、依賴沖突、依賴仲裁的實(shí)現(xiàn)

    Maven直接依賴、間接依賴、依賴沖突、依賴仲裁的實(shí)現(xiàn)

    本文主要介紹了Maven直接依賴、間接依賴、依賴沖突、依賴仲裁的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09

最新評論