灯灯灯灯 灯灯灯灯
3年前
【垃圾回收】全面解析,内含面试题及图文详解!!
垃圾回收概述和相关算法1.Java和C语言的区别,就在于垃圾收集技术和内存动态分配上,C语言没有垃圾收集技术,需要程序员手动的收集。2.垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。3.关于垃圾收集有三个经典问题:哪些内存需要回收?什么时候
CuterCorley CuterCorley
3年前
C语言入门系列之8.指针的概念与应用
一、指针引入指针是C语言中的一个重要的概念,也是C语言的一个重要特色。正确而灵活地运用它,可以有效地表示复杂的数据结构;能动态分配内存;能方便地使用字符串;有效而方便地使用数组等。掌握指针的应用,可以使程序简洁、紧凑、高效。可以说,不掌握指针就是没有掌握C的精华。1.地址的概念数据在内存中的存储和读取如下:内存区的每一个字节有一个编号,称为地址
cpp加油站 cpp加油站
3年前
c++动态分配浅析
1.c语言中动态分配和释放在c中,申请动态内存是使用malloc和free,这两个函数是c的标准库函数,分配内存使用的是系统调用,使用它们必须包含stdlib.h,才能编译通过。malloc后需要检查内存是否分配成功,free则要在指针不为空的情况下才能进行。示例代码如下:cinclude<stdio.hinclude<stdlib.hinclude
似梦清欢 似梦清欢
1年前
线性表
线性表的顺序存储实现(数组形式)称为顺序表。线性表顺序表示原理解析这里描述的线性表是逻辑结构的,独立于存储结构。线性表的顺序表示简称顺序表。顺序表实现线性表的方式是使用数组。线性表第一个元素的数组下标是0。另外一种实现顺序表的方法:使用数组方式比动态分配更
Stella981 Stella981
3年前
LVM的创建,修改大小,删除以及彻底卸载的操作步骤
首先解释一下几个关键词pv:physicalvolume物理卷,就是用物理磁盘组成的卷,要在物理磁盘上创建。vg:volumegroup卷组,就是物理卷组成的卷组合,要在物理卷基础上创建。lv:logicalvolume逻辑卷,可以理解为逻辑可动态分配的磁盘空间,要在卷组上创建。所以lvm的创建顺序就是,物理磁盘分区(也可以不
Wesley13 Wesley13
3年前
Go语言内存管理(一)内存分配
Go语言内存管理(一)内存分配golang作为一种“高级语言”,也提供了自己的内存管理机制。这样一方面可以简化编码的流程,降低因内存使用导致出现问题的频率(C语言使用者尤其是初学者应该深有体会),对程序猿友好。另一方面也可以减少内存相关系统调用,提升性能。先了解下内存管理大致策略:申请一块较大的地址空间(虚拟内存),用于内存分配及管
Stella981 Stella981
3年前
Linux系统——DHCP
DHCP定义DHCP服务是负责IP、掩码、网关地址、DNS地址等自动分发的软件服务DHCP的分配方式(1)自动分配:分配到一个IP地址后永久使用(2)手动分配:由DHCP服务器管理员专门指定IP地址(3)动态分配:使用完后释放该IP,供其他客户机使用DHCP的租约过程(客户机从DHCP服务器获取IP地址的过程)(1)
Wesley13 Wesley13
3年前
Java内存区域与内存溢出异常
Java的内存管理是一个老生常谈的问题,虽然Java号称可以自动管理自己的内存,使程序员从内存管理的围墙解放出来,但是一连串的内存泄漏和溢出方面的问题,使得我们不得不去深入了解Java的内存管理机制。本篇文章将从Java的内存区域开始剖析Jvm的内存机制,阐述内存溢出异常产生的原因。运行时数据区域众说周知,Java程序是运行在Java虚拟机
Stella981 Stella981
3年前
Linux 虚拟内存和物理内存的区别?
概念:物理内存:真实的内存条,CPU可以直接寻址的内存空间。虚拟内存:利用磁盘空间虚拟出一块逻辑内存。区别:Linux会在物理内存不足时,使用虚拟内存,内核会把暂时不用的内存块信息写到虚拟内存,这样物理内存就得到了释放,这块儿内存就可以用于其他目的,而需要用到这些内容的时候,这些信息就会被重新从虚拟内存读入物理内存。
Stella981 Stella981
3年前
JVM的内存结构、内存溢出、内存泄漏、内存模型你知道吗?
!(https://oscimg.oschina.net/oscnet/e70b201c49e94728aba6448bb328ebd7.gif)!(https://oscimg.oschina.net/oscnet/f870e5eeab1b436e935eb416fe651940.gif)1、JVM内存结构