JVM
文章平均质量分 93
topEngineerr
个人邮箱[email protected]。欢迎交流。
展开
-
[JVM] java虚拟机内存管理机制及垃圾收集
Table of Contents虚拟机内存结构详解程序计数器虚拟机栈 JVM stack本地方法栈 native method stack常量池堆 heap方法区 method area为什么要放弃永久代permnent generation?局部变量和类变量内存布局String对象存储?对象的内存布局?虚拟机栈中的引用如何和堆中的对象产生关联的?...原创 2018-08-03 00:32:34 · 1389 阅读 · 0 评论 -
VisualVm Error记录
当使用VisualVM分析java虚拟机的内存状况,我们常常需要用到heapdump这个功能来分析哪个对象哪些类占据了最大的内存.。但是当这个类的占的内存过大时,在VisualVM里面查看类的所有instances实例的时候会遇到这样一个错误:out of memory in heap walker:To avoid this error,increase the -Xmx value i...原创 2019-04-09 11:39:28 · 1098 阅读 · 0 评论 -
[java] GC (Allocation Failure)日志分析
Table of Contents概述JConsoleVisualVmGC日志GC日志分析概述博主在最近使用spring batch的过程当中遇到了内存容量耗尽程序崩溃的问题,于是决定将此次的内存问题分析通过本篇博客记录下来。在分析gc日实例志之前,我们先通过一条《深入理解java虚拟机》一书中的一个例子gc日志来回顾一下gc日志的基本知识,下面是一条gc日志:...原创 2019-04-03 13:10:05 · 25913 阅读 · 6 评论 -
[java] 反射和多态实现原理详解以及对比
Table of Contents反射和多态多态什么是多态java里多态的具体用法多态的实现原理反射什么是反射反射的实现原理反射的应用反射的弊端反射相关类反射应用实例一些问题private修饰的方法可以通过反射访问,那么private意义何在?反射和多态的区别反射和多态事实上,反射和多态这两种技术并无直接联系,之所以把它们放在一起...原创 2018-08-22 21:39:49 · 5297 阅读 · 1 评论 -
[java] 关键字new是如何实现的
目录概述什么时候我们可以new一个类虚拟机处理new指令的流程一些问题1.两种new对象方式的区别2.变量初始化的默认值3.构造方法4.new一个对象时的内存空间担保?5. 关于局部变量6. 静态变量是在何时初始化的?与对象实例化有什么关系?7.使用Class类提供的newInstance和使用关键字new有哪些不同?概述在java里面创建一...原创 2018-07-24 23:53:37 · 24623 阅读 · 12 评论 -
[Java] String类深度解析
Table of Contents概述String类成员变量重要方法解析equals方法其他String的用法intern()方法和字符串比较hashcode方法字符串拼接方法其他方法length方法isEmpty方法charAt方法startWith方法String 对象内存分配问题正则表达式本文基于jdk1.8概述Stri...原创 2018-07-21 12:05:51 · 1846 阅读 · 1 评论 -
[java] Runtime类解析
概述每一个java application都有一个Runtime类的单例,这个实例允许应用程序访问一些程序所运行的环境的接口。此类不能被应用程序实例化。getRuntime方法程序当前的runtime实例可以通过getRuntime方法得到,代码如下: private static Runtime currentRuntime = new Runtime(); /**...原创 2018-09-01 13:30:17 · 408 阅读 · 0 评论 -
[JVM]虚拟机类加载机制
目录概述加载连接阶段验证准备解析初始化类加载器双亲委派模型类加载器种类什么是双亲委派模型双亲委派机制的优点?双亲委派模型的实现破环双亲委派模型类加载及执行子系统Tomcat关于OSGIOSGI 实战一些问题java类的初始化顺序是怎样的?运行时可以加载类吗?如果可以如何加载?运行时可以创建一个全新的类,并...原创 2018-06-26 18:20:38 · 1496 阅读 · 2 评论 -
Class类文件详解
目录Class类文件魔数,Class文件版本常量池访问标志类索引、父类索引与接口索引集合字段表集合方法表集合属性表集合Code属性字节码指令加载和存储指令运算指令类型转换指令对象创建与操作操作数栈管理指令控制转移指令方法调用和返回指令抛出异常同步11、栈和局部变量操作指令(1)将常量压入栈的指令(2)从栈中的局...原创 2018-08-24 19:34:34 · 691 阅读 · 0 评论 -
jdk包结构及用途分析
Table of Contents概述jdk包总览rt.jar包结构分析概述jdk是每一个使用java的人员每一天都在使用的东西,博主也已经研究了jdk源代码中的一些类了,本篇博客是想从jdk包结构的角度去拆分jdk的源代码包,以提供从设计角度的一个理解。本篇博客基于jdk1.8jdk包总览jdk的包如下图所示:该图是直接从jdk的包目录截取出来的图,我们常...原创 2019-05-29 17:49:17 · 2975 阅读 · 0 评论