00:00
好,同学们,接着的话呢,咱们来看一看关于idea安装与使用的第12个专题啊,这儿呢,也是咱们讲解整个idea使用的最后一个专题了,关于idea当中常用的插件啊都有哪些,这儿呢,我罗列出来了有13个,诶大家呢,可以呢,一起呢,咱们走一下,针对呢比较好的一些插件呢,诶大家呢,也可以及时的做一个安装啊。呃,那我们说呀,Idea呢,现在之所以受欢迎,其中呢也有一个原因,就是因为呢,它非常丰富且好用的插件。啊,其实这呢也就决定了idea呢,之后呢,也不会轻易的被一个新的啊开发环境呢所替代,因为它的这个插件呢是极其丰富的哈,呃,这个使用户呢有很强的一个粘性。那再换一个场景呢,比如说咱们这个Windows操作系统当中啊,以前的时候呢,自带的是不是都是IE浏览器,那后来呢,谷歌的这个Rome浏览器呢,异军突起,那其中呢,大家选择Chrome的一个原因,也是因为Chrome呢,除了速度快之外呢,它呢还有比较丰富的插件市场。诶再举个例子,比如说我们使用的这个安卓操作系统也好,还有iOS操作系统也好啊,诶在相应的这个平台上呢,有非常丰富的APP啊,这呢其实也决定了用户的一个性啊,有很多人就喜欢iOS啊,也有很多人呢就喜欢安卓,对吧?哎,但是呢,现在已经没有了。
01:17
啊,可能有很多同学呢,根本都没有听说过Windows是吧,就是微软呢,在最初移动市场崛起的时候呢,他也推了一个操作系统啊,那就是Windows啊,但是呢,就由于这个,呃,操作系统上面呢,这个应用呢是极其乏的,所以呢也导致这个操作系统最终呢就失败了,当然失败原因很多啊,这呢是咱们从用户的角度来讲呢,比较重要的一个原因。好,那么这里呢,咱们就来讲一讲idea当中,诶丰富的插件,诶都有哪个,诶都有哪些啊,首先呢,第一个呢,是阿里巴巴呢,开发了一套关于Java的编程的规范啊,这呢对应的是一个插件啊,那说到这个插件的话呢,我们可以首先呢看一看这个课件啊,在课件这个资料里边呢,我这儿给大家提供了一个啊阿里巴巴的一个开发手册,这呢叫黄山版。
02:00
啊,这个它这个开发手册呢,都是以咱们国内的很多这个山来命名的,那这儿呢,是算是目前比较新的一个版本了。那么在这个开发手册当中啊,他就提到了啊,我们进行Java开发啊,或者Java后台开发相关的一些场景当中,呃,一些约束是吧,一些规范。啊同学说呢,这儿呢也是阿里巴巴一家之言,那我现在又没有在阿里体系下,我们要不要学习呢?啊,应该说在咱们国内这样一个场景当中啊,阿里的话语权还是比较重的。啊,或者说呢,阿里巴巴呢,对于Java生态的建立啊,是非常重要的啊,这个不管是国内来讲,还是从这个世界范围上来讲,其实诶都有它的重要意义啊,所以说这块呢,阿里的一些规范呢,呃,也就代表了咱们国内开发当中的一些规范,所以呢,大家啊,在开发之余呢,建议啊,稍微的你看一看这样的一些,这个呃,这个规范要求都有哪些啊,那么我们呢,就可以在咱们idea当中啊,大家打开这个file,有个叫settings。然后呢,在我们左侧列表这块呢,有一个叫ince啊,就是我们所谓的这个插件了,然后这呢有两个选项啊,第一个呢叫啊marketplace,那就是我们的这个市场是吧?然后右边这个呢,叫install的,就我们已经安装了哪些插件啊,所以呢,你点开这个之后呢,大家会发现呢,我们在安装好idea以后呢,已经有一些插件呢,是不是都装上了呀。
03:21
诶,对的啊,已经有插件都装上了,好,那我们就可以在这个左侧这个位置啊,这个首先呢,得保证你电脑是联网的状态啊,那这时候它自动的会去连接上,呃,我们这个marketplace啊,就是插件的市场,好然后呢,你在这个位置呢,直接呢去搜索一下就可以了,非常的简单啊。那搜索完以后的话呢,这块关于阿里巴巴呢,Java开发的规范呢,大家会发现这里边有两个是吧?诶上面这个是这个2.6兆的,下边这个是84.7KB的啊这个上面这个好像更大一点是吧?呃,这个装哪个呢?啊这呢也提到它相应的这个版本呢,呃,这个上线的一个时间。啊,这个你装哪个其实都可以啊,比如我这块的,我就装的是下边这个。
04:01
好,那么这个时候呢,就会从相应的这个插件市场呢,呃,这个联网的方式呢,给它下载过来,那么有一些插件呢,要想让它起作用,我们需要呢,去重启一下咱们的嗯,Idea,那你直接呢,点一下这个按钮就可以了。有一些插件呢,不需要啊,不需要呢,我们就不用重启了,直接你看一看它用不用重启就行啊。好,那么这时候呢,我们就重启了idea,重启完以后呢,这个时候呢,咱们阿里巴巴的这样的一个插件呢,其实就起作用了。啊,大家可以在这看一下啊,Install了,你看是不是就已经有了,好有了以后呢,这里边打上勾表示呢,它就现在起的作用了,哎,你看我们右键一下啊,如果呢,你选一个叫disable。啊,那这时候我如果点一下应用,那么此时的话呢,这个插件虽然安装了,但是呢,它不会在我们的开发当中起作用。啊,说白了就是你安装了,但是没有用。啊,没有使用的意思啊,好,那么你也可以呢,你说我这插件我装了我不想要了,诶是不是接着可以做一个store,就做一个卸载就可以了。
05:02
那有的插件呢,卸载完也得需要你再重启一下这个idea是吧,需要重启那就重启一下就完了。行,那你要是让它起作用的话,你把这个勾给它勾上就行啊好OK一下就可以了。那这儿呢,咱们再去新建一个module呢,去演示一下这个插件的使用啊,新建一个module,诶过来这儿呢,咱们还是,哎保持这个队形啊,Module叫零五,诶叫a plug。Ins,这样吧。好这呢,我们来一个create啊好,那么在当前这个账号工程下呢,我们这个我就叫工程了啊,其实呢,你也可以叫成这个module src下去新建一个包。come.and硅谷。那第二比如叫哎,Plug。Ins是吧,OK,好,那么在这个下边呢,我们写一个代码啊。In test1。OK啊,这呢,我们写一个没方法。好,那么这儿呢,我们来演示一下啊,Java开发这个规范呢,对我们的一个影响啊,举个例子,咱们呢,在最初学习Java的时候呢,其实有一些规则和规范是吧,那么这个规则呢,我们说呢,是必须要遵守的,那举个例子啊,你比如我们定一个in型的一个变量吧,这是我们叫number,或者我这样写吧,那叫MY。
06:13
诶number这个值呢,我们复制为十是吧,诶我们说了数字不能开头,我这就写了个一开头的这个呢,就直接编译就报错了,诶这呢就我们说呃一些规则了,呃一些规范呢,举个例子啊,你像我们这儿呢,对一个变量进行命名的时候呢,它要求呢是一个呃首单词小写。后边这些单词的首字母呢,是要求大写的。诶,大家应该还记得这样一个规则是吧?诶你说这个规则我要是不遵守呢,诶不遵守的话,你比如说咱们把整个这个变量呢,呃,涉及到这几个字母呢,全部转换成大写,哎还记得这个快捷键吗?Ctrl shift u是吧。这个你再点一下,这就都变成大写了,那这呢显然不符合咱们开发的规范。那不这个规范呢,影响我们编程吗?呃,实际上呢,我们说呢,也不影响是吧,比如我这块呢,我写个叫MY,咱们如何去运行,是不是这个结果呢,正常也能够打印出来。
07:07
诶,你看正常是能打印的,没有问题是吧?好那么这时候呢,大家你看啊,我们在整个这个代码的一个层面啊右键诶你会发现呢,这有一个叫阿里巴巴的啊,它的开发的一个规范的要求啊,做一个analyze分析点一下。好,那么接下来的话呢,你会发现呢,在我们整个这个文件当中,它这儿呢,有相应的一个提示啊,这个提示呢,你往这一放啊,他就收到我们这样一个变量,它是不允许啊写成这个叫lower case,就是说白了就是我们现在这个写法呢,是不是太规范的啊,就不应该这样去写,这就提示我们这块有一个问题是吧。这个提示的话呢,它其实也有一个警告的一个级别啊,现在你看我们这是个叹号,有的时候呢,会有一些这个红色的,那红色的话呢,相对来说就是比较严重的问题了。呃,那么严重的问题,比如说什么样子呢,大家你看这样一个例子啊。比如这啊,我这呢是声明一个叫咱叫father吧。
08:03
哎,这呢是一个负类啊,这里边儿呢,我们就写一个普通的方法,比如我叫method。这个方案呢,具体的细节我就不写了,然后呢,在我去声明当前father类的一个子类啊,咱们叫做散,让他呢去继承这个father类。那我呢,就可以对这个方法呢,是不是进行一个重写呀,诶我粘过来这就重写了,好但是你发现呢,我把这个粘到这以后呢,诶这怎么感觉给我报错了呢。没问题啊,诶你看这种,你看这个红色的是吧,诶这个呢,就是由于我们诶不遵循Java开发规范里边我们认为是比较严重的一个问题,你看我们再去做一个哎分析啊啊这你看就一个blocker是吧,好把它点开以后呢,诶这里边就提了说呢,你要是写这个散的时候啊,这个子类啊对应的这个方法呢,必须要求它上边呢加上一个A。啊,或者override是吧,哎,真的叫missing,他认为呢,这是一个比较严重的问题啊,那你这块比如我们重新呢,再去做一个。
09:00
那你看这个run呢,是不受影响的,但是呢,这块啊,它给我们标的是个红色的,所以这个红色呢,不是说咱们呃,Java的这个编译器没有通过,而是说呢,不符合咱们Java阿里巴巴的这套规范了,诶是这个意思。啊,这个大家注意一下啊。好,那么呃,再比如说啊,咱们再举一个别的这个例子吧,啊,比如说我们在这个位置写一个呃,字符串对象的一个创建吧。哎。那这呢,我们是调它的一个这个构造器点啊,我们来个new来点,再来一个是吧,啊叫HR了,行,然后呢,在右边这块呢,我就写一个单行注释啊说呢叫创建了。啊,一个string的实例。哎,或者我们叫死的对象啊,都可以,这个写完之后呢,你看我们再去点一下啊,针对我们当前这样的一个代码的一个分析啊,你发现了,这里边你看又多了一个,这里边就提到了。提到什么呢,说呢,我们在写这个注释的时候呢,你看啊statement,我们是把这个注释。
10:04
呃,是不是写到了咱们当前这一行代码的,呃,比看呢,就是右边是吧,这儿呢,它也是不建议的,你看这个档次门槛就又稍微的低一些了啊,诶那么他建议怎么写呢?他建议呢,我们放在这个位置。诶放在这个位置,你看我这块改了以后呢,咱们再去做一个分析,你看这时候就没有了是吧。那就可以了。啊,这呢,就咱们说的这样的一个意思啊,哎,这样的意思。好,这里边儿呢,大家会发现呢,呃,你看这块我们,呃演示的话呢,这是不是都是这个英文的模式是吧?嗯,这个原因是啥呢?我看下这个help啊,Help这块呢,有一个这样的一个,这个我们以前也操作过啊,就customer v的一个options啊,在这里边呢,你看我有一个这样的一个操作。诶把这个操作呢,我先给它删除掉啊,诶咱们再做一个保存。保存完以后啊,咱们针对这点地儿呢,我再做一个重启啊。咱们回到。那这个位置,那这呢一个叫just restart重启一下。
11:04
好,这个我们稍等片刻啊。诶,这时候重启的话呢,其实也依赖于大家电脑的这个什么呀,这个性能了啊好,那么我重启以后呢,大家你再看啊,我点右键啊,你会发现呢,此时呢,这个位置显示的就是一个中文了。啊,那为啥我这刚才是英文现在变成中文呢?呃,因为呢,我装后边一个,呃,这个这个一些操作的时候呢,我呢在这块呢,需要加上个英文的一个提示,大家这块呢,默认应该是没有的啊,所以说如果你安装上这个插件以后呢,它显示的正常就是个中文啊,你看我这时候再去点啊,这里边给我们的一个提示啊,你看就是中文的了,体验呢是不是。哎,挺好的是吧。啊,那如果大家呢,你觉得呃中文的更好,诶这块呢,你就默认其实就是中文啊,如果你就想把它切换成英文的话呢,诶加上我刚才那样一个插件就行,诶那样的一个参数就可以了啊啊那个参数的话呢,一会儿我们再提一下他。好,这呢就是想给大家说的第一个插件啊,那么第二插件呢,是接lab啊,这呢实际上也是一个客户端的软件啊,主要呢,目的是用来分析咱们的字节码文件的啊,这个学习GM的同学呢,这个应该是一个必备工具了,好,那我们把这个呢CTRLC一下啊,回到咱们插件市场。
12:19
嗯,在这个位置是吧,首先呢,它需要做一个联网操作,这个你稍微等一等。哎,这个连不上网的话呢,连不上我们这个market这个市场的话呢,这个你搜索就没有意义了啊,这个refresh一下。不定事儿是吧,你看我这块我就先把它粘过来,那这个就查不着了啊,他得需要呢,做一个市场上的一个连接啊。先把它关掉。嗯,这就可以了,好,然后呢,CTRLV一下。哎,这呢,就是我们这个资金码文件的一个分析工具啊,Install。
13:01
嗯,这个呢,就是下载是吧,本身的这个插件呢,其实都不是特别大啊,诶但是呢,大家你要注意一个事儿,就是这个插件的话呢,如果我们装的越多,咱们启动啊,或者运行idea呢,是不是呃,它就会呃相应的这个插件呢,在一些场景下呢,就会起作用,那整个呢,应该说它的弊端就是会拖慢咱们整个程序的一个执行了。啊,会拖慢这个执行,所以这块呢,大家也不是说见到这个插件呢,我们就需要安装,主要呢,还是哪些常用啊,你把常用的装下就行啊,有利有弊嘛,是吧。好,那么这儿呢,我就装上了,那么装上以后呢,对我们的影响是什么呢?呃,这块大家你随便开一个代码啊,比如说就以咱们当前这个代码为例,这个代码的话呢,首先要确保它编译过。诶,咱们这个编译过没有,其实刚才也好像没有去做具体这个运行,诶因呃运行过是吧?诶但是这块你要注意哈,我们得保证它是一个最新的版本。啊,这个没有了啊,刚才我们不是打印过它啊,加了这行代码之后呢,应该咱们没有去运行是吧?好,那么咱们要是使用诶刚才提到这个资码文件的一个解析器的话呢,首先它针对的是自解码文件起作用,你得先确保针对这个代码我们要有一次编译。
14:10
啊,那很简单,直接你就运行一次就行。对吧,那运行的过程当中自然呢会做编译,那或者的话呢,我就不让他去运行了,直接我们在这个位置有个build build这个呢,有一个re compile,那当前我们这样的一个文件是吧?诶直接我们点一下这个操作也行。那也可以,那点完以后的话呢,呃,实际上呢,我们针对整个这样一个程序呢,就做了个编译相应的代码就放到我们这个al里边了啊,这个我就不多去看了啊啊就在这里边了是吧?好然后呢,编译完以后啊,这个光标呢,你放在哪儿呢?比如我光标我放在这个类的下边,那此时呢,咱们看的其实就是这个类了。因为咱们知道什么呀,就是每一个类呢,是不是都对应着一个金码文件啊,你像这里边father,还有我们这个,这是三个金码文件,所以呢,我们这个工具呢,看的是资金码文件啊,所以你得告诉我是哪一个资金码文件啊,比如说光标呢,我们就停留在这个类里边了,那这时候呢,我们点这个。
15:06
这块你发现它有一个呃选项啊,叫show code lab啊点击一下。那么这时候呢,它就会在我们这个右边啊,呈现出来关于当前咱们这个plug ins test1这样的一个的一些信息。啊一些信息,呃,主版本号啊,61.0是吧,这个主版本加磁版号一起构成我们编译这个呃,Java源文件啊,使用的这个编译器的对应的这样一个版本啊60其实上就是对应我们JDK17嘛,是吧?呃,然后下边呢一些呃信息显示,然后下边有关于这个content常量池,关于这个方法的说明啊这呢有我们这个main方法,打开这个code呢,就是对应的咱们这几行代码相应的这个自解码指令了。啊,这样一个情况啊,那有些时候呢,我们在做这个代码的一个分析的时候呢,我们可以使用啊这样的一个工具呢,查看一些资己码指令,包括呢,现在的这个指令是什么意思呢?你也可以点击一下,显示一下G的一个啊常的方便啊直接呢,就链接到了咱们Oracle的这个官网当中,关于相应的这个指令的一个,呃,具体的介绍说明。
16:14
啊,非常的便捷啊行,那你比如说咱们在分析分析前面的这样一些代码的时候,比如说咱们讲到这个debug的时候啊。啊,相应的比如我们这个第八个零一,那相应的这个代码说为什么这块呢,我们就没有实现啊,两个变量的一个换序呢,啊,你针对这个代码的话呢,首先啊做一个编译是吧。啊,包括我们下边这个为,为什么他打的是地址值,这个打的就不是地址值呢?编译完以后,你可以查看一下我们这个磁解码文件啊,关于方法这块啊,是这个没方法啊没方法。在这儿呢是吧,来再点开这个code,然后呢,针对于我们下边这两个print方法。Line一个方法往下走。嗯,往下走啊,然后这时候你发现呢,我们调的是方法啊,你看这个呢,调的是一个差型的一个数组是吧,而我们上面这个调的就不是了,是一个object类型的一个数组,你就能看到它调用的这个方法呢,是不一样的。
17:07
OK,行,这呢就是码指令的一个情况啊,详细的这个细节呢,咱们就不多讲了,当然呢,有兴趣呢学习,你可以参照一下咱们上发布的这个GM当中的这个中篇关于G码指令的一个讲解。呃,那这里边呢,稍微多说一句啊呃,它显示的你看这都是中文,其实呢,呃,像我呢,已经习惯了用这个英文了,突然看到这个中文呢,感觉还有点儿不太习惯啊,那怎么办呢?那这就提到了,刚才那会儿呢,我是不是把这样的一个参数给它删掉了啊,当然呢,你可以把这个参数呢给它再加回来。举个例子啊,回到这个help这,找到我们这custom vm options,然后在最后呢,把这个参数给加上。这个参数呢,我就写到了咱们第二个这个插件的这个位置了。我就放到这儿了,行,把它加上以后的话呢,这个时候呢,我们再把这个idea呢,是不是做一个重启就行了。那这个咱们收起来啊,好,回到我们这个file这块啊,点我们的这个操作,这有一个叫just restart。
18:06
诶重启一下啊,那重启完以后这时候呢,我们再看相应的一些这个信息呢,就都是这个英文版了。啊,包括呢,咱们刚才呢,查看的是不是右键它的这个Java的这个阿里巴巴的这样一个规范哈,它其实也对应的是这个英文版了。你看也是英文版的啊。行,那哟,我把刚才那个还给关掉了,那随便呢,我们再打开这样一个代码,然后呢,我们这块view。啊,这块点击一下,你看这时候就都是这个英文版了。其实这个呢,我觉得反正从我的角度来讲啊,我看的会更加的习惯一些,诶大家呢,你也可以针对自己的情况,你想看英文版的还是中文版的,诶主要呢这块呢,就是来配置这样一个参数,默认呢是没有的,显示的是中文啊OK。啊,这是我们说的前两个插件。
我来说两句