![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM学习
qq_22597325
这个作者很懒,什么都没留下…
展开
-
替换class文件,重启Tomcat不生效
记一次:替换class文件重启tomcat无效替换了一个文件,然后重启tomcat后一直不生效 替换了一个文件,然后重启tomcat后一直不生效 如果你修改的内容为final类型的常量,想要生效,则必须将使用该常量的所有类重新编译一次,同步替换,因为jdk在编译期间会将引用的常量类型直接写入运行时常量池中,也就是说,生成的class文件已经包含了常量,而不是一个引用指向那个常量类,这样好处是,不用耗费时间解析引用,更不用引起常量类的初始化 ...原创 2021-07-22 12:09:59 · 1276 阅读 · 0 评论 -
JVM学习笔记-class文件的构造
1、class文件构造: 1.魔数(u4) 2.次版本号(u2) 3.主版本号(u2) 4.constant_pool_count(常量个数 u2) 5.常量池表(constat_pool_count -1 cp_info ) 6.acc...原创 2019-06-15 17:59:06 · 148 阅读 · 0 评论 -
JVM学习笔记2 --纯手写读取class文件常量池内容并输出
JVM的class文件定义有严格的规范,当虚拟机读取class文件的二进制数据时,JVM虽然不会管该二进制数据是从java编译期编译而来还是其他例如groovy或者kotlin等等编译而来,只要符号jvm定义的规范,就能够读取,也就能在JVM虚拟机上运行 直接上代码,可能有些粗糙,不喜勿喷哈各位大神: 两个类,没细化处理,一个主类,一个配置类,本人IDEA+JDK1.8运行 1、主类HexC...原创 2019-06-16 12:39:24 · 371 阅读 · 0 评论 -
JVM学习笔记2
1、类命名空间 每一个类都有自己的命名空间,类命名空间由加载该类的类加载器以及其父加载器所加载的类组成的 在同一个命名空间内,不允许出现类完整名字相同的两个类 在不同的类命名空间中,可能会出现类的完整名字相同的类 一个类有可能被加载多次,在不同的命名空间中 一个类如果由父加载器加载的,那它是看不到子加载器加载的类,反过来不成立 2、运行时包 同一个类加载器加载,属于同一个包,多个类型的...原创 2019-06-11 20:52:13 · 102 阅读 · 0 评论