zoukankan      html  css  js  c++  java
  • JVM---方法区

    存放数据(static,final,Class,常量池)

    方法区存储的是每个class的信息:

    1.类加载器引用(classLoader)

    2.运行时常量池

    所有常量、字段引用、方法引用、属性

    3.字段数据

    每个方法的名字、类型(如类的全路径名、类型或接口) 、修饰符(如public、abstract、final)、属性

    4.方法数据

    每个方法的名字、返回类型、参数类型(按顺序)、修饰符、属性

    5.方法代码

    每个方法的字节码、操作数栈大小、局部变量大小、局部变量表、异常表和每个异常处理的开始位置、结 束位置、代码处理在程序计数器中的偏移地址、被捕获的异常类的常量池索引

    特点

    1.方法区是线程安全的。由于所有的线程都共享方法区,所以,方法区里的数据访问必须被设计成线程安全的。例如,假如同时有两个线程都企图访问方法区中的同一个类,而这个类还没有被装入JVM,那么只允许一个线程去装载它,而其它线程必须等待。

    2.方法区的大小不必是固定的,JVM可根据应用需要动态调整。同时,方法区也不一定是连续的,方法区可以在一个堆(甚至是JVM自己的堆)中自由分配。

    3.方法区也可被垃圾收集,当某个类不在被使用(不可触及)时,JVM将卸载这个类,进行垃圾收集

    代码缓存 个缓存区域是用来存储编译后的代码。编译后的代码就是本地代码(硬件相关的),它是由JIT(Just In Time)编译器生成的,这个编译器是Oracle HotSpot JVM所特有的。

  • 相关阅读:
    spring cloud微服务docker启动
    docker安装mysql5.7
    Spring Boot CommandLineRunner的使用
    IDEA Java 源发行版 8 需要目标发行版 1.8
    Centos6.5安装Python2.7.9
    Hive在drop表的时候报错
    反向读取Mysql数据库表结构到PowerDesigner中
    SpringCloud与Consul集成实现负载均衡
    Mac系统安装和卸载brew包管理
    Consul集群搭建
  • 原文地址:https://www.cnblogs.com/zhahu/p/12576349.html
Copyright © 2011-2022 走看看