1. 分代收集算法当前主流 VM 垃圾收集都采用”分代收集”(Generational Collection)算法, 这种算法会根据 对象存活周期的不同将内存划分为几块, 如 JVM 中的 新生代、老年代、永久代,这样就可以根据 各年代特点分别采用最适当的 GC 算法 1.1. 在新生代-复制算法 每次垃圾收集都能发现大批对象已死, 只有少量存活. 因此选用复制算法, 只需要付出少量 存活对象的复
原创 2024-01-13 09:38:41
134阅读
方法调用的底层实现 1. 一般我们写的代码都是经过编译,类加载,进入运行时数据区,一般是方法区,人关注的是方法的执行 2. jvm关注的是字节码的执行, 3. main函数是指令的起点,jvm创建main线程执行main方法,出发jvm的一些列指令,使jvm跑起来 4. 所以要了解在jvm中 方法调
jvm
原创 2021-06-03 17:16:59
34阅读
方法调用的底层实现 1. 一般我们写的代码都是经过编译,类加载,进入运行时数据区,一般是方法区,人关注的是方法的执行 2. jvm关注的是字节码的执行, 3. main函数是指令的起点,jvm创建main线程执行main方法,出发jvm的一些列指令,使jvm跑起来 4. 所以要了解在jvm中 方法调
jvm
原创 2021-05-26 23:22:22
211阅读
堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限-Xmx3550m -Xms3550...
转载 2024-05-30 14:05:21
15阅读
以 - 开头为标准参数,所有的 JVM 都要实现这些参数,并且向后兼容。-D 设置系统属性。以 -X 开头为非标准参数, 基本都是传给 JVM 的,默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容。 可以使用 java -X 命令来查看当前 JVM 支持的非标准参数。以 –XX:开头为非稳定参数, 专门用于控制 JVM的行为,跟具体的 JVM 实现有关,随时可能会在下个版本取消。-XX:±Flags 形式, ± 是对布尔值进行开关。-XX:key=valu.
原创 2022-04-20 14:53:32
762阅读
1. 堆的核心概述1.1 概述堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM ,但是进程包含多个线程,他们是共享同一堆空间的, 前面所学习到的 程序计数器 本地方法栈, 虚拟机栈, 是每个线程独立占有的一份, 而 堆空间 和后面所说的 方法区, 则是 所有线程共享的,如下图 , 灰色区域表示的是每个线程独有的, 红色区域表示所有线程 共有的1.2 对堆的认识一个JVM实例只存在一个
转载 2021-01-27 22:48:10
236阅读
2评论
# Java 7 JVM 优化指南 ## 引言 在现代软件开发中,性能是一个至关重要的因素。为了提高 Java 应用程序的性能,我们需要对 JVM 进行优化。本文将介绍如何通过一系列的步骤来优化 Java 7JVM。 ## 步骤概览 以下是优化 Java 7 JVM 的一般步骤概览。我们将在下文中详细介绍每个步骤以及需要采取的具体措施。 | 步骤 | 描述 | | --- | ---
原创 2023-08-06 11:23:06
64阅读
1、java SE 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html2、配置java开发环境Win10 控制面板\所有控制面板项\系统---->高级系统设置路径截图环境变量用户变量配置成功JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解Win
JVM中对象存储的内存布局有三大部分,分别是对象头,实例数据,对齐填充; 1.对象头 对象头分为三部分,第一部分我们知道有这么个东西就行,第二部...
原创 2022-03-11 11:34:44
93阅读
感谢大佬的录屏,延迟看一下JVM的视频课程,记一下笔记: 开篇这玩意儿我暂时也看不懂,先放在这里: 接下来给了一段创建对象的代码,以及它的java汇编码 字节码: 0.new ->申请内存。堆里有了一个新的内存。(半初始化。成员变量设置默认值) 3 dup 因为invokespecial会消耗一份,
转载 2020-06-17 11:47:00
229阅读
2评论
(一)调优的基本概念① 介绍切记:JVM调优没有什么必要,不要瞎搞,这是很忌讳的事情,毕竟JVM是个很成熟的
原创 2022-05-11 11:16:13
576阅读
   本文使用下面这张图详细介绍JAVA线程的六种状态    JAVA线程的六种状态详解               在java.lang.Thread类中,定义了线程的以下六种状态(同一个时刻线程只能有一种状态)       
博主个人独立站点开通啦!欢迎点击访问:https://shuyi.tech 当编译器将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取
原创 2022-07-22 17:00:11
88阅读
JVM崩溃的原因及解决! 前些天,搞JNI的时候,报了个JVM崩溃的错。错误信息如下:# # An unexpected error has been detected by HotSpot Virtual Machine: # #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x009fcf52, pid=4752, t
转载 2024-05-23 11:28:59
86阅读
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。
转载 2021-07-06 10:54:40
106阅读
作者:HH 时间:2017-09-24 地点:杭州 1. 准备自定义的jar包,方法如下: 1.1 导出的jar包如下图所示 2. 将jar包设置为Linux服务,这里没有通过自己手动编写shell脚本实现,转而采用第三方插件 “Java Service Wrapper”,下载地址为: http
转载 8月前
35阅读
通过控制台修改jvm堆大小步骤如下:(修改完后需要将was重启)1.设置 应用程序服务器 jvm堆大小2.修改 eployment Manager jvm堆大小3.修改 Node Agent jvm堆大小
原创 2013-07-23 08:59:35
1852阅读
1点赞
dump heap是诊断与内存相关的问题的重要手段,例如:内存泄漏、垃圾回
原创 2022-06-17 09:20:15
935阅读
上一节中,我们已经将CentOS默认的yum源更改为了阿里云的yum源,这无疑会让我们访问下载的速度快上很多,今天给大家分享的是如何在CentOS中安装jdk,博主以前也在CentOS中安装过无数次jdk,一般都是通过yum安装,或者是通过连接工具将下载好的tar.gz压缩文件拖到CentOS系统中,然后解压,今天博主给大家分享另外一种安装方式,通过wget命令下载,而后解压。在这里博主使用的是腾
转载 2024-08-14 09:50:36
95阅读
一、前言      前几篇博客,小编向大家介绍了JVM的一些基本知识,包括JVM
原创 2023-05-06 16:13:43
196阅读
  • 1
  • 2
  • 3
  • 4
  • 5