堆栈,方法区的交互
关系图
方法区的基本理解
OOM: 加载大量的第三方jar包,Tomcat部署的工程过多(30-50)
大量动态生成反射类
方法区大小的设置
-XX:MetaspaceSize=100m -XX:MaxMetaspaceSize=100m
方法区主要是存放实例。利用反射生成大量的类就可以把内存撑爆!OOM
如何解决OOM
方法区主要存储哪些内容
已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等
类型信息
域信息
方法信息
运行时常量池
字节码文件中的常量池文件通过类加载子系统到方法区后就叫做运行时常量池
一个有效的字节码文件中除了包含类的版本信息、字段、方法及接口等信息外,还包含一项信息那就是常量池表,包括各种字面量和类型、域和方法的符号引用。
小结
常量池:可以看作是一张表,虚拟机指令根据这张常量表找到要执行的类名,方法名, 参数类型,字面量等类型。