01 Garbage Collect(垃圾回收) 1.1 如何确定一个对象是垃圾? 要想进行垃圾回收,得先知道什么样的对象是垃圾。 1.1.1 引用计数法 对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。 弊端 :如果AB相互持有 ...
分类:
其他好文 时间:
2019-12-19 09:51:39
阅读次数:
71
说起Java和C++,很容易想到让人疯狂的指针,Java使用了内存动态分配和垃圾回收技术,让我们从C++的各种指针问题中摆脱出来,更加专心于业务逻辑,不过如果我们需要深入了解java的JVM相关原理,我们必须要面对这些东西,深入了解JVM在内存动态分配和垃圾回收技术的原理知识,这篇文章就是来做一个先... ...
分类:
其他好文 时间:
2019-12-18 14:59:43
阅读次数:
99
垃圾收集分两大块内容: 新生代垃圾收集、老年代垃圾收集 两者各有特性,在新生代内存中,大部分对象朝生夕死,GC的垃圾回收算法大多为复制算法 老年代内存中对象的存活率较高,古选择标记-整理、标记-清除算法较多 新生代收集器有三款: Serial收集器、ParNew收集器、Parallel Scaven ...
分类:
其他好文 时间:
2019-12-18 14:47:21
阅读次数:
88
前言 文章来源: "https://studyidea.cn/" 中文直译垃圾回收,是一种回收内存空间避免内存泄漏的机制。当 内存紧张,通过执行 有效回收内存,转而分配给新对象从而实现内存的再利用。 `GC GC GC GC Java` 面试高频考题,了解掌握 GC 是一项必备技能。 学习 ,首先我 ...
分类:
其他好文 时间:
2019-12-16 22:52:55
阅读次数:
173
JVM的垃圾回收机制,在内存充足的情况下,除非你显式的调用System.gc(),否则不会进行垃圾回收;在内存充足的情况下垃圾回收会自动运行。 一、引用计数算法 1.定义:引用计数算法会给对象添加一个引用计数器,每当有一个地方引用他的时候,计数器就加1;当引用失效的时候计数器值就减1。当计数器为0的 ...
分类:
编程语言 时间:
2019-12-15 10:22:16
阅读次数:
110
智能指针实际上就是通过模板技术实现的一个类 内存泄露(臭名昭著的Bug)——在软件开发和测试阶段都不容易被发现-动态申请堆空间,用完后不归还-C++语言中没有垃圾回收的机制-指针无法控制所指堆空间的生命周期 当代C++软件平台中的智能指针-指针生命周期结束时主动释放堆空间-一片堆空间最多只能由一个指 ...
分类:
其他好文 时间:
2019-12-12 22:23:21
阅读次数:
125
JVM参数调优总结 在JVM启动参数中,可以设置跟内存、垃圾回收相关的一些参数设置,默认情况不做任何设置JVM会工作的很好,但对一些配置很好的Server和具体的应用必须仔细调优才能获得最佳性能。通过设置我们希望达到一些目标: GC的时间足够的小 GC的次数足够的少 发生Full GC(新生代和老年 ...
分类:
其他好文 时间:
2019-12-10 09:13:56
阅读次数:
103
1、两种获取通道的方法FileChannel.open()的方式 path获取 OpenOption接口的实现类通常由StandardOpenOption枚举进行代替。 从io流中获得通道getChannel() 2、read 3、write 4、获取和设置通道的位置、大小 5、long trans ...
高级语言C#中引以为傲的GC(垃圾回收器)负责释放垃圾对象占用的内存。 微软允许操作内存,但不支持这样做,扰乱GC。 使用C#中的指针即可,使用unsafe告诉编译器此段为不安全代码,即可使用*或者&来操作内存。 还可以使用DllImport导入C/C++写的DLL接口,C#中可以使用IntPtr对 ...
1.引用的概念 引用这个概念是与JAVA虚拟机的垃圾回收有关的,不同的引用类型对应不同的垃圾回收策略或时机。 垃圾收集可能是大家感到难于理解的较难的概念之一,因为它并不能总是毫无遗漏地解决Java运行时环境中堆管理的问题。 垃圾回收的大致思路是:当Java虚拟机觉得内存不够用的时候,会触发垃圾回收操 ...
分类:
编程语言 时间:
2019-12-09 01:25:02
阅读次数:
90