首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JVM 知识总结

在初始化阶段,主要为类的静态变量赋予正确的初始值,JVM负责对类进行初始化,主要对类变量进行初始化。...我们看一下实现步骤 (1)创建一个类继承ClassLoader抽象类 (2)重写findClass()方法 (3)在findClass()方法中调用defineClass() 二.JVM内存模型 1.jvm...软引用:如 SoftRefence wr=new SoftRrfence(Object o) 此类引用内存溢出时直接被回收 4.虚引用:不常用,用于gc时通知,随时可以被回收 四.逃逸分析 1.jvm...指令重排序(jvm在编译时会进行指令重排序) 2.保证可见性(一个线程的修改对另个线程是可见的) 3.不保证原子性(可由syhcnhronized保证,即保证原子性也可以保证可见性或使用JUC包中,如原子类...每次仅使用一半的空间,JVM生成的新对象则放在另一半空间中。GC运行时,它把可到达对象复制到另一半空间,从而压缩了堆栈。这种方法适用于短生存期的对象,持续复制长生存期的对象则导致效率降低。

54731

jvm相关知识

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。...通过上图可知我们的程序是基于各大框架,而各大框架底层又是去调用Java最原始的API,而java api又遵循 jvm的规范,所以jvm可以说是最深层次。...参考:https://baike.baidu.com/item/JVM/2902369?fr=aladdin jvm是如何实现跨语言? ?...随着java7的正式发布,jvm现在已经非常强大,不是只有java语言才能使用,只要遵循jvm的规范的字节码文件,就可以在jvm上面运行。...jvm只关心"字节码"文件,不关心具体是由哪种语言实现,就类似CPU一样,不关心高级语言是什么,只在乎机器指令传过来啥。

36220
您找到你想要的搜索结果了吗?
是的
没有找到

jvm系列:jvm知识点总览

对于Java程序员来讲,spring全家桶几乎可以搞定一切,spring全家桶便是精妙的招式,jvm就是内功心法很重要的一块,线上出现性能问题,jvm调优更是不可回避的问题。...因此JVM基础知识对于高级程序员的重要性不必言语,我司在面试高级开发的时候,jvm相关知识也必定是考核的标准之一。本篇文章会根据之前写的jvm系列文章梳理出jvm需要关注的所有考察点。...jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图,将所有的知识点进行了陈列...这就是为什么修改了Class后,必须重启JVM,程序的修改才会生效 jvm内存结构 主要关注点: jvm内存结构都是什么 对象分配规则 jvm内存结构 方法区和对是所有线程共享的内存区域;而java栈、...JVM栈(JVM Stacks),与程序计数器一样,Java虚拟机栈(Java Virtual Machine Stacks)也是线程私有的,它的生命周期与线程相同。

84250

Java面试——JVM知识

二、JVM 的内存结构 ---- ? JDK8版本的 JVM内存结构,将堆内的方法区替换成了堆外的元数据。 ?...【堆空间】:JVM 初始分配的内存由 -Xms指定,默认是物理内存的 1/64;JVM最大分配的内存由 -Xmx指 定,默认是物理内存的1/4。...默认空余堆内存小于 40%时,JVM就会增大堆直到 -Xmx的最大限制;空余堆内存大于 70%时,JVM会减少堆直到 -Xms的最小限制。...【JVM内存限制】(最大值):首先 JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。...链接 八、JVM 内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存等 ---- 【1】重排序:在执行程序时,为了提高性能,编译器和处理器会对指令做重排序。

47510

JVM的入门知识

前言:巴拉巴拉,今天给大家分享一点java三剑客(jre,jvm,jdk)中的jvm,纯理论教科书篇。 非原创,里面摘取了多个博客里面的内容 1 JDK、 JRE、JVM 的关系是什么?...我们学习JVM的之前,简单科普一下他们三者有啥关系 JVM JAVA 虚拟机(Java Virtual Machine)。...JVM核心图 ?...4 JVM的运行时内存(堆) JVM的运行时内存也叫作JVM堆,从GC的角度可以将JVM堆分为新生代、老年代和永久代。其中新生代默认占1/3堆空间,老年代默认占2/3堆空间,永久代占非常少的堆空间。...6 JVM的类加载机制 6.1 JVM的类加载阶段 JVM的类加载分为5个阶段:加载、验证、准备、解析、初始化。在类初始化完成后就可以使用该类的信息,在一个类不再被需要时可以从JVM中卸载。 ?

40720

jvm系列(八):jvm知识点总览

因此JVM基础知识对于高级程序员的重要性不必言语,我司在面试高级开发的时候,jvm相关知识也必定是考核的标准之一。本篇文章会根据之前写的jvm系列文章梳理出jvm需要关注的所有考察点。...jvm 总体梳理 jvm体系总体分四大块: 类的加载机制 jvm内存结构 GC算法 垃圾回收 GC分析 命令调优 当然这些知识点在之前的文章中都有详细的介绍,这里只做主干的梳理 这里画了一个思维导图...,将所有的知识点进行了陈列,因为图比较大可以在公众号回复“jvm”进行查看。...这就是为什么修改了Class后,必须重启JVM,程序的修改才会生效 jvm内存结构 主要关注点: jvm内存结构都是什么 对象分配规则 jvm内存结构 ?...系列(七):jvm调优-工具篇

962110

Java底层知识JVM、GC

1、JVM如何加载.class文件? 答:Java虚拟机,最值的学习的两点,JVM内存结构模型以及GC。JVM是一个内存中的虚拟机,JVM的存储就是内存,例如类、常量、变量、方法都是在内存中。...2)、ClassLoader类加载器将字节码转换为JVM中的Class 类对象。 3)、JVM利用Class类对象实例化为类对象。 4、谈谈ClassLoader。   ...14、JVM三大性能调优参数,-Xms、-Xmx、-Xss的含义。...JVM可以针对n内存栈进行管理操作,而且该内存空间的释放是编译器就可以操作的内容,而堆空间在java中,JVM执行引擎不会对其进行释放,而是让垃圾回收器进行自动回收。   2)、空间大小,栈比堆小。...1)、Stop-the-World,JVM由于要执行GC而停止了应用程序的执行。

