ICode9

精准搜索请尝试: 精确搜索
  • GC介绍。引用计数法,复制算法,标记压缩、标记清除法2022-03-29 15:33:06

           没讲全,引用计数法是对象被引用了计数器+1,引用结束-1,计数器为0就会被回收   复制算法      复制算法,每次复制之后,幸存区从一个区域复制到另一个,这一个清空,成为to区,另一个为from        标记清除算法        标记压缩算法            JVM在电脑架

  • Java对象在内存中实例化的过程2022-03-29 08:00:06

    Java对象在内存中实例化的过程 在讲 Java 对象在内存中的实例化过程前,先来说下在类的实例化过程中,内存会使用到的三个区域:栈区、堆区、方法区。 堆区:存储的全部都是对象,每个对象包含了一个与之对应的 class 类的信息。jvm 只有一个堆区(steap),它会被所有线程共享,堆中不存放基本数

  • 老徐和阿珍的故事:强引用、软引用、弱引用、虚引用,傻傻分不清楚2022-03-26 17:04:58

    人物背景: 老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐。据说之前炒某币败光了所有家产,甚至现在还有欠债。 阿珍,女,本名陈家珍,刚刚入职不久的实习生,虽然是职场菜鸟但聪明好学。据说是学校的四大校花之一,追求她的人从旺角排到

  • java进程查看 GC详细2022-03-21 18:33:00

    Linux使用jstat命令查看jvm的GC情况 Options,选项,我们一般使用 -gcutil 查看gc情况 vmid,VM的进程号,即当前运行的java进程号 interval,间隔时间,单位为秒或者毫秒 count,打印次数,如果缺省则打印无数次 通常运行命令如下: jstat -gc 12538 5000 即会每5秒一次显示进程号为12538的jav

  • golang 垃圾回收和内存逃逸分析2022-03-21 14:04:34

    1. golang垃圾回收 golang的垃圾回收算法是三色标记法,其中三个颜色分别为:灰色、黑色、白色,其对应了垃圾回收过程中变量的三种状态: 灰色:对象还在标记队列中等待 黑色:对象已经被标记,该对象不会在本次GC中被回收 白色:对象为被标记,该对象会在本地GC中被回收   1.1 垃圾回收流程 假

  • CMS垃圾收集器(基于标记清除算法)2022-03-20 23:01:38

    特点: CMS是一种以获取回收停顿时间为目标的收集器。 多用于Java应用集中在互联网网站或者基于浏览器的B/S系统的服务端上。 过程: 初始标记:(stop the world) 只是标记GCroots能直接关联到的对象,速度很快。 并发标记: 从GCroots的直接关联对象开始遍历整个对象图的过程,虽然时间长但是

  • JVM运行数据区--堆2022-03-20 17:35:18

    堆的核心概述 堆与进程 堆针对一个JVM进程来说是唯一的。也就是一个进程只有一个JVM实例,一个JVM实例中就有一个运行时数据区,一个运行时数据区只有一个堆和一个方法区。但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心

  • JVM垃圾收集算法与CMS收集器详解2022-03-19 23:34:50

    垃圾收集算法 分代收集理论 分代收集理论:当前主流的虚拟机都在使用分代收集算法,它会将对象按照存活周期来将内存分为不同的几块。这样我们就可以针对存活周期不同的对象,采用不同的算法来进行垃圾清理。 垃圾清理的算法主要有三个:标记复制算法,标记清理算法和标记整理算法。 标记复

  • java虚拟机-垃圾收集器与内存分配2022-03-19 12:00:17

    这里写目录标题 垃圾回收机制对象已死引用计数算法根搜索算法引用的分类对象存活判断 回收方法区垃圾回收算法标记-清除算法复制算法标记-整理算法分代收集算法 垃圾收集器Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS收集器G1

  • java 15: 查看jdk默认的gc和正在使用的gc2022-03-19 11:34:04

    一,查看jdk默认使用的gc [lhdop@blog ~]$ java -XX:+PrintCommandLineFlags -version -XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=4 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=251580608 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=4025289728 -XX:MinHeapSiz

  • 回滚莫队2022-03-19 09:05:27

    我们发现有的时候我们莫队不方便维护加或减中的一个,只方便维护另一个,我们就要考虑另外一种更加针对化的莫队。 回滚莫队 先开一个例题 「JOISC 2014 Day1」历史研究 题目大意:一个序列,多个询问。每次询问一段区间 \([l,r]\) ,定义重要度为一个数出现次数与其权值的乘积,求区间中的重

  • WeakReference 在android中的应用2022-03-18 21:32:06

    WeakReference 在android中的应用 首先我们来看一段代码 public class AutoActivity extends Activity { Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { }; }; @Override protected void onCreate(Bundle savedIn

  • GC 打印日志配置2022-03-09 11:33:43

    生产环境上,或者其他要测试 GC 问题的环境上,一定会配置上打印GC日志的参数,便于分析 GC 相关的问题。但是可能很多人配置的都不够“完美”,要么是打印的内容过少,要么是输出到控制台,要么是一个大文件被覆盖,要么是……本文带你一步一步,配置一个完美的 GC 日志打印策略 打印内容 为了保

  • python differ from c++2022-03-09 09:35:10

      缩进代替中括号 冒号代替() score = 63 if score >= 60: print('You passed!')   while a != 0: #a不等于0就一直做 print "please input" a = int(input()) print "over"   Python pass 语句类似于c++中;保持结构的完整性   del和GC 垃圾回

  • Minor GC/Young GC、Major GC/Old GC、Full GC等概念介绍2022-03-08 01:33:18

    摘要 经常看到各种轻GC、重GC叫法混乱,未免在学习JVM的过程中造成阻碍,这边引用《深入理解Java虚拟机》中对GC的定义。 正文 在《深入理解Java虚拟机》中对这些GC的名称进行了明确的定义。 部分收集(Partial GC):不是完整收集整个Java堆的垃圾收集,其中分为:新生代收集和老年代收集。

  • 初识JVM2022-03-08 01:00:42

    JVM初探 1、JVM的位置       2、JVM体系结构           本地方法接口:JNI(Java Native Interface) 3、类加载器 作用:加载Class文件。 1、虚拟机自带的加载器 2、启动类(根)加载器【BOOT】 3、扩展类加载器【EXT】 4、应用程序加载器【APP】 注:从4到1进行加载

  • concurrent mark-sweep generation: 中used和free 数据异常的问题2022-03-04 17:32:26

    事件背景: 同事向我咨询了从jvm监控中看到的现象,大致描述就是:young gc 频繁,但是没有full gc,且堆内存一直保持在近100%的状态,线程变化稳定,CPU的使用率有波动,主要和young gc有关,具体情况见下图1。然后我们就去运维平台,通过jmap平台查看堆内存的使用情况,前面的数据看起来正常,可是在看c

  • 舞蹈链(DLX)精确覆盖问题2022-03-03 20:34:45

    DLX 是 NOIWC2022 讲的一个算法,然后我一直咕咕咕到了现在。 板子题 题目传送门 题目大意: 给定一个 01 矩阵,在这个矩阵中选出若干行,使得在选出的行中,每一列恰好有 \(1\) 个 \(1\)。 矩阵行列 \(N,M\) 范围为 \(N,M\le 500\),矩阵中 \(1\) 的个数 \(\le 5000\)。 题目解析 其实这就是

  • 一次诡异的FGC,原因让我找了好久2022-03-03 14:00:01

    正撸着代码,公司内的聊天工具弹出一条信息: “狼哥,我这个机器总是频繁FGC...” 我赶紧打开对话框,机智的回复一个表情 然后继续默默撸码。 随后,小伙伴砸了一段GC日志过来 2019-09-17T20:33:57.889+0800: 4753520.554: [Full GC (Metadata GC Threshold) 4753520.554: [CMS[YG oc

  • JDK8到JDK17各个版本的重要特性整理2022-03-03 12:31:06

    JDK8到JDK17各个版本的重要特性整理   JDK8新特性(2014年初)(LTS版本) 1、Lambda表达式 2、函数式编程 3、接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法 4、方法引用 5、重复注解,同一个注解可以使用多次 6、引入Optional来避免空指针 7、引入Streams相关的API

  • jvm-gc调优12022-03-02 18:31:27

    项目启动  添加  -Xverify:none类加载过程中禁止掉字节码验证过程   添加  -XX:+PrintGCDateStamps-XX:+PrintGCDetails-Xloggc:./logs/gclogs 生成日志 默认(21M) 2022-03-02T17:36:55.244+0800: 3.147: [Full GC (Metadata GC Threshold)……[Metaspace: 20511K->20511K(10670

  • 十二、垃圾回收篇2022-03-02 17:33:00

    一、概述 关于垃圾收集有主个经典问题: 哪些内存需要回收? 什么时候回收? 如何回收? 1、什么是垃圾? 垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。 如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保

  • JS-垃圾回收(GC)2022-03-02 16:34:04

    程序运行过程中会产生垃圾,积攒过多,会导致程序运行的速度过慢,所以需要一个垃圾回收的机制,来处理程序运行过程中产生的垃圾。 比如:当一个对象(堆内存中)没有任何的变量或属性对它进行引用,此时我们将永远无法操作该对象,此时这种对象就是一个垃圾,这种对象过多会占用大量的内存空间,导致

  • 二:GC算法2022-03-02 14:03:10

    1.标记清除算法:分为两个阶段标记阶段和清除阶段。首先从根集合进行扫描,标记存活的对象。标记完成后,再扫描整个空间未被标记的对象并进行回收。 不足:1.效率问题,标记和清除效率不高            2.在GC的时候会造成GC停顿,响应延迟            3.由于标记-清除算法,不会对

  • [读书笔记]深入理解Java虚拟机——内存自动管理2022-03-02 13:02:41

    Java内存区域与内存溢出异常 内存模型 程序计数器 Program Counter Register 线程私有,较小的内存空间,当前线程所执行的字节码的行号指示器。 Java虚拟机栈 Java Virtual Machine Stack 线程私有,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 局部变量表: 存储基

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有