00:00
好,那接下来呢,我们看下一个问题哈,叫做诶我们这条视频呢,面向的人群和参考书目呢有哪些?首先呢,我们来看一下面向的人群说下叫拥有一定开发经验的Java平台开发人员,软件设计师,架构师,或者呢叫系统调优人员,有一定的Java基础,并希望呢进一步理解Java的程序员啊这个虚拟机的爱好者,Java虚拟机的一个实践者,呃,总结来说的话呢,呃,我们学习GM这套视频的话呢,大家最好是有Java开发经验了,也就是说呢,你具体在公司当中使用框架也好,呃,这个面对具体的这个项目也好,然后是已经开发过了,然后呢,现在有实际的诉求,比如说性能的调优,呃,性能的监控,然后才需要学习我们这一套GM的视频。但是如果大家现在刚刚学完Java语言,本身就是我们通常所说的Java基础,或者叫做Java SE,那能不能学习GM呢,这套视频呢,其实也是可以的啊,或者说呢,我尽可能的,呃,这套视频在讲解的时候呢,针对于刚学完Java语言的同学呢,也是适用的啊,是这样子的,但是呢,呃,能学得懂不意味着说你现在就适合学,呃,因为这个最好大家还是先去开发开发对吧?你还是就跟我们说这个自行车,拿到一辆自行车以后呢,你最好先不要去研究这辆自行车它的结构是什么,呃,怎么去修自行车,你会觉得非常的枯燥,对吧?你最好还是先会去骑自行车,然后呢,你再研究怎么去修啊,买了一辆汽车也是一样,你先去开,感受一下这个开车的美好是吧,然后你再考虑车出问题了,我们怎么修,呃,别上来就修车,这个可能会一下子打消你这个买车的积极性是吧,或者学习Java语言的这个积极性。
01:41
所以大家最好还是先有一定的开发经验,然后有实际的诉求了,然后再来学我们这套视频,那刚才提到了一个呢叫调优,一个呢叫性能监控,呃,那性能监控的话呢,我们在这个第三个篇章。第三个片章我们会讲到具体的一些监控的工具啊,还是比较多的啊,我们一个一个的都给大家去介绍,那涉及到调优,调优的话呢,呃,就会有,比如说代码层面的调优啊,有代码层面的调优,然后也有呢,我们在内存层面,在这个呃,垃圾回收层面的一个调优,那如果提到代码层面调的话呢,比如说呃,简单的问题哈,比如我们写代码呢,叫A加加,还有一个呢,叫做加加I,那这两个有没有区别呢?
02:23
啊,以及呢,我们说内存中咱们写代码的时候,经常会这个造各种各样形式的字符串哈,那不同形式字符串的一个声明,他在内存当中有区别吗?啊,那这个要想解释的清楚呢,我们需要呢,把这个代码呢,编译以后成自解码呢,这个字节码层面我们来反编译,看看它们之间有没有区别,比如说就像他俩一样。我们看具体这个指令是怎么写的,所以呢,我们基于这个代码层面调用的话呢,咱们会去讲字节码和类的加载啊,这个过程比我们这个面对的实际问题我们讲的还要详细一些哈,这是它,然后呢,关于这个呃,内存和垃圾回收方面的一个调优,那就需要我们来懂内存和垃圾回收的一些细节,呃,这也就是我们上篇叫内存和垃圾回收片所要讲解的,也就是说呢,我们讲这三篇就覆盖了GM的全部,我们最终的生产力呢,实际上是来源于第三篇叫性能监控与调优,但是基于第三篇。
03:25
这个你的一个掌握啊,我们需要有第二篇和第一篇的一个积累才可以啊,那功利点讲呢,从面试的角度来说,第一篇,第二篇乃至于第三篇都是常见的啊,不妨呢,我们又出了一个第四篇来,把常见的一些大场面试题呢,我们通通的涵盖进来,这就是我们整个要讲的这个全部内容啊,是这样子的。好,那我们这套课程呢,前面也提到是主要呢基于JDK8,也就是说我们这个正常默认的话,咱装的这个,呃,JDK呢就是八,当然呢,大家你会看到我这其实各个版本都装到了哈,因为我们讲这套视频呢,呃,面向的这个JDK,其实各个版本也都会涉及到,呃,你会看到我装了六到13的所有GDK版本,我们默认的话呢,是在八上讲,但是呢,比如说涉及到这个呃方法区内存呢有一些变化哈,在六当中怎么样,七当中怎么样,八又变成什么样了,之后不变了,诶我们要演示这几个版本,然后后续的话呢,出来一些新的垃圾回收器,我们在不同版本上呢,也可以做一个演示,那就涉及到后续的版本的安装,所以说我们虽然叫机遇吧,但其实呢,我们这些版本呢,都会涉及到,所以呢,我们称为叫机遇GDK13也是没有问题的。
04:39
啊,也是没有问题的哈,好,这是这个问题,呃,然后呢,我们说这个课怎么去讲啊,这呢是我写了,呃三个词比较有感触一些,首先呢,写的叫理论,呃,注意这个是要大于符号啊,不是说理论要大于实践,是说呢,我们整个讲授GM这一套课程的话呢,理论的时间实际上是要长于代码的时间的。
05:03
啊,是这个意思,嗯,在以前的时候呢,我觉得讲一个课,如果理论去讲呢,应该比写代码要简单是吧,写代码感觉应该更难啊,因为你可能一个分号错了,一个大括号错了,他就会出问题,但是那时候呢,还是建立在比较浅显的基础之上的,呃,因为刚开始写代码嘛,大家可能更多的问题都在都出现在代码上啊,理论的话呢,呃,你实在不理解,大不了背一背嘛,是吧,所以当时会以为理论呢要简单一些,代码呢要难一些,但是现在当真正开始要讲GM这个课的时候,我发现其实不是这样子的,反而呢,代码讲解起来要容易一些,因为大家也很好理解,呃,因为我们有逻辑思路啊在这里边,所以讲代码呢其实要容易,大家也更容易进来,就比如说大家学习Java web,学习我们后面的框架和呃,这个写项目是吧,当然也有难度哈,呃,只不过呢,我们要讲GM今天这套课程的话呢,我尽可能的多去讲代码,但是呢,不可避免的,GM这套课的话呢,还是理论。
06:03
盾要偏多一些还是要偏多一些,包括呢,一会我们也要说到一些书哈,大家你买任何一本GM书,你也会发现他不像我们做一个项目一样,大篇幅的是代码,这里边呢,可能大篇幅的可能还是理论,那我尽可能的让这个代码这块呢呈现的多一点,呃,让大家呢更有感觉一些啊,因为呢,有过开发经验呢,对代码呢可能更有感觉,呃,尽可能的我讲解的过程当中,语言呢通俗易懂一些,呃,我这写的叫说人话是吧?呃,因为呢,你要看这些书之前没有接触过,你会发现非常的晦涩难懂,也有很多的专业名词,那我尽可能的把这些呢,还原成我们生活中的一些例子,给大家做一个讲解啊,通俗易懂,呃,这个其实市面上呢,讲这个课之前呢,我也看了一些这个,了解了一些GM的一些视频啊,呃,应该说呢,希望这条视频呢,能够对你更有帮助一些。好,下一个呢是图解,嗯,一个呢是通过代码呢,更利于大家来理解GM,另外呢,就是通过画图的方式,呃,所以呢,这块我其实也画了一些这个图哈。
07:07
嗯,这是用了一个工具。哎,这工具呢,这里边的每一个图呢,这都是我自己自己一点一点画画的哈,嗯,因为人还是比较擅长处理这种形象的事物的,所以呢,讲解的过程当中啊,我们在具体的章节呢,都会大家来看这些图啊,通过图的方式呢,大家去更好的理解我们的这个GM啊,是这样子的啊呃,后续呢,我们这个讲到具体内容的时候,我们再来画啊。好,这是说的我们这个课该怎么去讲,呃,具体这个章节的话呢,我们在一开始的时候也说到了,一共是有16章啊,嗯,你光看这个章节名称的话呢,感觉好像平淡无奇,但其实内部的话呢,有很多的一些细节哈,嗯,举例子,比如说呢,我们提到叫类加载子系统,诶提到这个时候呢,我们可以谈一个什么问题呢?说这个扎亚逊尼当中,呃,为什么要有呃双亲委派机制。
08:05
对吧?哎,我们在这里边会提到,然后程序计数器,我们可以谈虚拟机当中也有寄存器吗?啊,很多同学有网上问这个问题啊,说虚拟机中也有寄存器吗?该怎么解决这个回答这个问题呢?呃,虚拟基站我们常说呢,说叫站管运行,堆管存储,应该怎么理解这句话呢?对吧,然后比如说堆当中,嗯,Java堆一定是多个线程共享吗。Java中的对象一定要创建在堆上吗?哎,我们在这个里边都会解释哈,那方法区方法区这个大家可能都多少听过哈,那方法区永久带这个圆空间,那到底是什么关系呢。对吧,啊,直接内存我们不提了啊,那这个关于这个执行引擎,呃,我们说Java呢,为什么说叫半解释型半编译型语言呢。呃,很多,大家很多同学学习Java呢,刚开始就说啊,说Java是一门半解释型半编译型语言,怎么理解这个词呢?对吧?我们在执行引擎当中会提到那string table啊,这不用多说了,这也是面试非常爱问的啊,说为什么面试总爱问关于string的各种问题,尤其是内存结构。
09:17
对吧,哎,这是这个问题哈,呃下边呢,几个章节都是关于我们说的这个,呃垃圾回收,呃那垃圾回收中,比如说叫呃,Manager j c啊major j c和four j c在什么时候出发呢。垃圾回收算法很多,那具体这个算法在哪些环节当中,针对于哪块内存空间去使用?具体的算法实现细节是什么样的呢?对吧,然后垃圾回收的相关概念,比如说强引用,软引用,虚引用啊,弱引用啊,各种引用区别是什么呢?为什么会有这么多种引用呢?在什么场合下去使用呢?啊,诶我们在这个相关概念中去解释,哎,垃圾回收器,那垃圾回收器呢,我们说现在已经JDK迭代到十二十三这个版本了,那垃圾收集器有没有什么更新吗?有没有更好的垃圾回收器呢?诶这些问题呢,我们都会在这个章节的当中去进行一个讲解。
10:12
啊,这就是我们说的这个问题哈。
我来说两句