Java方法区详解(定义作用及6大存放结构)

Java方法区详解(定义作用及6大存放结构)-mikechen

Java方法区是JVM内存模型很重要组成部分,而且Java面试经常问到,下面我就重点详解Java方法区@mikechen

什么是Java方法区

Java方法区,英文全称是Method Area,是JVM内存中的一个重要区域,与堆一样是各个线程所共享的内存区域。

如下图所示:

Java方法区详解(定义作用及6大存放结构)-mikechen

 

Java方法区的作用

Java方法区的作用:主要用于存储类的信息、常量、静态变量和即时编译器编译后的代码等数据。

 

JVM方法区内部结构

Java方法区内部结构包括以下内容,主要分为如下6大部分:

Java方法区详解(定义作用及6大存放结构)-mikechen

1.运行时常量池(Runtime Constant Pool)

运行时常量池存放类中的常量,包括:字符串、final修饰的常量等。

 

2.字段数据

字段数据:存储类或接口中声明的变量,字段数据主要包括:字段名、字段类型、访问修饰符和常量值等信息。

 

3.方法数据

方法数据主要:存储类或接口中声明的方法信息,方法包括静态方法和实例方法。

方法数据主要包括:方法名、参数类型、返回值类型、访问修饰符、字节码、异常表和局部变量表等信息。

 

4.类数据

类数据主要:存储类的完整信息。

类数据主要包括:类名、访问修饰符、父类名、接口列表、字段数据、方法数据和注解信息等。

 

5.常量数据

常量数据主要存储:类中的常量数据。

常量数据主要包括:常量名、常量类型、常量值和访问修饰符等信息,比如 :静态final字段、String常量等。

 

6.即时编译器编译后的代码

即时编译器将Java字节码编译成本地机器代码后,会将编译后的代码存储到方法区中,供JVM在运行时使用。

以上就是Java方法区的详解,更多JVM内容,请查看:JVM(Java虚拟机)从0到1全部合集

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法