logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

windows实现sshpass,跨平台sshpass

windows实现sshpass,跨平台sshpass

#ci/cd#ssh
windows实现sshpass,跨平台sshpass

windows实现sshpass,跨平台sshpass

#ci/cd#ssh
JVM逃逸分析

逃逸分析堆是分配对象存储的唯一选择吗?在深入了解java虚拟机中关于Java堆内存有这样一段描述:随着JIT编译器的发展与逃逸分析技术的逐渐成熟,栈上分配,标量替换优化技术将会导致一些微妙变化,所有的对象都分配到堆上也渐渐变得不那么"绝对"了在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普通的常识,但是,有一种特殊情况,那就是如果经过逃逸分析(Escape Analysis)后发现,

#java
方法区的垃圾回收

方法区的垃圾回收有人认为方法区(如HotSpot虚拟机中元空间或者永久代)是没有垃圾收集行为的,其实不然,Java虚拟机规范中堆方法区的约束是非常宽松的,提到过可以不要求虚拟机在方法区中实现垃圾收集,事实上也确实有未实现或未能完整实现方法区类型卸载的垃圾收集器存在(如JDK11时期的ZGC收集器就不支持类卸载)一般来说这个区域的回收效果比较难令人满意,尤其是类型的卸载,条件相当苛刻,但是这部分区域

#java
对象的实例化

对象的实例化创建对象的方式newClass的newInstance() 只能调用空参的构造器,权限必须是publicConstructor的newInstance(Xxx) 可以调用空参,带参的构造器,权限没有要求使用clone() 需要实现Cloneable接口使用反序列化第三方库Objenesis创建对象的步骤判断对象对应的类是否加载,链接,初始化虚拟机遇到一条new指令,首先区检查这个指令的

#java
类的加载过程

类的加载过程类的加载过程整体可分为3个环节 加载->链接(验证,准备,解析)->初始化加载(loading)通过一个类的全限定类名获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口ps: 加载.class文件的方式从本地系统中直接加载通过网络获取,如w

#java
到底了