摘要: 虚拟机字节码执行引擎 启动java程序,包含程序入口main方法的class文件将会率先被JVM获取到,然后就是类加载阶段处理这个class文件,最终通过调用man方法开始一个java程序的执行。可以说Java程序的执行就是一个或多个方法调用链,而初始方法就是main。接下来我们介绍java方法的内 阅读全文
posted @ 2018-11-06 22:45 撑大鱼 阅读(122) 评论(0) 推荐(0)
摘要: 解密HotSpot虚拟机中的对象 介绍完class类文件以及它的加载过程,接下来我们看看class类对应的实例对象的秘密。 1、对象的创建 当虚拟机遇到一条new指令时,首先检查指令后面参数是否能在常量池中对应一个符号引用,然后再检查符号引用对应的class类是否已经加载、解析和初始化过,如果没有则 阅读全文
posted @ 2018-10-30 22:34 撑大鱼 阅读(205) 评论(0) 推荐(0)
摘要: 开发中有这样的业务场景:有25家法院,法院数据库结构都是一样的,需要遍历25家法院统计每家法院的指标信息。我们项目使用的是spring boot2,对于遍历25家法院执行同样的操作,考虑使用spring自带的AbstractRoutingDataSource来实现数据源的切换(有关AbstractR 阅读全文
posted @ 2018-10-29 10:34 撑大鱼 阅读(501) 评论(0) 推荐(0)
摘要: 虚拟机类加载 虚拟机加载class类文件到内存,直至类被卸载出内存整个生命周期如下图所示: 以上加载、验证、准备、解析、初始化就是类加载(Class Loading)。上图中的箭头指向并不是完全指明他们的顺序,其中只有加载、验证、准备、初始化、卸载是按上图的顺序开始的,而且不是按顺序完成。 虚拟机没 阅读全文
posted @ 2018-10-19 16:34 撑大鱼 阅读(163) 评论(0) 推荐(0)
摘要: Java运行时数据区域 Java运行时数据区域如下图所示: 阅读全文
posted @ 2018-10-17 20:00 撑大鱼 阅读(110) 评论(0) 推荐(0)
摘要: 属性表集合 属性表可以出现再类文件、字段表、方法表之后,用于修饰特定的场景。目前属性表有21种类型,每种属性表的具体组成都不同,但都符合这样的一个整体结果: 类型 名称 含义 u2 Attribute_name_index 属性表名称索引,对应常量池一个utf-8类型的常量 u4 Attribute 阅读全文
posted @ 2018-10-17 19:56 撑大鱼 阅读(484) 评论(0) 推荐(0)
摘要: class文件结构 Class文件内容可以分为两种数据类型:无符号数和表。其中无符号数包括u1,u2,u3,u4,分别代表1个字节,2个字节,3个字节和4个字节。无符号数可以表示数字、UTF8编码的字符串。表是由多个无符号数或者其他表构成的数据结构,以_info结尾。可以看出Class文件的基础单位 阅读全文
posted @ 2018-10-15 22:18 撑大鱼 阅读(603) 评论(0) 推荐(0)
摘要: Java简介 1、 从机器语言到高级语言 计算机只认识0、1,对应于电路中低电平和高电平。因此,早期程序员使用特定的0、1串操控计算机,从而达到想要的目标效果。这些0、1串就称作指令,也叫机器码(比如0000代加载,000代表寄存器A,000000000000 代表地址为0的存储器,所以0000,0 阅读全文
posted @ 2018-10-14 23:52 撑大鱼 阅读(238) 评论(0) 推荐(0)