摘要:
类加载子系统的作用 类加载子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识即16进制CA FE BA BE。 加载后的Class类信息存放于一块成为方法区的内存空间。除了类信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量 阅读全文
摘要:
Java对象的创建 几乎所以对象都在JVM的堆中创建,通过类加载器加载进内存,并检查,然后分配内存,开始类的属性初始化赋值,设置对象头信息,通过构造方法创建对象。 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、 阅读全文
摘要:
-- 阅读全文
摘要:
-- 阅读全文
摘要:
哪些内存需要回收 我们都知道JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。 其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。 阅读全文
摘要:
运行时数据区是jvm中最为重要的部分。也是我们在调优时需要重点关注的区域。 根据《Java虚拟机规范》中的规定,在运行时数据区将内存分为方法区(Method Area)、Java堆区(JavaHeap)、Java虚拟机栈(Java Virtual Machine Stack)、程序计数器(Progr 阅读全文
摘要:
用记事本写第一个java程序HelloWorld 第一步:写java源代码程序:HelloWorld.java 第二步:编译java源代码程序,生成HelloWorld.class文件,字节码文件 第三步:运行程序.(在JVM里运行的) 关于JVM,其实有很多大厂开发了不同版本的JVM,比较知名的有 阅读全文
摘要:
Java 性能诊断工具简介 在 Java 的世界里,有许多诊断工具可供选择,既包括像 jmap、jstat 这样的简单命令行工具,又包括 JVisualvm、JProfiler 等图形化综合诊断工具,同时还有 SkyWalking、ARMS 这样的针对分布式应用的性能监控系统。 简单命令行工具 JD 阅读全文