原创 2021-07-29 10:05:28
304阅读
1.Java代码编译和执行的整个过程;2. JVM内存管理及垃圾回收机制; 先看图,二.Java代码编译和执行的整个过程Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JV...
转载 2014-02-13 17:41:00
107阅读
2评论
1. 简述 Java 不仅仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系。 Java 的广告词为 "一次编写,到处运行",之所以能够做到"跨平台",是因为每个平台上不同的虚拟机屏蔽了硬件的差异,而 Java 程序则是运行在虚拟机之上的。 本文简要介绍 Java 技术体系及 Java
原创 2021-08-05 15:15:16
398阅读
这是我在团队内做技术分享的笔记。首发于个人,所以图片有水印。
jvm
原创 2019-02-13 11:16:03
1311阅读
转载 2023-09-13 10:58:27
50阅读
评: 动态代理 Sun对动态代理的说明: 一个简单例子代码: 动态代理的内部实现——代码生成: 研究JDK源代码,发现在Proxy的sun实现中调用了sun.misc.ProxyGenerator类的generateProxyClass( proxyName, interfaces)方法,其返回值为byte[]和class文件的内存类型一致。于是做如下试验: public c
原创 2023-04-20 12:08:38
86阅读
动态追踪技术动态追踪技术是一个可以不用重启线上java项目来进行问题排查的技术,也叫Java Agent技术,可以利用它来构建一个附加的代理程序,用来协助检测性能,还可以替换一些现有功能,甚至JDK的一些类我们也能修改,有点像JVM级别的AOP功能。既然作为JVM的AOP,就必须要有AOP的功能,所以Java Agent提供了两个类似于AOP的方法:premain():在main()方法运行之前的
原创 2023-04-23 10:25:30
160阅读
一、假设检验原理假设检验(hypothesis testing),又称统计假设检验,也叫显著性检验,是用来判断样本与样本、样本与总体的差异是由抽样误差引起还是本质差异造成的统计推断方法。显著性检验是假设检验中最常见的一种方法,也是一种最基本的统计推断形式。其基本原理是:先对总体的特征做出某种假设,然后通过抽样研究的统计推理,对此假设应该被拒绝还是接受做出推断。对总体特征做某种假设,然后通过样本研究
简介1、定义Docker是通过内核(linux内核)虚拟化技术(namespaces及cgroup等)来提供容器的资源隔离和安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。2、Docker组成部分客户端和服务端3、Docker组件镜像(image)、容器(container)、仓库(reposit
转载 2023-09-02 21:56:05
111阅读
JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。 首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。为了提高执行速度,引入了JIT技术。 在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。下面我看看,JIT的工作过程。
转载 精选 2013-08-27 21:21:10
1575阅读
JVM 字节码增强技术通常是指在 Java 编译后生成的字节码基础上,对其进行修改或增强的技术。字节码增强可以用于多种用途,如性能优化、代码注入、调试、监控、依赖注入(如 Spring AOP)、动态代理等。实现这些功能的核心技术主要有以下几种:字节码操作库(如 ASM、Javassist、CGLib)Java Agent 和 Instrumentation动态代理(JDK Proxy 和 CGL
原创 精选 5月前
287阅读
JVM探针是自jdk1.5以来,由虚拟机提供的一套监控类加载器和符合虚拟机规范的代理接口,结合字节码指令能够让开发者实现无侵入的监控功能。如:监控生产环境中的函数调用情况或动态增加日志输出等等。虽然在常规的业务中不会有太多用武之地,但是作为一项高级的技术手段也应该是资深开发人员的必备技能之一。同时, ...
转载 2021-10-03 23:04:00
248阅读
2评论
一:容器框架概述1.什么是容器2.Java 中的容器二:Collectoin 容器1.Collection 接口定义2.Collection 三个重要的子接口 List、Set、Queue3.List接口最重要的两个实现类 ArrayList 和 LinkedList4.Set 接口重要的实现类 HashSet5.Queue 接口介绍三:Map 容器1.Map 接口定义2.Map 重
转载 2023-07-18 22:18:54
2阅读
JVM相关面试总结内存泄漏如何排查?
原创 2022-01-11 14:07:46
146阅读
JVM相关面试总结内存泄漏如何排查?
原创 2021-09-04 15:59:24
10000+阅读
当你提到Java虚拟机(JVM)的内存优化技术时,压缩指针是一项非常重要的技术。在本篇博文中,我们将详细介绍JVM的压缩指针内存优化技术,包括其概念、原理、作用以及可能产生的影响。
原创 2024-06-14 06:53:27
49阅读
1.  前言既然是分布式系统,就离不开对于多线程程序的开发,面对客户端大并发的访问,如何控制程序的多线程资源?我们都知道在程序中使用关键字synchronized,对对象级别的加锁也好,对类级别的加锁也罢。JVM在底层是如何运行的,这个属于JVM处理多线程的原理了,当然了,JVM最终当然还是需要操作系统和CPU一起完成真正的多线程并发的问题。只是咱们这次放慢时间,看看JVM这一层对于多线
前提概要 JVM的内存分配主要在是运行时数据区(Runtime Data Areas),而运行时数据区又分为了:方法区,堆区,PC寄存器,Java虚拟机栈(就是栈区,官方文档还是叫Java虚拟机栈),本地方法区,内...
转载 2021-05-03 09:22:00
230阅读
2评论
与其他高级语言不一样,在Java中基本上不会显示地调用分配内存的函数,我们甚至不用关心到底哪些程序指令需要分配内存,哪些不需要分配内存。我们首先需要从操作系统层面理解物理内存的分配和Java运行的内存分配之间的关系。物理内存与虚拟内存1 物理内存就是RAM,还有一个存储单元叫做寄存器,连接处理器和RAM或者寄存器的是地址总线,这个地址总线的宽度影响了物理地址的索引范围,32位地址总...
字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。接下来,我们将从最直接操纵字节码的实现方式开始深入进行剖析。
原创 2024-07-10 16:42:36
52阅读
  • 1
  • 2
  • 3
  • 4
  • 5