JVM虚拟机-Class文件之访问标志

简介: JVM虚拟机-Class文件之访问标志

 一、访问标志的概念

常量池结束之后,紧接着的两个字节代表访问标志,这个标志用于识别一些类或者接口层次的访问信息,包括:这个Class是接口还是类;是否被定义为public类型;是否定义为abstract类型;如果是类的话,是否被声明为final等。

access_flages中共有两个字节(16位)可以使用,没有使用到的标志为要求一律为0。如果有多个访问标志,那通过“OR”的方式组合在一起。

二、访问标志具体含义

标志名称  标志值 含义
ACC_PUBLIC 0x00 01 是否为Public类型
ACC_FINAL 0x00 10 是否被声明为final,只有类可以设置
ACC_SUPER 0x00 20 是否允许使用invokespecial字节码指令的新语义.
ACC_INTERFACE 0x02 00 标志这是一个接口
ACC_ABSTRACT 0x04 00 是否为abstract类型,对于接口或者抽象类来说,次标志值为真,其他类型为假
ACC_SYNTHETIC 0x10 00 标志这个类并非由用户代码产生
ACC_ANNOTATION 0x20 00 标志这是一个注解                                                                             
ACC_ENUM            0x40 00 标志这是一个枚举

三、实例分析

案例一

定义一个类:

public class HelloWord {
}

image.gif

image.gif编辑

00 21可以推断是由ACC_PUBLIC和ACC_SUPER通过OR组合而成。

通过命令javap -verbose  HelloWord.class来查看,发现确实是 ACC_PUBLIC, ACC_SUPER组合而成:

image.gif编辑

案例二

定义一个接口:

public interface HelloWord {
}

image.gif

image.gif编辑

06 01又是怎么组合的呢?通过命令javap -verbose  HelloWord.class来查看,发现是 ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT组合而成:

image.gif编辑

参考资料:

    1. Class文件详解_IT_GJW的博客-CSDN博客_class文件是什么
    2. class文件访问标志 - 炎泽 - 博客园
    相关文章
    |
    1月前
    |
    监控 算法 Java
    Java虚拟机(JVM)的垃圾回收机制深度解析####
    本文深入探讨了Java虚拟机(JVM)的垃圾回收机制,旨在揭示其背后的工作原理与优化策略。我们将从垃圾回收的基本概念入手,逐步剖析标记-清除、复制算法、标记-整理等主流垃圾回收算法的原理与实现细节。通过对比不同算法的优缺点及适用场景,为开发者提供优化Java应用性能与内存管理的实践指南。 ####
    |
    25天前
    |
    监控 算法 Java
    Java虚拟机(JVM)垃圾回收机制深度剖析与优化策略####
    本文作为一篇技术性文章,深入探讨了Java虚拟机(JVM)中垃圾回收的工作原理,详细分析了标记-清除、复制算法、标记-压缩及分代收集等主流垃圾回收算法的特点和适用场景。通过实际案例,展示了不同GC(Garbage Collector)算法在应用中的表现差异,并针对大型应用提出了一系列优化策略,包括选择合适的GC算法、调整堆内存大小、并行与并发GC调优等,旨在帮助开发者更好地理解和优化Java应用的性能。 ####
    32 0
    |
    2月前
    |
    数据库 虚拟化 Windows
    虚拟机数据恢复—XenServer虚拟机磁盘文件丢失的数据恢复案例
    虚拟机数据恢复环境: 某品牌服务器通过同品牌某型号的RAID卡,将4块STAT硬盘为一组RAID10阵列。上层部署XenServer虚拟化平台,虚拟机安装Windows Server系统,每台虚拟机有两个虚拟机磁盘(系统盘 + 数据盘),虚拟机作为Web服务器使用。 虚拟机故障&分析: 机房异常断电导致服务器中一台VPS(XenServer虚拟机)不可用,虚拟磁盘文件丢失。
    |
    22天前
    |
    存储 监控 算法
    深入探索Java虚拟机(JVM)的内存管理机制
    本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
    |
    25天前
    |
    存储 监控 算法
    Java虚拟机(JVM)垃圾回收机制深度解析与优化策略####
    本文旨在深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法及参数调优方法。通过剖析垃圾回收的生命周期、内存区域划分以及GC日志分析,为开发者提供一套实用的JVM垃圾回收优化指南,助力提升Java应用的性能与稳定性。 ####
    |
    28天前
    |
    机器学习/深度学习 监控 算法
    Java虚拟机(JVM)的垃圾回收机制深度剖析####
    本文深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法、性能调优策略及未来趋势。通过实例解析,为开发者提供优化Java应用性能的思路与方法。 ####
    44 1
    |
    1月前
    |
    监控 Java 开发者
    Java虚拟机(JVM)深度优化指南####
    本文深入探讨了Java虚拟机(JVM)的工作原理及其性能优化策略,旨在帮助开发者通过理解JVM的内部机制来提升Java应用的运行效率。不同于传统的技术教程,本文采用案例分析与实战技巧相结合的方式,为读者揭示JVM调优的艺术。 ####
    58 8
    |
    1月前
    |
    监控 算法 Java
    深入理解Java虚拟机(JVM)的垃圾回收机制
    【10月更文挑战第21天】 本文将带你深入了解Java虚拟机(JVM)的垃圾回收机制,包括它的工作原理、常见的垃圾收集算法以及如何优化JVM垃圾回收性能。通过本文,你将对JVM垃圾回收有一个全新的认识,并学会如何在实际开发中进行有效的调优。
    51 0
    |
    2月前
    |
    存储 算法 Java
    Java虚拟机(JVM)的内存管理与性能优化
    本文深入探讨了Java虚拟机(JVM)的内存管理机制,包括堆、栈、方法区等关键区域的功能与作用。通过分析垃圾回收算法和调优策略,旨在帮助开发者理解如何有效提升Java应用的性能。文章采用通俗易懂的语言,结合具体实例,使读者能够轻松掌握复杂的内存管理概念,并应用于实际开发中。
    |
    2月前
    |
    存储 运维 虚拟化
    虚拟化数据恢复——Hyper-V虚拟化故障导致虚拟机文件丢失的数据恢复案例
    在Windows Server上部署的Hyper-V虚拟化环境中,因存储中虚拟机数据文件丢失导致服务瘫痪。北亚企安数据恢复工程师通过物理检测、操作系统及文件系统检测,确定为人为格式化造成,并通过镜像硬盘、重组RAID、分析并恢复文件索引项等步骤,成功恢复数据,最终在新Hyper-V环境中验证并迁移所有虚拟机,确保用户业务恢复正常运行。