zoukankan      html  css  js  c++  java
  • Java 学习笔记之 JVM初识

    JVM初识:

    java只是启动JVM的命令。JVM真实位置: C:Program FilesJavajdk1.8.0_121jreinserverjvm.dll

    1. 第一行JDK版本

    2. 第二行JRE版本

    3. 第三行JVM版本

    1. 混合模式:速度最快(默认)

    2. 解释模式:解释运行

    3. 编译模式:编译优化运行

    • 在HostSpot中,方法区在Perm永久代。
    • Heap包括Young新生代和Tenured年老代,不包括Perm。
    • 一个java线程启动一个stack,一个stack默认1024K。所以开很多线程可能会导致StackOverFlow。
    • 本地方法栈通常用来调用C语言。
    • 程序计数器保存的是线程执行到哪段代码的位置。
    • 方法区和Heap是线程共享区域,其他块属于线程独享区域。

    会OOM的区域:

    • Perm会OOM
    • Heap会OOM
    • Stack会OOM(概率很低)和StackOverFlow
    • Direct Memory会OOM

    • 新生代使用的垃圾回收算法是复制算法,垃圾回收GC叫Minor GC。Eden区满了,就进行Minor GC,把存活的对象复制到Survivor1,Survivor1满之后,把垃圾又复制到Survivor2,如果Survivor都满了,就直接进入Tenured年老代。新生代和年老代垃圾回收的速度比大概是1:10. 年老代的垃圾回收叫Major GC。Full GC指的是JVM内的所有对象进行逐一排查,把垃圾删除。10g堆内存,可能需要5分钟Full GC。
    • HeapDumpOnOurOfMemoryError可以dump出OOM日志,说明问题出在Heap和Perm。没有日志,说明可能在Direct Memory或Stack,不过Stack一般不OOM。
    • Direct Memory直接使用操作系统物理内存。
  • 相关阅读:
    asp.net membership 修改密码
    linq直接执行sql语句
    word-wrap,word-break,white-space,text-overflow的区别和用法
    ObjectQuery查询及方法
    HTML 标签的 enctype 属性
    【C#学习笔记】类构造函数使用
    【C#学习笔记】播放wav文件
    【C#学习笔记】类型转换
    【C#学习笔记】函数重载
    【C#学习笔记】读文件
  • 原文地址:https://www.cnblogs.com/AK47Sonic/p/7740191.html
Copyright © 2011-2022 走看看