声明:本文内容仅作为本人方便记忆和查看所用。JVM有五块内存空间:  1、method area:用于存储已被加载的类信息、常量、静态变量、即时编译后的代码等数据。  注:在JDK8中,Method Area(方法区)即PermGen(永久代)已经废弃,取而代之的是Metaspace(元空间);Metaspace的性质与Method Area基本类似,他们的本质区别是Metaspace不在虚拟机中
转载 2024-03-21 12:12:58
22阅读
 JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理,文章末尾附有HashMap的put方法和resize方法的源码解析。简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、
转载 2024-09-15 15:26:52
46阅读
一、对象的分配虚拟机遇到一条new指令时:根据new的参数是否能在常量池中定位到一个类的符号引用,如果没有,说明还未定义该类,抛出ClassNotFoundException。检查加载:先执行相应的类加载过程。如果没有,则进行类加载,可以用 javap 查看编译后的 java class 文件字节码。 打印对象的堆栈信息:javap -v -p -s -sysinfo -constants cla
以下笔记整理基于 Walter Rudin 所著的 《Principles of Mathematical Analysis Third Edition》(数学分析原理第三版),在下文以及标题中简称为教材.定义1:度量空间度量空间(metric space)是一个集合,记为 X,其元素称作点,在 X 上定义一个适用于其中任意两点 p 和 q 的距离函数 d(p, q),该函数的值域为非负实数,且满
转载 2024-04-26 17:53:27
86阅读
jvisualvm分析内存溢出问题一、创建springBoot项目二、使用jvisualvm监控1. 配置springboot项目,修改jvm参数,使其发生内存溢出错误(java.lang.OutOfMemoryError)2. 打开jvisualvm3. jvisualvm安装visual GC3. 使用visual GC查看堆栈情况三、使用jvisualvm对堆栈快照进行分析1. 导入.hpr
转载 2024-07-12 10:02:50
460阅读
从JDK8开始,永久代(PermGen)的概念被废弃掉了,取而代之的是一个称为Metaspace的存储空间。Metaspace使用的是本地内存,而不是堆内存,也就是说在默认情况下Metaspace的大小只与本地内存大小有关。当然你也可以通过以下的几个参数对Metaspace进行控制:-XX:MetaspaceSize=N 这个参数是初始化的Metaspace大小,该值越大触发Metaspace
转载 2023-11-19 14:26:53
936阅读