温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
那下个问题呢,就是早期的垃圾回收啊,这块呢,大家如果接触过这个C和C加语言的话呢,应该是比较清楚的啊,在早期的C或者C加加啊,这个我们说也是高级语言的时候呢,这个时候的垃圾回收呢,是需要我们手工来进行的,那开发人员呢,需要使用像new关键字呢,咱们来进行内存的申请,那使用delete的关键字啊,进行内存的一个释放,那下边呢,就举了一个例子啊,这是申请内存,这呢是我们来释放这个相应的内存空间。那这种方式呢,我们说是比较灵活对吧,你什么时候需要用你就用,那什么时候需要呢,清除呢,你就delete非常的灵活啊,但是呢,它这个问题的话呢,就是频繁的申请释放呢,这需要我们有一定的这个叫管理的负担。呃,大家知道呢,我们在一个系统当中啊,实际上这个内存的申请和释放啊,是非常频繁的,那一旦呢,你要是忘了进行一个回收的话,那我们说呢,就有可能会造成这个内存的泄露,那在我们这又出现了一个内存泄露的概念了,那什么叫内存泄露呢?
01:00
诶,从咱们Java这个语言角度来讲,内存泄露就是说诶我们这个数据啊,首先说不用了,但不用的话,我们试图因为Java呢,咱们有这个自动的这个垃圾回收JC对吧?当我们试图呢,进行回收的时候,发现呢,这个对象还没办法进行回收啊,因为呢,它还有相关的一些引用的指向,对吧?哎,这个呢,咱们就成为内存的泄漏,就是说本身不用了,但是呢,我这些的时候呢,还没办法进行回收啊,这叫内存泄露啊,咱们后边呢,还会专门来说这个概念,那如果说我们在这个程序当中,内存泄漏过多的话呢,咱们就会导致内存空间呢,是不是就持续上升。啊,还没办法进行JC对吧,那最终的目的呢,就是造成这个OM啊,或者我们这样内存溢出的问题导致呢,程序崩溃。就这呢,就引出了一个点,就是说我们自动的去申请和释放的话呢,是非常的灵活,但是呢,由于咱们在应用程序当中频繁的申请和释放的场景呢非常多,所以呢,导致呢,我们第一个呢有管理负担,第二的话呢,就是你万一要忘的话呢,就很麻烦,呃就出现这样的场景,那就好比是呢,大家这个在家的时候呢,呃,这个你会频繁的就往家里边一顿乱造是吧,本来呢挺干净的一个家,然后呢整理的乱七八糟的,那这时候你得需要自己呢去收拾。
02:11
啊,你有这样的一个负担,但你要不收的话呢,这有的时候你找别的东西呢,就找不着了是吧,这个家也不能成为家了是吧,成了一个垃圾场了啊,那有了这个垃圾回收机制以后啊,咱们就可以呢,只用关注内存的一个申请啊,包括这个申请的具体的空间在哪呢?这个你也不用管,那我们自动的像张碍元,如果说你这个对象呢比较大,我们呢就会在这个堆空间当中去找能够满足你这个连续空间的这样一块空间大小。去存放这个对象,那如果你要始终都没有呢,咱们再去可以动态的去扩展对吧,那如果说已经到上限了,没法扩展了,那我们再报这个OM也不迟啊,这呢是我们在申请环节,那么关于这个呃,申请的一个释放呢,我们就不用再手动的去做这个delete的操作了,那我们可以实现一个自动的一个收集,那现在呢,像主流的这个Java语言,Cup Tyson Ruby这样语言的话呢,都具备了自动垃圾回收的思想,这呢也是咱们说这个高级语言的一个一个未来发展的趋势。
03:06
就是呢,由程序员呢,呃,由程序员呢,主要来申请这个内存对吧,那当然这个内存的申请呢,也是动态分配的啊,那以及的话呢,这个垃圾回收呢,就是自动的一个实现。啊,说自动的内存申请,那内存的分配和垃圾回收是现代开发语言的一个必备的标准,那这两个词呢,就是在咱我们刚才提到的,呃,这个图里边是不是就出现了。那这个大家注意一下,那就好比是呢,大家呢,现在呢,你只管呢,是不是就是在家里边一顿造就行,然后呢,咱们给你配个保姆对吧,还这个保姆呢,就帮你把这个东西呢,是不是都给你就清理了,对吧?哎这样这样一个概念,或者换句话呢,就是咱们上面说的那个JC指的呢,是大家比如说类比的,呃,你想省钱,你想攒钱,那下边呢,就相当于给你配一个叫什么理财规划师。啊,这个理财规划师就是你只管挣钱,然后剩下这个事呢,不用你管了,这个理财规划师呢,帮你去省钱,帮你去攒钱,帮你是让钱生钱,对吧?诶类似这样的一个道理啊,行这呢就是我们早期的一个行为,大家呢了解一下。
我来说两句