1,JVM内存结构(JVM体系概述,java8后的JVM)

2,GC的作用域(方法区和线程堆)

3,常见的垃圾回收算法

(1)引用计数 循环引用问题

(1) 那些对象可以作为GC_Root

  • 虚拟机栈(栈帧中的局部变量区)中的对象;
  • 本地方法栈中JNI(Native)方法引用的对象;
  • 方法区中常量引用的对象;
  • 方法区中类静态属性应用的对象;

(2)JVM参数类型

  • 标配参数 (1) java -version   (2) java  -help   (3)   java -showversion
  • X参数(了解)[ -Xint 解释执行  -Xcomp第一次使用就编译成本低代码  -Xmixed 混合模式]
  • XX参数
  • 1,Boolean类型
  • 2,KV设值类型
  • 3,jinfo举例,如何查看当前运行程序的配置

(2)复制

(1)MinorGC的过程(复制->清空->互换) (复制算法)

1,eden、SurvivorFrom 复制到SurvivorTo。年龄 +1  

首先,当Eden区满的时候会触发第一次GC,把还活着的对象拷贝到SurvivorFrom区,当Eden区再次触发GC的时候会扫描Eden区和From区,对这两个区域进行垃圾回收,经过这次垃圾回收后还活着的对象直接复制到To区域(如果有对象的年龄已经达到了老年的标准,则复制到老年代区),同时把这些对象的年龄 +1;

2,清空Eden区和SurvivorFrom区

然后,清空Eden区和SurvivorFrom区的对象,也即复制之后有交换,谁空谁是To区

  3 ,SurvivorTo和SurvivorFrom互换

最后,SurvivorTo和SurvivorFrom互换,原SurvivorTo成为下一次GC时的SurvivorFrom区,部分对象会在From和To区域中复制来复制去,如此交换15次,(由JVM参数MaxTenuringThreshold决定,

这个参数默认是15),最终如果还是存活,就存入老年代。

(3)标记清楚(节约了内存空间,但产生了内存碎片)

(4)标记整理(标记压缩)(没有了内存碎片,需要移动对象的成本,耗时间)

复习笔记:

(1)死锁:是指两个或多个事务在同一资源上相互占用,并请求加锁时,而导致恶性循环的现象,当多个事务以不同顺序试图加锁同一资源时,就会产生死锁,

(任何时间,多个事务同时加锁一个资源,一定产生死锁)。

(2)慢查询日志:查看是否是否从查询缓存中取值,是否进行了全表扫描,是否进行了没使用索引的连接,是否使用了临时表,如果是,那么是否使用了磁盘上的临时表,

是否使用了文件排序,如果是那么他是否在磁盘上排序,排序的时候使用了多少次排序合并。

(一)JVM快速回顾总结的更多相关文章

  1. MySQL快速回顾:数据库和表操作

    前提要述:参考书籍<MySQL必知必会> 利用空闲时间快速回顾一些数据库基础. 4.1 连接 在最初安装MySQL,可能会要求你输入一个管理登录(通常为root)和一个口令(密码). 连接 ...

  2. JVM快速入门(上)

    前言 根据狂神说的JVM快速入门做了以下笔记,讲的很好的一个博主,给小伙伴们附上视频链接狂神说JVM快速入门    接下来我按照他所讲的内容给大家记录一些重点! 一.JVM体系结构 .java经由ja ...

  3. JVM快速学习

    最近开始了全面的JAVA生态环境学习,因此,JVM的学习是必不可少的一个环节.和.NET的CLR一样,一起的JAVA应用均跑在JVM虚拟机上,不过相对我们只能干看看的CLR,JVM有很大的灵活性,可以 ...

  4. JVM快速入门

    最近开始了全面的JAVA生态环境学习,因此,JVM的学习是必不可少的一个环节.和.NET的CLR一样,一起的JAVA应用均跑在JVM虚拟机上,不过相对我们只能干看看的CLR,JVM有很大的灵活性,可以 ...

  5. SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

    SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...

  6. JVM基础回顾记录(二):垃圾收集

    垃圾收集流程&HotSpot对该流程的实现方式 上一篇介绍了jvm的内存模型,本篇将介绍虚拟机中最为复杂的一部分:垃圾收集,本篇会从垃圾回收前的准备工作到后面的收集阶段的方式以及HotSpot ...

  7. JVM 整体回顾(一)

    JAVA虚拟机整体的回顾,为提纲类型 JAVA虚拟机是装在操作系统之上的一个应用软件[平台性质],作用是:将class格式的字节码编译成可执行的机器码.从而,class格式和物理机无关.也就是所谓的j ...

  8. JVM快速扫盲篇

    JVM虚拟机基础 JVM虚拟机结构 vm的整体结构大致如下: 类加载器:类加载器用来加载Java类到JVM虚拟机中,源代码程序.java文件在经过编译器编译之后就被转换成字节代码.class文件,类加 ...

  9. JVM基础回顾记录(一):JVM的内存模型

    JVM的内存模型&垃圾收集算法 JVM内存模型 JAVA程序执行的基本流程(基于HotSpot): 图1 1.程序计数器 程序计数器是一块较小的内存空间,是当前线程执行字节码的行号指示器,字节 ...

随机推荐

  1. mysql5.7 Multiple-Column Indexes 多列索引(二)

    场景一: 复合索引的替代方法,对多列字段拼接做hash,引入一个hashed 字段,对此字段添加索引,可以做到复合索引查询速度快,例: SELECT * FROM tbl_name WHERE has ...

  2. jira添加工作流

  3. Java学习笔记(7)---流(Stream),文件(File)

    1.Stream流 a.定义: Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类型.对象.本地化字符集 ...

  4. [JavaScript]父子窗口间参数传递

    概述 当页面嵌入一个iframe,或者打开一个子窗口.这个时候如果父窗口需要与子窗口之间通讯,如果直接用DOM访问对方窗口window,会受到跨于安全机制影响. javascript提供一个方法,可以 ...

  5. LeetCode 5126. 有序数组中出现次数超过25%的元素 Element Appearing More Than 25% In Sorted Array

    地址 https://leetcode-cn.com/contest/biweekly-contest-15/problems/element-appearing-more-than-25-in-so ...

  6. MNIST 例程源码分析 TensorFlow 从入门到精通

    按照上节步骤, TensorFlow 默认安装在 /usr/lib/python/site-packages/tensorflow/ (也有可能是 /usr/local/lib……)下,查看目录结构: ...

  7. JAVA 十六进制和十进制、二进制转换

    java十六进制和十进制.二进制转换 十进制转化成十六进制 Integer x = 100; hex = x.toHexString(x); 十六进制转化成十进制 Integer.parseInt(h ...

  8. Java队列和定时器Timer

       一: Queue详解    Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构    Queue接口与List.Set同一级别,都是继承了Collection接口.Linked ...

  9. zabbix 监控项报"Value "(No info could be read for "-p": geteuid()=1002 but you should be root"

    zabbix 监控项报错如下: “Value "(No info could be read for "-p": geteuid()=1002 but you shoul ...

  10. Protobuffer学习文档

    官方EN:https://developers.google.com/protocol-buffers/docs/pythontutorial 中文:https://cloud.tencent.com ...