Jvm原理

手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理

摘自:https://www.cnblogs.com/goodAndyxublog/p/11880314.html 手把手教你实现热更新功能,带你了解 Arthas 热更新背后的原理 文章来源:https://studyidea.cn/java-hotswap 一、前言# 一天下午正在摸鱼的时候,测试小姐姐走了过来求助,说是需要改动测试环境 mock...

JVM自定义类加载器加载指定classPath下的所有class及jar

一、JVM中的类加载器类型   从Java虚拟机的角度讲,只有两种不同的类加载器:启动类加载器和其他类加载器。   1.启动类加载器(Boostrap ClassLoader):这个是由c++实现的,主要负责JAVA_HOME/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作。  2.其他类加载器:由java实现,...

spark内存管理详解

Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文旨在梳理出 Spark 内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和...

类的加载过程(类的生命周期)详解

3.1. 概述 在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 其中,验证、准备、解析3个部分统称为链接(Linking) 从程序中类的使用过程看 大厂面试题 蚂蚁金服...

Java并发机制和底层实现原理

  Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码转化为汇编指令在CPU上执行。Java中的并发机制依赖于JVM的实现和CPU的指令。      Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排它锁单独获得这个变量...

java面试宝典

相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名...

深入解析synchronized

深入解析synchronized 1 常见的几个并发问题 1.可见性问题 案例演示:一个线程根据boolean类型的标记flag, while循环,另一个线程改变这个flag变量的值,另一个线程并不会停止循环。 /** * @author WGR * @create 2020/12/22 -- 20:18 */ public class Test01...

JAVA 内存详解 (理解 JVM 如何使用 Windows 和 Linux 上的本机内存)

理解 JVM 如何使用 Windows 和 Linux 上的本机内存 文档选项 打印本页 将此页作为电子邮件发送 样例代码 英文原文 级别: 中级 Andrew Hall, 软件工程师, IBM 2009 年 5 月 11 日 Java™ 堆耗尽并不是造成java.lang.OutOfMemo...

Java探针

  使用java代理来实现java字节码注入 使用JavaSsist可以对字节码进行修改 使用ASM可以修改字节码 使用Java代理和ASM字节码技术开发java探针工具可以修改字节码 备注:javassist是一个库,实现ClassFileTransformer接口中的transform()方法。ClassFileTransformer 这个接口的目的...