00:00
啊,看这个图啊,这是咱们写的唯一的一份账号程序,对你的一个小的一个算法也行,或者是一个系统项目也可以啊,我们呢,可以让他在Windows Linux Mac系统下都可以去运行,怎么做到的,因为我们提供了不同操作系统对应的GM的这个版本。哎,我们的Java应用程序实际上啊,实际上是跑在这个GVM上。啊,实际上是跑到这个GM上,这个GM呢,装在不同的这个操作系统上啊,是这样的啊举个例子,举个例子啊,比如说呢,大家现在呢,呃,去看一场演唱会,呃,这个演唱会呢,呃,这个这个有了一些明星,大家喜欢什么明星啊,现在比较火的。有好多这个这个九零后零零后的都是吧,比如TFBOYS现在好像那个叫什么101火箭少女挺火的是吧?嗯,比如说这个tfboy啊,他们现在开一场演唱会啊,开场演唱会的话呢,这个他就是比如说有几首歌他需要唱啊,真的就是这个Java应用程序了,那他这个演唱会呢,是露天的在外面的,然后呢,外面的这个场景呢,其实不一样,比如说呢,他要是在这个这个咱们北京开,北京的这个整个呢属于个大平原啊,这个地面呢就比较好,可能都是水泥路面啊,然后呢,他也想在这个西部开,西部呢那块有一些沙漠,就是想在沙漠里边也开一场演唱会,哎,这个不同的这个自然环境,大家就可以理解为是不同的操作系统啊,那他不能直接就站在这个沙子里边就开始跳了,肯定得搭一个舞台,诶搭的这个舞台呢,就相当于是我们的GM。
01:54
嗯,那你能够想象到的就是在沙漠里边搭的这个舞台,哎,跟我们在这个水泥地面上搭,包括呢,你去这个山区,这个坑坑洼洼的地面啊,这个搭的这个舞台应该是有一些区别的。
02:09
你比如说北北京这种地面比较好,可能直接的立几个柱就行,你要沙子里边呢,你可能得打的深一点啊等等是吧?啊,那也就是说呢,针对于不同的操作系统,咱们提供的这个GVM啊是不一样的。啊,这个GVM呢是不一样的,好,那这个舞台搭好以后啊,他们呢,唱几个歌或者跳几个舞,其实呢,里边是不是想怎么唱怎么跳,其实都是可以一样的呀,对吧?哎,对,这就是我们说到的啊,就是障碍应用程序呢,我们写一份就可以了,然后呢,你在不同的操作系统里的GVM当中去运行,哎就行,哎,然后不同的操作系统的GVM是不一样的啊记住这个事啊好呃,那这里呢,刚才我们也提到了,说这个Java的两种核心机制啊,一个叫Java虚拟机,它能够实现啊依次编译,到处运行。
03:08
啊,另外呢,就是张二呢,诶,我们可以拉动垃圾的自动回收啊,这是它的这个情况啊,那关于Java虚尼呢,这块又有一个介绍,这个大家就了解一下就行啊,它就相当于是一个虚拟的一个计算机,或者叫虚拟的一个这个这个操作系统也行。啊,看这个图可能更好一点,就是咱们呢写的账号程序啊,账号程序呢,你去执行的时候呢,其实就是自接码这个形式了啊,然后我们把我们的这个账号程序呢,在GM上去跑,其实这个GM呢是跑在具体的操作系统上的,操作系统呢又依赖于具体的硬件对CPU帮我们去运算,哎,所以是这样的一个过程。好,嗯,这个垃圾回收呢,咱们那会儿呢,也提到了一下这个问题,哎这块呢,有一个这个情况我们需要关注一下,说垃圾回收在C语言当中呢,它得是由程序员呢自己来负责的啊,那在Java当中呢,我们是可以自动的实现垃圾回收的,就是大家呢,只需要呢,你去写代码,然后自动的去运行,去分配内存空间,然后那个内存的不用你去管,它自动的不用的时候就回收了。
04:19
啊,就有点像大家呢,比如说你你你回家以后,然后屋里边呢,这些东西呢,你可能用过来用过去把屋里造的挺乱的,你就只管用就行,然后呢,你一关门啊,自动的里边有一个保姆就给你咔咔都收拾好了。啊,就Java呢,相当于是就有一个保姆在,然后呢,C语言呢,就得你自己去收拾啊,就这么个区别啊,那这里呢,有一个问题,哎,大家看这。说Java程序既然呢有自动的垃圾回收,哎,是不是呢,就不会再出现内存泄漏和内存溢出的问题。嗯,这里呢,提到两个陌生的概念,内存泄露和内存溢出啊,有点类似于就刚才说的啊,大家屋子里边你一顿造,造了以后呢,连下角的地儿都没有了,这个呢,你就可以认为是内存泄漏或内存溢出了,屋里边乱的东西都开始往窗户外边都开始往外掉了,都是吧,实在太乱了啊,那内存泄露,内存一出,内存一出呢,我们稍微解释一下,比如说我们这个占空间啊,或者你就列解成内存的一个空间啊,你这块你不是要用吗?这就要占用这个空间了,本身这个空间呢,其实你不用了。
05:33
你不用了安卓就该回收,但是你说诶Java不是自动回收嘛,好你就你就认为这都自动回收,那就问说诶既然能自动回收,是不是就不会出现说重下溢出的情况。你像这呢,这就充满了,然后再放放不下了,这叫溢出了,说Java既然能够自动回收了,是不是就不会溢出来呀?哎,镇长说不是,还是会出现的。
06:00
啊,那为什么自动回收了,然后还会出现呢?啊,这就跟你写的程序有关系了啊这个咱们后续呢,讲异常的时候呢,会说啊,就是我们写的这个程序呢,有的时候会导致啊,我们这个垃圾收集器呢,不能够自动的给你识别,哎,这个是不用的了,然后呢,回收还回收不了,那你要太多的时候呢,就导致仍然会溢出。哎,包括这个泄露,泄露咱们后边再说哈,就是你不用了,但是它回收又回收不了啊,那多了以后呢,仍然也会溢出。啊,就是Java呢,仍然会出现这个问题,需要我们写程序的时候呢,还是要注意啊。
我来说两句