1.概念 1.1什么是GC 垃圾(Garbage)就是程序需要回收的对象,如果一个对象不在被直接或间接地引用,那么这个对象就成为了「垃圾」,它占用的内存需要及时地释放,否则就会引起「内存泄露」。有些语言需要程序员来手动释放内存(回收垃圾),有些语言有垃圾回收机制(GC),例如我正在学习的Java语言 ...
分类:
其他好文 时间:
2019-09-09 14:39:04
阅读次数:
127
JVM宏观认知 1.什么是虚拟机? 虚拟机是一种 软件 。 可分为系统虚拟机(仿真物理机)和程序虚拟机(执行单个计算机程序,比如JVM)。 2.什么是Java虚拟机(JVM)? JVM是一种将字节码转化为机器码的软件。(同上) 历经时间的迭代,目前广泛应用的Java虚拟机是Oracle的HotSpo ...
分类:
其他好文 时间:
2019-09-01 10:35:37
阅读次数:
71
map.clear() 只是把map清空了,但是内存没有释放,如果要释放内存不止是要clear()掉,还要和一个空的map来进行swap,将内存释放。 注意map中如果元素不是基本类型,也要进行内存释放,如指针,vector要尤其注意,否则map占的内存太大,会造成程序崩溃。 示例代码: ...
分类:
其他好文 时间:
2019-08-30 16:01:42
阅读次数:
66
最近做一个事情,实现一个流程交互,其中主交互流程函数中,涉及较多的内存申请, 而健康的函数,都是在函数退出前将手动申请不再需要的内存释放掉, 使用很多方法,都避免不了较多的出错分支时,一堆的if free/delete,代码长而且不好管理 因此,利用C++对象离开作用域会自动调用析构函数的特点,在这 ...
分类:
编程语言 时间:
2019-08-24 18:42:45
阅读次数:
108
1、什么是堆? 堆(heap)是一种内存管理方式。内存管理对操作系统来说是一件非常复杂的事情,因为首先内存容量很大, 其次就是内存需求在时间和大小块上没有规律(操作系统上运行着几十甚至几百个进程,这些进程可能随时 都会申请或者是释放内存,并且申请和释放的内存块大小是随意的)。 堆这种内存管理方式的特 ...
分类:
其他好文 时间:
2019-08-14 17:06:05
阅读次数:
54
Delphi TStream 详细介绍 Stream对象,又称流式对象,是TStream、THandleStream、TFileStream、TMemoryStream、TResourceStream和TBlobStream等的统称。它们分别代表了在各种媒介上存储数据的能力,它们将各种数据类型(包括 ...
题目链接 https://pintia.cn/problem sets/994805260223102976/problems/994805284092887040 题解一 这份代码最后一个点会超时 c++ // PAT BasicLevel 1038 // https://pintia.cn/pr ...
分类:
其他好文 时间:
2019-08-10 20:58:30
阅读次数:
104
极力推荐Android 开发大总结文章:欢迎收藏 "程序员Android 力荐 ,Android 开发者需要的必备技能 " 和`Dalvik虚拟机 RAM`中,并且不能被分页。 应用程序释放内存的唯一方法是释放应用程序持有的对象引用,即使垃圾收集器回收 回收内存 。 比如:如果系统想要在其他地方使用 ...
分类:
移动开发 时间:
2019-08-09 16:05:05
阅读次数:
134
内存与指针杂谈 1、指针 1、数组指针 ()的优先级高,( ptr)表示ptr是一个指针,指向一个int类型的一维数组,这个数组的长度为n,也可以说ptr的步长就是n。也就是说执行ptr+1时,ptr要跨过n个int的长度。 2、指针数组 []的优先级高,p和[]先结合表示一个数组,int\ 表示数 ...
分类:
编程语言 时间:
2019-07-23 17:27:40
阅读次数:
133