• java架构师教程-JVM性能调优之执行子系统介绍


    图灵学院  JVM性能调优之执行子系统介绍

     Class类文件结构

        各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成了平台独立性的基石和语言独立性的基础。Java虚拟机未绑定任何语言,包括Java。它仅与特定的二进制文件格式“类文件”关联。Class文件包含Java虚拟机指令集和符号表以及一些其他辅助信息。

    jvm性能调优

        Java跨平台的基础

        ByteCode是各种平台和所有平台的虚拟机统一使用的程序存储格式,是平台独立性的基础和语言独立性的基础。Java虚拟机未绑定任何语言,包括Java。它仅与特定的二进制文件格式“类文件”关联。Class文件包含Java虚拟机指令集和符号表以及一些其他辅助信息。

        Class类的本质

        任何类文件仅对应于一个类或接口的定义信息,但另一方面,类文件不一定以磁盘文件的形式存在。类文件是一组基于8位字节的二进制流。

        字节码指令

        Java虚拟机的指令由一个字节长度的数字表示特定操作的含义(称为操作码),然后由零个或多个代表此操作所需的参数(称为操作数,操作数)组成。由于Java虚拟机的操作码长度限制为一个字节(即0?255),因此,指令集中的操作码总数不能超过256。

        大多数的指令都包含了其操作所对应的数据类型信息。例如:iload指令用于从局部变量表中加载int型的数据到操作数栈中,而fload指令加载的则是float类型的数据。

        大部分的指令都没有支持整数类型byte、char和short,甚至没有任何指令支持boolean类型。大多数对于boolean、byte、short和char类型数据的操作,实际上都是使用相应的int类型作为运算类型

        类加载机制

        类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个部分统称为连接(Linking)于初始化阶段,虚拟机规范则是严格规定了有且只有5种情况必须立即对类进行“初始化”(而加载、验证、准备自然需要在此之前开始)

      如果你想了解更多关于java架构师的专业知识,可以一起交流:1160405674这里面都是同行,有资源分享包括但不限于(分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

  • 相关阅读:
    javamail 利用qq邮箱做邮箱服务器,简单小demo
    apache tiles 页面模板的使用
    PHP中Cookie与Session的异同以及使用
    PHP二维数组--去除指定列含有重复项的数组
    PHP实现简单的双色球机选号码
    PHP常用的数学函数和字符串函数
    PHP日期函数
    PHP的操作符与控制结构
    PHP的变量作用域-常亮-全局变量-表单提交变量
    PHP四种输出语句
  • 原文地址:https://www.cnblogs.com/tulingxueyuan/p/14188970.html
Copyright © 2020-2023  润新知