随笔分类 -  JVM

摘要:局部变量 方法中的局部变量存在于栈内存。每当程序调用一个方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因。 成员变量 对象实例的引用存储在栈内存中,对象实例存储在 阅读全文
posted @ 2022-11-06 17:03 残城碎梦 阅读(2665) 评论(1) 推荐(0) 编辑
摘要:为什么要有Java内存模型 可见性,由缓存导致的可见性问题。 有序性,由编译优化导致的有序性问题。 原子性,由线程切换导致的原子性问题。 Java内存模型就是为了解决可见性和有序性问题。 什么是Java内存模型(JMM) 注意:JVM内存模型与Java内存模型是两个不一样的东西。 JVM内存模型:具 阅读全文
posted @ 2022-02-14 18:41 残城碎梦 阅读(312) 评论(0) 推荐(0) 编辑
摘要:1、首先final修饰成员变量(final单独修饰不和static一起使用)是在实例初始化的时候被赋值的。这个和非final修饰成员变量赋值时机没有什么不同,只不过final修饰的不能多次赋值罢了。 2、final static修饰的成员变量只有在其类型为ConstantValue时才会在准备阶段被 阅读全文
posted @ 2021-12-01 09:09 残城碎梦 阅读(411) 评论(0) 推荐(0) 编辑
摘要:java启动参数共分为三类 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使 阅读全文
posted @ 2021-11-26 23:14 残城碎梦 阅读(239) 评论(0) 推荐(0) 编辑
摘要:Heap Dump概述 Heap dump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况。Heap dump文件是指定时刻的Java堆栈的快照,是一种镜像文件。Heap dump一般都包含了一个堆中的Java Objects, Class等基本信息。同时,当你在执行一个转储操作时,往往 阅读全文
posted @ 2021-11-26 11:59 残城碎梦 阅读(3169) 评论(0) 推荐(0) 编辑
摘要:类加载子系统的作用 类加载子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识即16进制CA FE BA BE。 加载后的Class类信息存放于一块成为方法区的内存空间。除了类信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量 阅读全文
posted @ 2021-11-24 22:16 残城碎梦 阅读(84) 评论(0) 推荐(0) 编辑
摘要:Java对象的创建 几乎所以对象都在JVM的堆中创建,通过类加载器加载进内存,并检查,然后分配内存,开始类的属性初始化赋值,设置对象头信息,通过构造方法创建对象。 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、 阅读全文
posted @ 2021-11-24 22:11 残城碎梦 阅读(1914) 评论(0) 推荐(0) 编辑
摘要:哪些内存需要回收 我们都知道JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。 其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。 阅读全文
posted @ 2021-11-24 13:26 残城碎梦 阅读(187) 评论(0) 推荐(0) 编辑
摘要:运行时数据区是jvm中最为重要的部分。也是我们在调优时需要重点关注的区域。 根据《Java虚拟机规范》中的规定,在运行时数据区将内存分为方法区(Method Area)、Java堆区(JavaHeap)、Java虚拟机栈(Java Virtual Machine Stack)、程序计数器(Progr 阅读全文
posted @ 2021-11-24 13:23 残城碎梦 阅读(535) 评论(0) 推荐(0) 编辑
摘要:用记事本写第一个java程序HelloWorld 第一步:写java源代码程序:HelloWorld.java 第二步:编译java源代码程序,生成HelloWorld.class文件,字节码文件 第三步:运行程序.(在JVM里运行的) 关于JVM,其实有很多大厂开发了不同版本的JVM,比较知名的有 阅读全文
posted @ 2021-11-24 13:19 残城碎梦 阅读(246) 评论(0) 推荐(1) 编辑
摘要:Java 性能诊断工具简介 在 Java 的世界里,有许多诊断工具可供选择,既包括像 jmap、jstat 这样的简单命令行工具,又包括 JVisualvm、JProfiler 等图形化综合诊断工具,同时还有 SkyWalking、ARMS 这样的针对分布式应用的性能监控系统。 简单命令行工具 JD 阅读全文
posted @ 2021-11-24 13:15 残城碎梦 阅读(10782) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示