#JV

Java内存区域划分、内存分配原理(深入理解JVM一)

  Java虚拟机在执行Java的过程中会把管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,而有的区域则依赖线程的启动和结束而创建和销毁。    Java虚拟机包括下面几个运行时数据区域:(堆和方法区线程共享,...

jvm是如何管理内存的

1、JVM是如何管理内存的Java中,内存管理是JVM自动进行的,无需人为干涉。了解Java内存模型看这里:java内存模型是什么样的 了解jvm实例结构看这里:jvm实例的结构是什么样的 创建对象或者变量时,JVM会自动分配内存(当然这个分配是遵循严格规则的)。当JVM发现某些对象不再需要的时候,...
代码星球 ·2020-08-27

JVM指令详解(下)

九、自增减指令该指令用于对本地(局部)变量进行自增减操作。该指令第一参数为本地变量的编号,第二个参数为自增减的数量。比如对于代码:        intd=10;d++;d+=2;d--;其指令为:  2: b...
代码星球 ·2020-08-27

JVM指令助记符

以下只是JVM指令助记符,关于JVM指令的详细内容请阅读《JVM指令详解》变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore...
代码星球 ·2020-08-27

JVM指令详解(上)

     文中提及的栈是虚拟机栈中的栈帧的操作数栈,本地变量表是栈帧中的本地变量表,如下图: /***@Author:qlq*@Description*@Date:22:442018/9/25*/publicclassMathTest{publicstaticvoidmain(Stringa[]){...
代码星球 ·2020-08-27

jvm系列(七):jvm调优-工具篇

16年的时候花了一些时间整理了一些关于jvm的介绍文章,到如今回想起来还是一些还没有补充全面。当中就包含怎样利用工具来监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,还有一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析。往往dump下来的文件达1G左右,人工分析效率较低,因此利用...
代码星球 ·2020-08-26

JVM调优系列:(四)GC垃圾回收

复制(copying):将堆内分成两个同样空间,从根(ThreadLocal的对象。静态对象)開始訪问每个关联的活跃对象,将空间A的活跃对象所有拷贝到空间B,然后一次性回收整个空间A。由于仅仅訪问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去訪问死对象,不须要标记骤,所以遍历空间的成本较小,但须要巨大的复制成...
代码星球 ·2020-08-25

JVM 调优

常见配置汇总堆设置:-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:MaxNewSize=n:设置最大年轻代大小-XX:NewRatio=n:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个...
代码星球 ·2020-08-09

JVM学习之jstat使用方法

Jstat是JDK自带的一个轻量级工具,主要用JVM内建的指令对java应用程序的资源和性能进行实时的监控。基本语法  jstat<option>[-t][-h]<pid> <interval><count>  参数解释:option  可以...
代码星球 ·2020-08-09

JVM垃圾收集器介绍

  垃圾回收算法是GC的方法论,垃圾收集器就是内存回收的具体实现。  一、Serial收集器    单线程收集器,在进行GC时,必须暂停所有的工作线程(StopTheWorld),直到GC收集结束。    缺点:“StopTheWorld”给用户带来了不好的体验    优点:简单而高效,Seri...
代码星球 ·2020-08-09

JVM执行Java程序时内存的划分

  Java虚拟机在执行Java程序过程中会把它所管理的内存区域划分为若干个不同的数据区域。  Java虚拟机所管理的内存包括以下几个运行时区域:  1、程序计数器(ProgramCouterRegister)    程序计数器是一块较小的内存空间,作用是当前线程所执行的字节码的行号指示器。字节码指...

jvm与程序的生命周期

执行了System.exit();程序正常运行结束程序在执行过程中遇到异常或错误而异常终止由于操作系统出现错误而导致jvm进程终止(不可人为控制)类的加载,连接(验证,准备,解析),初始化,使用,卸载加载:jvm通过类加载器查找并加载类的二进制数据,将类的.class文件中的二进制数据读入到内存,将其放在运行时的数据区...
代码星球 ·2020-08-09

jvm到底是什么?有什么作用?工作机制如何?

 1、jvm定义JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。JVM有自己完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。2、jvm作用JVM是java字节码执行的引擎,还能优化java字节码,使之转化成效率更高的机器指令。JVM中类的装载是由类...

DVM 和 JVM 的区别?

a)dvm执行的是.dex文件,而jvm执行的是.class。Android工程编译后的所有.class字节码会被dex工具抽取到一个.dex文件中。b)dvm是基于寄存器的虚拟机而jvm执行是基于虚拟栈的虚拟机。寄存器存取速度比栈快的多,dvm可以根据硬件实现最大的优化,比较适合移动设备。c).class文件存在很多...
代码星球 ·2020-08-08

JVM的线程

 我们使用java命令来运行一个程序,那么就需要启动JVM,而jvm的启动就相当于启动了一个进程,而这个进程在启动的时候会自动启动一个线程,由这个线程去调用main方法,而这个线程就是主线程;并且我们JVM的启动时是多线程的,因为至少存在两个线程一个是主线程,一个是垃圾回收线程...
代码星球 ·2020-08-08
首页上一页...7891011...下一页尾页