ICode9

精准搜索请尝试: 精确搜索
  • 线程池中多余的线程是如何回收的?2022-05-13 10:03:30

    最近阅读了JDK线程池ThreadPoolExecutor的源码,对线程池执行任务的流程有了大体了解,实际上这个流程也十分通俗易懂,就不再赘述了,别人写的比我好多了。 不过,我倒是对线程池是如何回收工作线程比较感兴趣,所以简单分析了一下,加深对线程池的理解吧。 下面以JDK1.8为例进行分析 1. runWo

  • JVM---GC-垃圾回收器2022-05-12 15:02:21

      /** * 【GC---垃圾回收器】 * <概述> * 垃圾回收器 没有在规范中进行过多规定,可以由不同的厂商、不同版本的JVM来实现; * 由于JDK版本高速迭代,Java发展至今已经衍生出众多的 垃圾回收器 版本; * * <分类> *

  • 【jvm】内存结构2022-05-10 00:31:53

    一。程序计数器   程序计数器是线程私有的。   每个线程都拥有一个程序计数器,用来记住吓一条指令的执行地址。   程序计数器不会发生内存溢出,也就是oom。 二。虚拟机栈   虚拟机栈是线程私有的。   虚拟机栈是用来存放栈帧的地方。      栈帧是每一次调用方法时所

  • 空指针、野指针与悬垂指针2022-05-09 00:32:36

    空指针:指针指向的地址为空的指针叫空指针(NULL指针) 野指针:是指向“垃圾”内存(不可用内存)的指针 产生原因:指针创建时未初始化。指针变量刚被创建时不会自动成为NULL指针,它会随机指向一个内存地址。 悬垂指针:指针所指向的对象已经被释放或者回收了,但是指向该对象的指针没有作任何的

  • JVM笔记之垃圾回收2022-05-06 20:00:07

      JVM学习 笔记内容为黑马程序员视频内容 三、垃圾回收 1、如何判断对象可以回收 引用计数法 弊端:循环引用时,两个对象的计数都为1,导致两个对象都无法被释放 可达性分析算法 JVM中的垃圾回收器通过可达性分析来探索所有存活的对象 扫描堆中的对象,看能否沿着GC Root对象为起点的

  • JVM-垃圾回收(2)2022-05-06 16:32:54

    回收算法补充——分代回收 实际的JVM并不会单独的使用一种算法,分代回收的垃圾回收机制就体现了这一点。 JVM将堆内存划分为两个区域——新生代 和 老年代 新生代使用复制算法 老年代使用标记 - 清除 或者 标记 - 整理 算法 而新生代又细分为 伊甸园、幸存区From、幸存区To 新

  • Java-垃圾回收2022-05-06 13:01:06

    1.1对象优先在eden区分配 大多数情况下,对象在新生代中eden区分配,当eden没有足够多空间分配的时候,虚拟机将发起一次MinorGC   针对HotSpotVM的实现,里面的GC主要分为两大种: 部分收集(PartialGC)   1、新生代收集(MinorGC/Younggc):只对新生代进行垃圾收集   2、老年代收集(MajorGC/Ol

  • golang介绍,开发环境和开发工具的安装2022-05-06 00:01:47

    学习网址:https://www.bilibili.com/video/BV1ME411Y71o?spm_id_from=333.337.search-card.all.click 1.官网 : https://go.dev/ 2.下载,安装 3.验证 命令工具输入 go version 出现版本号 4.设置共gopath(环境变量) 我的电脑=>右键=>高级系统设置=>高级=>环境变量=>用户变量=>是否有

  • JAVA面经内存溢出2022-05-05 23:34:51

    1、长生命周期持有短声明周期的对象,尽管短生命周期不再使用,但是由于长生命周期一直存在,导致不能被回收 2、各种连接,如果不进行close很多的对象都不会被回收。 3、变量的作用域过大,导致生命周期过长 4、内部类持有外部类 5、hashmap中存放了某个对象,但是修改了这个对象中的参与计算

  • 内存管理方式2022-05-02 17:04:24

    一.对内存的分配与回收 二.从逻辑上对内存空间进行扩充 三.用户进程中的逻辑地址和物理内存中的物理地址进行高速转换 一. 1.连续分配管理方式 (1)单一连续分配(整个用户区都给用户进程使用) 优点是实现简单;无外部碎片(分配前用户进程以外的无法使用的内存空间);不一定需要内存保护 缺点

  • c# 关闭窗体的四种方法2022-04-28 23:34:58

    关闭窗体的四种方法 1. close():指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的。如果有托管线程也无法退出。  此方法会调用 dispose() 方法,所以它会自动的帮我们释放内存,除了以下两种情况:(1)该窗体是多文档应用程序(MDI)的一部分并且此窗体不

  • java基础知识点(四)2022-04-23 09:32:28

    对象内存管理 GC:垃圾回收器,JVM自动处理,System.gc()建议JVM进行回收 内存泄漏:建议对象不用后将引用设置为null 栈:调用方法时分配栈帧(含局部变量、参数),方法结束时栈帧清除。 方法区:存放类的信息,运行时加载.class文件,包含静态变量和方法。

  • Java JVM学习笔记2022-04-22 19:00:54

    JVM 基本概念:JVM是可运行Java代码的假象计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域。JVM是运行在操作系统之上的它与硬件没有直接的交互。 Java代码的执行: java代码编译为class-javac:Java源文件通过编译期产生相应的.Class文件(Java到JVM的中

  • java 回收器有几种_Java垃圾回收器种类2022-04-22 07:33:34

    一、Java有四种类型的垃圾回收器 串行垃圾回收器(Serial Garbage Collector) 并行垃圾回收器(Parallel Garbage Collector) 并发标记扫描垃圾回收器(CMS Garbage Collector) G1垃圾回收器(G1 Garbage Collector)   每种类型都有自己的优势与劣势。重要的是,我们编程的时候可以通过

  • Golang 垃圾回收2022-04-22 00:32:20

    Go 垃圾回收使用的是标记-回收算法,分为四个阶段:标记准备阶段,标记阶段,标记终止阶段,清理阶段。 一、垃圾回收流程 1)标记准备阶段 进行的操作: 判断当前协程是否可以抢占,不可以抢占不触发GC; 启动后台标记协程; 暂停用户协程(STW - stop the word); 开启写屏障; 将根对象入队; 标记协程的

  • C++内存分区2022-04-21 00:02:57

    C++中分为四个区 代码区:存放二进制代码,由操作系统管理。特点:共享、只读。 全局区:存放全局变量、静态变量、常量(字符串常量、全局常量) 栈区:函数形式参数、局部变量 堆区:程序员分配和回收,若程序员没回收,程序结束时操作系统回收 栈区: 不要返回局部变量的地址,栈区开辟的数据由编译器

  • GO学习 (一)2022-04-16 13:33:33

    GO语言特性 自动回收垃圾 丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 自动回收垃圾 所谓垃圾回收(Garbage Collection)简称GC,就是所有内存分配动作都会在被运行时记录,同时任何人对内存使用也会被记录,然后垃圾回收器会对已分配

  • JVM之方法区详解2022-04-15 12:01:03

    大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。 联系我 JVM 系列文章我们已经更新完了JVM 的类加载子系统和虚拟机栈,今天我们来聊一下 JVM 之方法区。 首先,我们来看一下方法区和堆、栈之间的交互关系。 User 存放在元空间,也可以说是

  • Qt - 内存回收2022-04-15 11:04:37

    玩个按钮(设置父对象) QPushButton是Qt中常用的一个类 QPushButton* btn = new QPushButton; //show和setparent同时调用会让按钮显示在窗口中间 btn->show(); //显示控件 btn->setParent(this); //将小部件的父组件设置为parent,小部件被移动到其父部件的(0,0)位置

  • 深入理解JVM - 垃圾收集2022-04-14 22:03:13

    1. 概述 垃圾收集器 Garbage Collection。 垃圾收集器需要完成的三件事 哪些内存需要回收 什么时候回收 如何回收 只有Java堆和方法区需要考虑内存回收,程序计数器、虚拟机栈、本地方法栈的内存分配和回收都具有确定性。 2. 如何判断对象已死 1. 引用计数法 Reference Counting

  • 垃圾收集器及垃圾回收算法2022-04-10 02:01:36

    1 什么样的对象需要回收? 自动化的管理内存资源,垃圾回收机制必须要有一套算法来进行计算,哪些是有效的对象,哪些是无效的对象,对于无效的对象就要进行回收处理。常见计算无效对象的方法有两种,分别是:引用计数算法、可达性分析算法。 1.1 引用计数法 在对象中添加一个引用计数器,每当有一

  • 自学java2022-04-07 22:31:18

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程: Servlet 初始化后调用 init () 方法。 Servlet 调用 service() 方法来处理客户端的请求。 Servlet 销毁前调用 destroy() 方法。 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

  • metaSpace垃圾回收2022-04-07 19:01:07

    jdk8移除了PermGen,取而代之的是MetaSpace元空间(Metaspace):一种新的内存空间的诞生。JDK8 HotSpot JVM 使用本地内存来存储类元数据信息并称之为:元空间(Metaspace);这与Oracle JRockit 和IBM JVM’s很相似。这将是一个好消息:意味着不会再有java.lang.OutOfMemoryError: PermGen问题,也不

  • 如何判断一个常量和一个类是『无用』的?2022-04-07 16:05:16

    如何判断一个常量是废弃常量 ? 运行时常量池主要回收的是废弃的常量。 假如在常量池中存在字符串 "abc",如果当前没有任 何 String 对象引用该字符串常量的话,就说明常量 "abc" 就是废弃常量,如果这时发生内存 回收的话而且有必要的话,"abc" 就会被系统清理出常量池。    

  • 100 python垃圾回收机制2022-04-02 22:32:36

    一、引入​ 解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(简称垃圾)就应该将其占用的内存给回收掉,那什么样的变量值是没有用的呢? ​ 单从逻辑层面分析,我们定义变量将变量值存起来

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

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

ICode9版权所有