ICode9

精准搜索请尝试: 精确搜索
  • Java虚拟机(JVM)个人学习总结2022-03-01 18:02:14

    前言: 计算机是二进制的系统,他只认识 01010101,但像我们编写的HelloWord.java,计算机是不认识的,因此就需要编译,由javac编译成字节码文件.class,因为JVM只认识.class文件,再由JVM编译成计算机认识的文件,对于电脑系统来说,文件代表一切,这也是说Java是跨平台语言的原因。 再看看JDK、JRE

  • 【C# .Net GC】 HandleCollector类2022-03-01 12:31:46

    GC为本机资源提供的其他功能 本机资源有时会消耗大量内存,但用于包装它的托管对象只占用很少的内存。一个典型的例子就是位图。一个位图可能占用几兆字节的本机内存,托管对象却极小,只包含一个HBITMAP(一个4或8字节的值)。如果进程操作许多位图,进程的内存消耗将以一个恐怖的速度增长。

  • JVM垃圾回收2022-03-01 09:31:12

    垃圾回收 1. 如何判断对象可以回收------#### 1.1 引用计数法[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传------#### 1.2 可达性分析算法- Java 虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象- 扫描堆中的对象,看是否能够沿着 GC Root 对

  • jvm垃圾回收2022-03-01 09:30:03

    垃圾回收 1. 如何判断对象可以回收 1.1 引用计数法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lpPM9avQ-1646097996409)(C:\Users\l\AppData\Roaming\Typora\typora-user-images\image-20220119110136835.png)] 1.2 可达性分析算法 Java 虚

  • 【C# .Net GC】Dispose模式:强制对象清理资源2022-02-28 22:31:08

    Finalize方法确保本地资源的清理,但它的问题是调用时间不确定。另外,由于它不是公共方法,类的用户不能显式调用它。Dispose模式提供了显示进行资源清理的能力。 注意:Dispose只是为了能在确定的时间强迫对象执行清理;并不能控制托管堆中对象所占用内存的生存期。这意味着,即使对象已完成

  • Flink-cdc2.1 分片算法导致GC问题2022-02-28 15:32:42

    一、背景 目前 yarn 集群 360 个FLink实时作业,90% 都是使用 flink1.13.3 + cdc2.1 ,在12月17号发现一个流任务:xxx_mysql_kafka 运行无异常,但是一直不往 Kafka 发送最新数据 二、问题排查 1、 根据该任务 application id 查看具体运行在那个 yarn 节点上 堡垒机登录该节点,切换到 y

  • JVM性能调优与实战进阶篇-上2022-02-28 01:04:36

    ZGC 诞生原因 Java生态非常强大,但还不够,有些场景仍处于劣势,而ZGC的出现可以让Java语言抢占其他语言的某些特定领域市场。比如 谷歌主导的Android手机系统显示卡顿。 证券交易市场,实时性要求非常高,目前主要是C++主导。 大数据集群如HBase的性能。 特性 ZGC(The Z Garbage Collec

  • Java中finalize,hashcode和toString2022-02-26 13:31:18

    目录1 Finalize1.1 finalize方法作用1.2 怎么使用finalize1.3 finalize异常和问题1.4 finalize执行过程(生命周期)2 hashCode2.1 hashcode做什么用2.2 在类中覆盖equals的时候,为什么要同时覆盖hashCode2.3 hashCode一般规则2.4 如果覆盖了equals却不覆盖hashCode的后果3 toString3

  • 【JVM学习笔记】GC——JAVA预言的垃圾回收2022-02-25 23:36:18

    一、垃圾回收概述 1 什么是GC,为何要GC? 2 早期垃圾回收 3 Java的垃圾回收机制 二、垃圾回收的相关算法 1 垃圾回收算法的概述   垃圾回收分为标记阶段和清除阶段,标记阶段找垃圾,清除阶段清掉找到的垃圾。   标记阶段使用的算法有引用计数算法、可达性算法。   清

  • Linux 普通用户 安装jdk2022-02-25 22:01:12

    巨坑!!! 普通用户修改完环境变量,若你很确定你的步骤没错,请重连!!!(root用户source就能生效,普通用户source之后还需重连) 1.下载jdk.tar.gc 2.解压: tar -zxvf jdk.tar.gc 3.配置环境变量 vim .bash_profile 4.source .bash_profile 5.重连!!!

  • 线上发生OOM2022-02-25 10:34:07

    线上jvm故障处理思路 报错分类 java.lang.OutOfMemoryError: Java heap space ------>java堆内存溢出 此种情况最常见,一般由于内存泄露或者堆的大小设置不当引起。对于内存泄露,需要通过内存监控软件查找程序中的泄露代码,而堆大小可以通过虚拟机参数-Xms,-Xmx等修改。 java.lang.Ou

  • 不同发行版 DotNet GC(垃圾回收器)类型如何配置?2022-02-25 10:30:03

    DotNet CLR 目前提供三类GC垃圾回收模式 1、Server.GC(服务器GC) 2、Workflow.GC(工作站GC)[Concurrent GC] 3、Nonconcurrent.GC(非并发GC)[Workflow GC] 2/3皆属于工作站GC大类,是一个非常基础的问题,面试.NET技术人员,应成为基本提问题目。 详细参见 MSDN: 垃圾回收的基本知识 | Micros

  • JAVA 引用类型2022-02-24 19:32:44

    众所周知,JAVA中存在八大基本数据类型以及引用类型,其中引用类型其实就是基本类型的封装和类实例化生成的对象,统称为引用类型。 而引用类型会因GC回收机制,被细分为四种类型。 强引用 顾名思义,GC回收机制面对强引用类型时,即使报错也不会对强引用类型进行回收。 软引用 在内存充足时GC

  • 垃圾收集器2022-02-24 10:33:38

    Serial收集器 串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用串行回收;新生代复制算法、老年代标记-压缩;垃圾收集的过程中会Stop The World(服务暂停) 参数控制:-XX:+UseSerialGC 串行收集器 ParNew收集器 ParNew收集器其

  • 【C# .Net GC】GC内存分配原则2022-02-23 18:34:30

    GC 管理内存分配和回收  公共语言运行时的垃圾回收器为应用程序管理内存的分配和释放。 https://docs.microsoft.com/zh-cn/dotnet/standard/automatic-memory-management GC内存分配原则 暂时代:因为第 0 代和第 1 代中的对象的生存期较短,因此,这些代被称为“暂时代”。 暂时段:

  • 【C# GC】垃圾回收的工作模式2022-02-23 16:02:41

    工作站和服务器垃圾回收 使用条件:进程终止前不会改变,不过可用通过GCsetting类的GClatencyMode进行控制。 工作站 该模式针对客户端应用程序优化GC.GC造成的延时很低,应用程序线程挂起时间很短,避免使用户感到焦虑。在该模式中,GC假定机器上运行的其他应用程序都不会消耗太多的CPU资

  • JVM GC(垃圾回收篇)2022-02-23 10:31:25

    1、JVM怎么判定对象是垃圾 (引用计数算法、可达性分析算法) JVM有一个回收算法是引用计数算法,每当对象被引用一次,就+1,释放一个引用就-1,当垃圾回收时,引用计数为0的对象就会被GC掉。但这个方法有个问题,就是无法解决循环引用的问题。 循环引用就是对象A引用了对象B,对象B引用了对象

  • Java基础 -> ⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?2022-02-22 23:59:34

    ⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程? ⾸先类加载器把字节码⽂件内容加载到⽅法区,当然类加载器这中间用双亲委派机制加载然后再根据加载完方法区中的类信息在堆区为对象分配内存丶初始化零值丶设置对象头丶执行 init 方法 分配内存: 确定大小的内存从 Java 堆中

  • Java基础 -> GC如何判断对象可以被回收2022-02-22 17:59:36

    GC如何判断对象可以被回收 引⽤计数法(已被淘汰):每个对象有⼀个引⽤计数属性,新增⼀个引⽤时计数加1,引⽤释放时计数减1,计数为0时可以回收 目前主流的java虚拟机都摒弃掉了这种算法,最主要的原因是它很难解决对象之间相互循环引用的问题。尽管该算法执行效率很高。 可达性分析

  • JVM和数据库调优方案2022-02-21 14:30:11

    1、JVM调优方案 将新对象预留在新生代 Full GC的成本远远高于Minor GC,新生代的回收速度高于老年代回收,因此尽可能将对象分配在新生代为应用程序分配一个合理的新生代空间,最大限度避免新对象直接进入老年代 -Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去

  • OutOfMemoryError异常总结2022-02-19 18:32:38

    JVM内存区域中,除了程序计数器外,其他几个运行时区域都有可能发生OutOfMemoryError(OOM)异常 (1)堆溢出 原因:Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,对象数量达到最大堆容量限制,则发生溢出。 解决:要解决这个区

  • JAVA中的四种引用类型2022-02-17 21:00:09

    引用类型篇 名称 描述 强引用 最普通的引用Object o = new Object(); 软引用 垃圾回收器,内存不够的时候回收(缓存) 弱引用 垃圾回收器看见就会回收(防止内存泄漏) 虚引用 垃圾回收器看见二话不说就回收,跟没有一样(管理堆外内存)DirectByteBuffer -> 应用到NIO Netty 1、

  • JVM 简单笔记2022-02-17 20:02:44

    JVM简单笔记 1. JVM的体系结构 其中,红字标出的方法区和堆是会产生垃圾的地方,而方法区是一个特殊的堆。并且,所谓 JVM 调优大部分情况下都是对堆进行调优。 T:栈区存放的是对象的引用(地址),对象的实例存放在堆区。 2. 类加载器 其中,类加载器默认有三种,级别从高到低为: 启动类加载

  • GC垃圾回收过程2022-02-16 23:02:24

    GCROOT:栈、本地方法栈、方法区 直接或间接引用的,不能被删除,和GCROOT无关的对象可直接删除 垃圾回收算法: 标记-清理: 标记与GCROOT无关的对象,删除; 缺点:会产生内存碎片,如果下次进来的对象和GC掉的对象大小不同,就不会使用该块内存 标记-整理: 标记与GCROOT无关的对象,删除并

  • gc root总结2022-02-16 13:33:17

    gc中不能被回收的对象,叫做gc root,官网上说的太细了;现在大体总结一下如下: 1.SystemClassLoader加载的类(包括了静态变量) 就是appClassLoader(classpath指定的目录中的类,都能被其加载) 2.虚拟机缓存类对象 常量池(Constant Pool) 符号表(symbol Table) 字符串表(String Tabl

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

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

ICode9版权所有