![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
快乐风男111
fdd
展开
-
JVM的server模式和client模式
一、前因从Eclipse官网下载最新版本的Eclipse后,双击程序,却发现下图所示错误:JVM的1.7版本不适合此产品,版本:需要1.8或更高版本。我就奇了怪了:明明在dos窗口中 java -version之后,显示的就是JDK1.8的相关信息啊?怎么还会有这样的提示?莫非是需要我把之前安装的JDK1.7卸载掉吗?之后又试着修改环境 变量classpath,无果。原来java的虚拟机h...原创 2019-10-16 09:10:52 · 536 阅读 · 0 评论 -
jdk1.8 默认垃圾收集器查看
java -XX:+PrintFlagsFinal可以看到1.8默认的是 UseParallelGC UseParallelOldGCParallelGC 默认的是 Parallel Scavenge(新生代)+ Serial Old(老年代)UseParallelOldGC 这个是默认开启的 这个是并行收集器的 老年代版本最后的结果就是 jdk1.8 默认使用的收集器是Para...原创 2019-07-23 10:41:18 · 11459 阅读 · 4 评论 -
使用关键字volatile时出现非线程安全的原因
变量在内存中工作的过程如下图所示。由上,我们可以得出以下结论。read和load阶段:从主存复制变量到当前线程工作内存;use和assign阶段:执行代码,改变共享变量值;store和write阶段:用工作内存数据刷新主存对应变量的值。在多线程环境中,use和assign是多次出现的,但这一操作并不是原子性,也就是在read和load之后,如果主内存count变量发生修改之后,线程工作...原创 2019-07-22 17:35:23 · 2941 阅读 · 0 评论 -
堆溢出、栈溢出的经典例子
堆溢出public class HeapOutOfMemory { public static void main(String[] args) { List list = new ArrayList(); list.add(new HeapOutOfMemory()); }}栈溢出public class StackOutOfMemory...原创 2019-06-18 11:21:45 · 4374 阅读 · 1 评论 -
查看JAVA进程JVM参数
jinfo -flags pid(进程号)-XX:CICompilerCount=2 最大的并行编译数-XX:InitialHeapSize=16777216 JVM 的初始堆内存大小-XX:MaxHeapSize=257949696 JVM 的最大堆内存大小-XX:MaxNewSize=85983232-XX:MinHeapDeltaBytes=196608-XX...原创 2019-06-16 20:19:56 · 7929 阅读 · 0 评论 -
SpringBoot jar包启动设置JVM参数
配置初始化堆和最大堆的大小:java -Xms1024m -Xmx1024m -jar app.jar & 设置jvm参数建议初始化堆的大小和最大堆的大小设置一致,减少GC。原创 2019-06-16 20:17:14 · 27255 阅读 · 0 评论 -
JVM入门
深入理解JVM虚拟机自动内存管理机制Java虚拟机原理所谓虚拟机,就是一台虚拟的机器。他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box、Vmare就属于系统虚拟机,他们完全是对物理计算的仿真,提供了一个可以运行完整操作系统的软件平台。程序虚拟机典型代码就是Java虚拟机,它专门为执行单个计算程序而计算,在Java虚拟...原创 2019-06-13 14:13:40 · 2305 阅读 · 0 评论