• Java底层知识学习:Bytecode and JMM


    最近在跟着耗子哥的程序员练级指南学习Java底层知识,结合《深入理解Java虚拟机》这本书在看,写笔记,看资料,成长中……

    目前看完了第二章JMM和各内存区OOM的情况

    一篇图文并茂介绍字节码的文章:

    https://mahmoudanouti.wordpress.com/2018/03/20/introduction-to-java-bytecode/


    18-07-31更新:

    现在已经看完了前五章,从第六章开始,六七八章开始涉及Class的文件构成是什么?类加载的五个步骤“加载、验证、准备、解析、初始化”分别是什么?

    看完了常量池这一部分,是Class文件的资源仓库,记录与其他项目关联的数据结构。

    使用 javap -verbose 命令可以解析字节码文件。

    8/1更新:

    看书的速度明显慢下来了,显然开始要读干货了。

    今天看了字段表集合这一小节,带着前面对常量池一节的理解,读下来并不难。

    字段表,就是类变量以及实例变量的集合。什么与变量有关?首先是访问控制符(private, public, protected), 然后是能否修改(final), 是否为类变量(static), 并发可见性(volatile, 线程是否直接从主内存读), 是否可序列化(transient), 字段数据类型,字段名称。

    除了类型和名称,其他的都可以用boolean来表示。类型和名称则是引用常量表里的数据项。

    8/6更新:

    发现一篇总结比较好的JVM面试题: https://www.cnblogs.com/zuolun2017/p/6121782.html

    8/15更新:

    最近开始了一项新工作:解析class文件。

    今天解析到属性表(attribute field) ,解析Code 和 Exception,并且重构了代码。

  • 相关阅读:
    经典笔试题:用C写一个函数测试当前机器大小端模式
    一个结构体传递方式的问题
    ESP8266 NON-OS SDK 和 RTOS SDK实现GPIO中断不同点
    关于C语言中内存的3个问题
    ESP8266 station模式下建立client、server TCP连接
    连续更新了42天早报之后
    简单socket()编程
    TCP协议学习
    linux系统如何管理文件
    Linux文件操作的主要接口API及相关细节
  • 原文地址:https://www.cnblogs.com/andrew-chen/p/9289592.html
Copyright © 2020-2023  润新知