56310

JVM知识学习与巩固

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。...我们运行和调试Java程序的时候,经常会提到一个JVM的概念.JVM是Java程序运行的环境,但是他同时一个操作系统的一个应用程序一个进程,因此他也有他自己的运行的生命周期,也有自己的代码和数据空间....当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级) F....完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory错误” JVM调优建议: ms/mx...在对JVM调优的过程中,很大一部分工作就是对于FullGC的调节。

46110

JVM 知识点整理

工作,学习的重要的知识点记录下来 # JVM JVM虚拟机处理器可以执行java的字节码程序。java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。...Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码在特定平台运行。...# 生命周期 1、JVM实例对应了一个独立运行的java程序 启动Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class...JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程通常由JVM自己使用,java程序也可以标明自己创建的线程是守护线程。...这就是为什么修改了Class后,必须重启JVM,程序的修改才会生效 ## 类的加载 ### 类加载方式 1、命令行启动应用时候由JVM初始化加载 2、通过Class.forName()方法动态加载 3、

36740

JVM知识点整理

在JDK1.7及以后,JVM已经将运行时常量池从方法区中移了出来,在JVM堆开辟了一块区域存放常量池。...JVM的启动过程 JVM的启动流程大致分为几个步骤: 配置JVM的装载环境 Java代码执行时,需要一个JVM环境,JVM环境的创建包括两部分,JVM.dll文件的查找和装载。...JVM.dll文件的查找 JVM.dll文件的装载: 解析虚拟机参数 装载完JVM以后,需要对启动参数进行解析,其实在装载JVM环境的过程中,已经解析了部分参数。...2、造成OOM的原因: ​ (1)在初始化JVM的阶段,设置给JVM可用的内存太少了 (2)用完的对象没有释放,导致内存泄漏。...2、程序执行结束 3、程序在执行过程中遇到了异常或者错误而终止运行(main方法里面throws抛出的异常,将会被JVM捕获,然后JVM就会异常退出了) 4、操作系统出现错误导致Java 虚拟机进程终止

56010

JVM系列(一):JVM基本概念知识笔记

1、什么是JVMJVM即Java虚拟机,可以理解为一种抽象计算机,它拥有一个指令集,在运行时操作各种内存区域。...JVM对Java语言一无所知,它只知道一种特定的二进制格式,即类文件格式,我们写好的Java程序最终交给JVM执行的时候会被编译成二进制格式的类文件,JVM只能读取二进制格式的类文件,所以任何编程语言只要编译后的格式符合要求...2、JVM的运行位置 JVM是运行在操作系统之上的软件。支持跨平台。...3、JVM的版本 HotSpot VM:JDK 默认内置 JVM 是 HotSpot VM,应用最广泛的JVM,大家最常用的就是这个。...4、JVM的体系结构 类加载器:在JVM启动时或者是在类运行时将需要的class文件加载到JVM中。

34520

JVM 知识点全面梳理

中有一个src.jar,就是JDk的源码,本文是JVM基础知识的一个汇总,方便查阅,内容较多。...40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。...Yong区完成GC,尽量减少Full GC的次数,以减少GC对应用程序带来的影响   (1)JVM参数(这里列出所有可调整的JVM参数,可根据各自的环境酌情设置) -Xms4G 是指: JVM启动时整个堆...(3) jmap,jvm自带内存分析工具,位于jdk的bin目录下,倾向于分析jvm内存中对象信息,jmap -histo 在屏幕上显示出指定pid的jvm内存状况,太简单。   ...(6) jstatd,jvm自带内存分析工具,位于jdk的bin目录下,一个RMI的server,它可以监控Hotspot的JVM的启动和结束,同时提供接口可以让远程机器连接到JVM

30810

每日知识集之JVM

每日学习,Offer滴滴 ---- JVM内存模型 1. 什么是栈?...栈是一种快速有效的分配存储方式,访问速度仪次于程序计数器 JVM直接对Java栈的操作只有两个:每个方法执行伴随着进栈(入栈、压栈) 和 执行结束后的出栈工作 对于栈来说不存在垃圾回收问题GC,但存在内存溢出问题...OutOfMemoryError:java程序代码启动一个新线程时,没有足够的内存空间为该线程分配java栈(一个线程java栈的大小由-Xss参数确定),jvm则抛出OutOfMemoryError异常...一个类加载到 JVM 中后对应一个运行时常量池,运行时常量池相对于 Class 文件常量池来说具备动态性,Class 文件常量只是一个静态存储结构,里面的引用都是符号引用。...字符串常量池(string pool也有叫做string literal pool) 字符串常量池是全局的,JVM 中独此一份,因此也称为全局字符串常量池。

36830
领券