jvm
初识虚拟机JVM
# 初识JVM (JAVA Virtual Machine) JVM是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行bytecodes 字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。 JVM负责将java字节码解释运行,边解释边运行,这 ......
JVM(六)堆
### JVM(六)堆 #### 1 核心概述 - **几乎所有的对象实例和数组都是分配在堆上的**(栈不会存储数组和对象,栈帧中的局部变量表只会存储指向堆中实例的引用)  ## 如何标定对象是否存活 两种方法 : ......
JVM 面试题
# JVM 面试题 JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java 虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法 ......
JVM系列---【如何确定FullGC的频率?】
# 如何确定FullGC的频率? ## 1.查看程序运行以来共发生了多少次FullGC ```shell #查看进程号pid jps -l #查看fullgc,5000代表每隔5s打印一次 jstat -gc pid 5000 S0C:第一个幸存区的大小 S1C:第二个幸存区的大小 S0U:第一个幸 ......
JVM系列---【Arthas的下载与使用】
# Arthas的下载与使用 > 使用jdk自带的工具,一般需要开通一些端口,添加一些jvm启动参数,比较麻烦,生产环境一般也不让重启,所以我们现在用Arthas更方便。调优的目的主要为了减少GC,因为每次GC都会调用STW机制(stop the world),而STW会停掉用户线程,因此频繁触发S ......
Java虚拟机(JVM):第四幕:自动内存管理 - 经典垃圾收集器
前言:如果说收集算法是内存回收的方法论,那么垃圾收集器则是内存回收的实践者。整哥Java堆 :Full GC。 1、Serial收集器:最基础、历史最悠久的收集器,这是一个单线程工作的收集器。 2、ParNew收集器:是Serial收集器的多线程并行版本,可以说是跟Serial完全一样。 CMS收集 ......
JVM系列---【visualvm的使用】
# visualvm的使用 > visualvm是java提供的一个监控工具,可以用来查看线程,堆使用情况,cpu,类等使用情况的一个工具,JDK8及之前自带,JDK9之后就只支持单独下载了。我们可以用来实时查看本地或远程的程序运行状态,也可以支持导入dump快照文件来查看快照状态,一般生产用快照多 ......
JVM系列---【jvisualvm安装Visual GC插件】
# jvisualvm安装Visual GC插件 ## 离线安装 ### 1.下载Visual GC插件 地址:[https://visualvm.github.io/uc/8u131/updates.html](https://visualvm.github.io/uc/8u131/updates ......
阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂
前言: 金三银四刚刚过去了,不知道很多小伙伴都拿到自己心仪的offer没有,我这边也收到了一个粉丝投来的消息,说看到阿里的面试真题之后人都是懵的,发现自己一窍不通,下面给大家分享我这个粉丝的经历,以及我在这方面学习的经验。 阿里微服务面试真题 1.单片,SOA 和微服务架构有什么区别? 单片 SOA ......
jvm-第五节类加载器
# jvm-第五节类加载器 ### 本篇知识点概况 1. 字节码相关知识 1. 字节码的基础知识,了解字节码的概念,用途,特点 2. 字节码的分析工具使用 3. class文件格式格式与详解 4. 字节码的指令:基础存储运算指令,异常处理,装箱拆箱,数组 5. 热点探测之jit与字节码 2. 类加 ......
Java虚拟机(JVM):第三幕:自动内存管理 - 垃圾收集器与内存分配策略
前言:Java与C++之间有一堵高墙,主要是有内存动态分配和垃圾收集技术组成的。墙外的人想要进来,墙内的人想要出去。 一、概述 每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的。内存的分配和回收都具有确定性。 二、对象已死? 垃圾收集器在对堆进行回收之前,不能确定哪些“对象”活着,哪些“对 ......
(转)Java系列:JVM中的OopMap(zz) - 拿走不谢 - 博客园
> 转载自 : https://www.cnblogs.com/strinkbug/p/6376525.html 调用栈里的引用类型数据是GC的根集合(root set)的重要组成部分;找出栈上的引用是GC的根枚举(root enumeration)中不可或缺的一环。 JVM选择用什么方式会影响到G ......
04_Jvm
## JVM ### 什么是JVM java虚拟机,我们所写的代码就是在jvm上运行,我们平时书写的代码是.java文件,然后经过编译为.class字节码文件,现在我们想要运行它,首先需要启动JVM虚拟机,JVM虚拟机本身也是一个程序(用C书写的) ### JVM由哪几部分组成 #### 类加载器 ......
JVM关键知识点整理,从入门到提高到实践
基础篇 一、了解JVM内存结构 Java 虚拟机定义了各种在程序执行期间使用的运行时数据区域。这些数据区域有一些是在Java虚拟机启动时创建的,并在Java虚拟机退出时销毁,有一些数据区域是每个线程独有的,在线程创建时创建,在线程销毁时销毁,根据《Java虚拟机规范》的规定,Java虚拟机运行时所需 ......
Java虚拟机(JVM)内存底层分析
对象和类的详解 类:我们叫做class。 对象:我们叫做Object,instance(实例)。 总结 1.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 2.类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。 类的定义:对于一个类来说,有三种成员 ......
docker查看jvm内存占用
一。进入docker容器的宿主机,查看运行指定镜像的容器id(结果的第一列) docker ps | grep myImageName(或docker ps | grep java) 二。进入容器内部: docker exec -it containerId sh 三。直接输入top命令: 可看到基 ......
聊聊JVM虚方法表和方法调用
> 作者:小牛呼噜噜 | [https://xiaoniuhululu.com](https://xiaoniuhululu.com/) > 计算机内功、源码解析、科技故事、项目实战、面试八股等更多硬核文章,首发于公众号「[小牛呼噜噜](https://www.xiaoniuhululu.com/i ......
day05--23.7.3JDK、JRE、JVM以及开发环境搭建
# JDK、JRE、JVM ## JDK:Java Development Kit--JAVA开发者工具--用于程序开发 - java--编译运行java - javac--编译运行java - javadoc--java生成文档 - jar--java打包成应用 ### JRE:Java Runt ......
Java虚拟机(JVM):第二幕:自动内存管理 - Java内存区域与内存溢出异常
前言:Java与C++之间有一堵高墙,主要是有内存动态分配和垃圾收集技术组成的。墙外的人想要进来,墙内的人想要出去。 一、运行时数据区域 JVM在执行Java程序时,会将其管理的内存划分为若干个不同的数据区域。 1、是程序计数器,一个处理器一般只会执行一条线程的指令。为了线程切换后恢复到正确的执行位 ......
Idea远程debug调试本地代码 Remote JVM Debug
如果项目太大本地启动不了,或者假设你项目是微服务项目依赖太多,你写了个功能后,想本地启动debug调试又不方便,此时可以用一个idea远程debug神奇。实现访问测试环境,回调到你本地启动的代码。 ## 1,准备一个springboot项目 什么都不用配置  为您奉上珍贵的学习资源 : 免费赠送 :[**《尼恩Java面试宝典》**](https://www. ......
java.net.BindException: Address already in use: JVM_Bind <null> 的解决方案
# 问题描述 > 在学习SSM整合中 , 启用Tomcat插件时出现以下错误 ```java java.net.BindException: Address already in use: JVM_Bind ``` 通过查阅资料发现是端口被占用了 # 解决方案 通过命令查看进程 , 这里我的是808 ......
JDK ,JRE ,JVM的关系02
JDK:Java Development Kit(Java 开发者工具,JDK 相当于在JRE的基础上扩充了一些开发工具,JDK包含JRE)JRE:Java Runtime Environment(Java 运行时环境,只要安装JRE就可以运行java程序了)JVM:JAVA Virtual Mac ......
jvm学习笔记
# 1. JVM快速入门 从面试开始: 1. 请谈谈你对JVM 的理解?java8 的虚拟机有什么更新? 2. 什么是OOM ?什么是StackOverflowError?有哪些方法分析? 3. JVM 的常用参数调优你知道哪些? 4. 内存快照抓取和MAT分析DUMP文件知道吗? 5. 谈谈JVM ......
JVM工具
大部分工具都是基于或者要用到`JMX`,所以程序启动时需要添加参数`-Dcom.sun.management.jmxremote`开启JMX管理功能,JDK6及以上版本默认开启 ## jps jps:JVM Process Status Tool,功能与ps类似,可以列出正在运行的虚拟机进程,并显示 ......
一篇带你了解JVM内存模型和垃圾回收机制
JVM内存模型 根据Java虚拟机规范,Java数据区域分为五大数据区域。 JVM的结构 其中方法区和堆是所有线程共享的,虚拟机栈、本地方法栈和程序计数器则为线程私有的。 有的博客称方法区是永久代,那是因为前者是JVM的规范,而后者则是JVM规范的一种实现,并且只有HotSpot才有永久代, JDK ......
JVM 性能调优
# JVM 性能调优 在高性能硬件上部署程序,目前主要有两种方式: - 通过 64 位 JDK 来使用大内存; - 使用若干个 32 位虚拟机建立逻辑集群来利用硬件资源。 ## 使用 64 位 JDK 管理大内存 堆内存变大后,虽然垃圾收集的频率减少了,但每次垃圾回收的时间变长。 如果堆内存为 14 ......