类加载器原理

类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了
2024年01月28日 692次浏览

深入理解sun.misc.Unsafe原理

前言Unsafe类在JDK源码中被广泛使用,在Spark使用off-heap memory时也会使用到,该类功能很强大,涉及到类加载机制(深入理解ClassLoader工作机制),其实例一般情况是获取不到的,源码中的设计是采用单例模式,不是系统加载初始化就会抛出SecurityException异常
2024年01月27日 836次浏览

JVM中的动态分派机制到底是怎么回事?

方法调用方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,但前面已经讲过,Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都
2024年01月24日 739次浏览

JAVA-Benchmark-工具JMH

为什么需要Benchmark工具如果想要知道一段代码的性能如何,一种常用的做法可能是这样的:long start = System.currentTimeMillis();// do something ...System.out.println(System.currentTimeMillis()
2024年01月22日 664次浏览

Lambda表达式是如何设计的

Lambda表达式是如何设计的转载自布赖恩·戈茨的Translation of lambda expressions in javac引言阅读本文需要对invokedynamic指令知识有所了解:Invokedynamic转换策略在字节码中表示Lambda表达式有多种方案,例如内部类、方法句柄、动态
2024年01月12日 645次浏览

字节序、大端字节序(Big Endian)、小端字节序(Little Endian)

字节序,简单来说,指的是 超过一个字节的数据类型在[内存]中存储的顺序 有几种字节序? 大端字节序(Big Endian) 高位字节数据存放在内存低地址处,低位字节数据存放在内存高地址处。 小端字节序(Little Endian) 高位字节数据存放在内存高地址处,低位数据存放在内存低地址处。
计算机 2023年12月24日 1,179次浏览

一个优雅的环境管理工具--SDKMAN

是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API来安装,切换,删除和列出sdk相关信息。以下是一些特性
2023年11月16日 1,402次浏览

Function、Consumer、Supplier的妙用

这一篇我们来了解JDK8已经定义好的几个函数式接口。一、概述Jdk8之后新增的一个重要的包 : java.util.function该包下所有的接口都是函数式接口, 按分类主要分为四大接口类型: Function、Consumer、Predicate、Supplier。有关Predicate这里不再
2023年11月14日 677次浏览

后端也可以数据绑定--BeanMap的使用

BeanMap 是 Apache Commons BeanUtils 库中的一个类,它提供了一种将 Java 对象转换为 Map 的方式。BeanMap 可以将 Java 对象的属性作为键,属性值作为对应的值,存储在一个 Map 中。BeanMap在后端最常用的场景就是读取配置文件的信息。一、基本用
2023年11月12日 694次浏览

TT命令实现简单压力测试--Arthas的妙用

1.Arthas TT 简单压力测试发现问题。
2023年11月07日 658次浏览