摘要:
前言 一直想好好的了解一下JVM,这次就来一起了解一下JVM是如何实现类的加载过程的。 原理 类加载的生命周期 1. 加载 5种类加载情况: 在遇到 new、putstatic、getstatic、invokestatic 字节码指令时,如果类尚未初始化,则需要先触发初始化。 对类进行反射调用时,如 阅读全文
摘要:
前言 工作中需要实现一种功能:动态加载类对象信息,简单说就是class变了Jvm能够立马知道并且加载到内存。 类加载器分类 Java类加载器分为两种,一种是加载启动类,另一种是其他类加载器。Java加载类的关系:Launcher 1. 启动类加载器(BootstrapClassLoader)。 Ja 阅读全文
摘要:
一、JVM 指令分类 (1)操作数栈 过程符号 变量到操作数栈 iload, iload_, lload, lload_, fload, fload_, dload, dload_, aload, aload_ 操作数栈到变量 istore, istore_, lstore, lstore_, fs 阅读全文
摘要:
前言 工作上遇到需要解析Jar包的情况,需要将Jar包里面的类文件获取出来,然后动态调用。 案例 import java.io.File; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import 阅读全文
摘要:
前言 工作中经常需要动态生成Java对象进行操作。 下载 百度云链接: https://pan.baidu.com/s/1vqJvIg6zBWppNrB68OdfAw 提取码: t6qk 案例 public class CompilerDemo { public static void main(S 阅读全文
摘要:
前言 为了方便我们查看Java 创建对象的情况,就出现对象诊断器 下载 百度网盘:链接: https://pan.baidu.com/s/1dGBwht7_iWyBALfRtbGM_A 提取码: ft9p 下载需要的Jar包 演示 public class LockDemo9 { public st 阅读全文
摘要:
前言 使用Zookeeper之前,先了解一下Zookeeper是啥?有什么作用? 原理 Zookeeper本身是一种存储数据的树结构,结构和文件系统非常相似,区别是Zookeeper的节点都可以存值。 通过Zookeeper命令演示一下这个结构: create /hubt -- 创建节点 ls / 阅读全文
摘要:
前言 随着底层原理的研究深入,需要查询JVM的代码生成的汇编指令的执行逻辑。 操作 window10 需要下载:hsdis-amd64.dll 链接: https://pan.baidu.com/s/1Okt3KrByjlstqdEigbt6iQ 提取码: 66e8 将文件放入:jdk目录下\jre 阅读全文
摘要:
前言 Zookeeper到底能为我们的程序解决一些什么问题呢? 应用场景 1. 分布式配置中心 1.1通过Zookeeper的watch监听来实现各个集群节点的配置修改,不用再一台台服务器单独进行修改。 1.2使用zookeeper的持久化节点来实现配置保存。 2. 分布式锁 2.1.APP1 获取 阅读全文
摘要:
前言 前面我们zookeeper也安装了,操作命令也学习了,现在来使用SpringBoot整合一下zookeeper。 整合 第一步设置配置文件(application.properties): zookeeper.address=127.0.0.1:2181 zookeeper.timeout=4 阅读全文