00:00
啊,换一次打开我们的这一个,以及我们写一个scan的啊,不叫SC。讲解的一个示意图,好,我们打开这个图呢,老师给他画一画这个图,我们先由,呃,我们先写到这里,这里面写的是scanner,还有我们的Java和JVMJM的一个关系关系图,好把这个图呢,要给大家聊两聊两下啊好我把这个呢给同学们放大一点来画一个,首先由大家比较熟悉的这个地方入手,首先这是比如说我这写有一段Java代码,Java的源代码,Java的代码。好,嗯,那么Java代码对我来说还是比较熟悉的,比如说我写一个比较简单的啊,同学们,比如说我现在呢。写这么一个东西,他哈希map,我写一个哈希map,这个对于我们来说是比较easy的,哈希map,我这写上它的一个类型,等于六一个哈希map。
01:09
好,这就写完了,然后这个哈,Map写完过后呢,我就写到这啊,然后比如说我们还有int number等于十,好,这是我们Java代码,那么Java代码写完以后,你为什么可以运行呢?原因很简单,就是因为你在这做了过后呢,你会把这个东西。啊,通过我们的一个编译器,就是Java c进行编译啊编译器进行编译器这个编译,编译完了过后呢,我们会得到,对我们会得到什么东西呢?好,我们会得到我们的这个自解码文件,对吧?诶这是对到我们自解码文件,好,我就写到这儿啊得得到。通过编译过后就得到什么呢?得到了这个点,Class这个自解码文件没问题,因为你编译了,那当我们编译成自解码以后呢,我们就可以去运行到各个平台上,比如说这有很多的JBMG。
02:08
好,比如这里面有j vm j j vm for for Windows对吧,For Windows,就是Windows下面的JVMG,还有什么呢?比如说我们这儿还有像j vm for linuxx。这是我们的Linux的这个JVM,还有什么呢?比如像我们的unix对不对,好这些系统呢,我们都可以用,那这样子,当我们得到自己码以后,我们就可以将这些就是把我们这个这个东西呢,交给我们的一个这样的。呃,JVMG进行执行。好执行好,我这简单的画一下啊,这有个图,然后呢,这边的字解码呢,可以交给结尾Linux,好最后因为这个JVMG,它可以屏蔽我们这个硬件,对吧,比如说这是我们的一个什么呢?这是我们的一个硬件。
03:08
就是我们的,呃,机器了啊,真正的机器。啊,这就是我们的硬件机器。对好,这是我们的硬件啊,同学们,硬件我们把这个讲清楚后面就稍微快一点,那么这样子,因为你接完MB把这个不同的这个机器的硬件屏蔽了,所以说你在这呢,就可以去运行啊,就可以达到这个运行的效果了,那就没问题,这样子啊,好,我把它画到这儿来一个一根线。对吧,诶然后呢,这边呢,我们也来画一根线,好这样就可以了,这边同样的道理啊,也可以去运行。好,那么我把这个线呢,给它画粗一点,就这么一个逻辑,好,这个对我们来说非常的简单,同学们一看这个,这个逻辑很清晰,那这解码同学们再问大家一个问题啊,同学们,我们自解码文件能够在结尾MG上进行运行,实际上我们还要用到一个东西,是不是叫Java,是不是这个东西啊,这个会运行起来,它会帮我们运行,这点相信同学们都很清晰的,这是我们的一个运行,那么它会把我们的自解码加载到对应的JVMT上进行运行,好Java这条线我就讲完了。
04:24
这个也非常熟悉大家,那么我现在问大家,大家的一个问题是什么呢?同学们,在这里我要多问大家一句话了,在这里。我要跟大家探讨的一个话题是,这里就是我们这个Java,我们这个Java它之所以之所以可以写这些代码。原因有两点,原因有两点,你为什么可以写哈希迈?为什么可以写哈欠脉搏?第一个是你的编译器。支支持第二个是我们的这个这个开发商,或者是我们的Java这个设计者呢,给我们提供了Java的阶梯K库,是这个意思吧,Java的一个JDK这个内库。
05:10
内库,呃,内库好,这个内库呢,我们也简称叫JDK,我就写到这里,那这个是干什么呢?就是就是Java的设计者,注意听啊,Java的设计者。给开发人员给什么,给程序员提供的,提供的这个呃内库。内裤。对,这就是我们要说就说他这个就叫JDK写完了,朱老师你讲这个有什么用呢?非常有用,如果我这儿不讲清楚,后面学SC,其实你一直是模糊的。确实是这样子啊,我们接触一门新的语言,其实我我个人感觉不是说马上就给他讲语法,那个很low,讲完语法过后,你感觉哦,我的语法好像其实你根本没搞清楚,你没没有知道它是真正的原因,所以你老觉得这个东西没有驾驭住,那么我们这个地方,同学们可以看到我们这个Java去写的时候,其实你之所以可以去写这些东西的根本原因就是两点,第一点就是我们的开发者,比方高斯林。
06:20
或者是相关的这个公司,他给我们提供JDK库,这是第一点,第二点我们的编译器和我们的运行器能够支持你的语法两点决定的,好,现在我们把这个语言就说完,我们现在看SC怎么插进来的呢?刚才老师讲到一个道理,说这个人。他把函数式编程融入到Java中,而且编译器他是有,他是怎么干的呢?他他研究了一下,他特别喜欢什么呢?就是马丁这个人,他对JVM机这种机制。特别的欣赏,他说这个东西太好了,对高士龄崇拜的五体投地啊,这个小高很厉害啊,他觉得,诶,但是呢,他觉得个语法不舒服,但是他又觉得语法有些还可以用,这就是最恐怖的事情,他觉得里面有些东西好,有些东西不好,他又觉得他有些功能还不够强,但是他同时还想保留他这种机制,哪个机制呢?就是这种跨平台的机制,他想保留。
07:20
你看这个哥们,他是一个很很完美的人,他觉得好的东西我要用,不好的东西我要给你拿掉,还要增强,他怎么干的呢?同学们请看,现在我就要说JA娃这个斯SCO怎么跟他融进去的啊,来,同学们老规矩,那么这个我们的这个马丁这个哥们呢,他决定。Java的东西我要进行改进,怎么改进呢?好,这里是他写的SC。它的源码,这是开的代源代码。源码。同学们,大家看到当我喜欢点后点后缀是点SC的时候,大家都知道我们后面的SC的这个源代码的后缀呢,通通都是点是看到结尾的,对,那么Java式点Java结尾的他干什么呢?他决定做这么第一件事情,注意听第一件,首先他觉得我要去保留甲娃的一些东西,就说我我要去用。
08:20
我要去用Java的一些东西,但是有选择,所以他第一点是能使用能够。能够继续使用Java的部分语法。语法。那么我这里要写上一个东西,叫部分语法。就是说你Java里面的代码,我甚至拿过来可以用,比如我举个例子啊,比如我们在这写这样一句话,System。点system。点out print a,好,各位同学,当你在你的原蛋白形成这个东西的时候,没有任何问题,可以跑起来,它是支持的,但是有些东西他就不能用了,比如说比如这个是OK的,这样可以用。
09:06
就这个是支持,我就打个比方啊,再比如说苏老师,如果我把这个代码也拿过来呢,对不起,如果你把这个代码放在这,他就不支持了,他就改进了,这个他就不OK了。难受吧,就说有一些语法可以用,有些语法不能用了。所以这是第一点,我说的是能够使用Java的部分语法,注意听讲啊,是部分语法,不是全部。说老师那是,那我怎么知道哪些能用哪些不能用吗?你写吗,他支持他就用,他就不给你报错吗?对吧,这是第一点,第二点呢,这个哥们又做了件事情,干什么呢?他干什么呢?他有自己独特的语法,他写入独特的语法,自己特有的语法就是开特有的语法也来了。他说诶,我我干什么呢,我语法啊语法,他说我自己要写东西,比如我也举个例子啊,同学们请看,比如说在他这里面写,他写什么呢?他写一个这样的东西,VR pump。
10:11
Temp等于他直接可以写这样的东西,一二十。哈,对,然后呢,20.5这个呢是叫圆组。原组这有他的东西,你在Java里面是没有的,就是我自己有自己的东西,比如说我给同学们看一下它的源代码啊,我给他看一下它的源代码,打开DD盘,我这已经装了一个SC,我们先看看它的源码啊,在哪里呢?在这个lib里面有个SS往下面追里面有一个。Lib。哎,写错了,到这SRCSRC里面有哪里呢?有个library,有个library有个scanner,诶,写到这里面啊。
11:01
好,同学们可以看到,你看这里,这里面就是它的源码,我随便给你找一个to找一个。诶。搜一下。题,你看刚才老师写的,刚才老师写的这个东西一共有几个数据呢?12344个,那么它对应的这个类型就是TOM4。打开它,你看这个就是它定义的一个类叫top,叫元组,这个在我们Java里面是没有的,但这个例子还有很多,比如说我再给他举一个例子,比如它的这个map,它会怎么写呢?比说我这有个map VP等于map,它就这样写的了。啊,这个在我们,呃,这个很多语言里面是啊,他写的不一样,比如说我这写一个NUMBER1,一个逗号对吧,十再来。这个走number number2number再来一个,给他一个值,比如说是是是,你看这个就是它的map。
12:05
他的map就变成这个德行了,你原先是这样写的,他不支持,他要改成自己的这种map。啊,这是它特有的语法比,这是举个例子啊,举例。决定。好,那么还有一个什么东西呢?问题来了,还有第三点厉害的问题在这第三点,他还有对做了一些增强部分,就说它有些是特有法,还对他做了一些增强,增强主要体现在哪里呢?各位朋友请注意,它主要增强在这函数式编程。诶,同学们函数式编程,比如最经典的呢,有这么几点,第一点它支持了一个叫偏函数的玩意儿啊,叫偏函数啊偏。偏函数,再比如说它支持了什么呢?支持了函数的颗粒化,颗粒化问题,再比如说它支持什么呢?它支持了我们这个叫做高阶函数等等。
13:07
当然还有很多其他,比如纯函数。还有把一个函数,甚至呢,他把一个函数作为参数直接传递啊,比如说将函数。将函数干什么呢?作为参数,作为参数传递,作为参数传递。好的传递啊传递,因此在这里呢,我们就发现他拥有了三种特点,第一种能够使用Java的部分语法,第二种自己特有语法,这个语法在Java里面没有,第三点它增加了一些新的内容,当然这我只写了一一部分啊,比如就做比如。增加功能,对增加功能,比如这个,那问题来了,说老师那你说这个东西有什么用呢?我要告诉大家,是这地方有些问题,同学们看到啊。我给大家说一下这个东西,它还有一个地方很恐怖,就是如果要说的话,还有一部分也很麻烦,还有一部分是什么呢?还有一部分是他。
14:09
对这个原先Java的一部分代码做了包装。什么意思呢?就是说它看起来好像是自己特有的东西,但是它在底层呢,仍然用的是Java的JDK做了一个包装,那么我给大家举个例子,你比如说对什么呢?从就是说还有一部分语法是从形式上,形式上看看是什么呢?是我们这个斯SC的SC的语法。的这个类,但是这个类这个类或者是对象是对什么呢?是对Java的这个类进行了或者是接口。当上进内或者是接口。或者是接口进行了一个包装而已。包装而已。包装。
15:01
哎,那就是有这么四个特点,那这样就来了,那说明什么呢?我们这个地方大家看清楚了啊,同学们看到啊,注意听。现在。斯堪纳他在用的时候呢,他用的是斯堪纳的内裤。的内裤。呃,类内库,当然这个就呢,就是我们的SDK吗?SDK就是开发库,那么这里面呢,有两个部分,一个部分就是自己是看了特有的内库。是开了特有的,比如说刚才我们说汤这些对吧,是开了自己特有的。特有的这个内内裤还有一部分注意同学们注意听讲,第二部分是对什么呢?对Java。的那个JDK进行一个包装的,包装的JDK的类啊类进行了包装的类进行包装。包装的,那这样就意味着我们这个JDK的这个内裤,它会干什么呢?注意听内裤。
16:04
就为了我们sc Java内库,它会用到,大家看这里我画一个图,大家一下就知道了哦,它会用到这个JDK。那就意味着我们在去学,我们在学这个开的时候,你必须要装一个JDK。为什么?因为我要用到你。那么我举个例子说,老师你给我举个例子来说明这个情况呢?没问题,我给大家举个例子,比如说。一个数组,比如说比如。比如你看在它这个开里面这个数组呢,它就会变成这样写法,注意听它这样写的,比如说我这有个数组VR尔瑞等于六一个瑞,那么里面这个类型呢,要指定一下,比如说是个int写上,比如说是个十,那么这个就表示什么呢?表示A,表示我定义了,定义了或者声明的一个数组,该数组数组存放存放int类型,大家看这个int是这个这个小,这个大写的in,没有那个,没有那个int了,在SKY里面没有这个小写的L。
17:17
那么存放映的一共是空间是多大空间?空间是十。哦是十是十个十个元素,那么我给大家看一下源代码,来同学们我们走一个源码,大家看一下这个是怎么来的,打开它。还是到这儿来找,还到这儿来找。同学们看这这个二位打开它。你看这个我这搜一下啊,我这快速的给他搜一下class。Class瑞我找到它了,来看这里,你看这个瑞哦,看起来好像是S的,但是他继承了Java里面的S和这个AC,你看哦,原来是这样子的喽,它相当于说对有些东西还做了一个包装,在包装的时候呢,他又相当于对它进行一个扩展。
18:11
所以又增加了它的很多功能,所以说同学们看这样子呢,我们这个部分就出来了,那这样的关系就是这样子的,我在SC里面,我会用到我自个的一个SC内裤,但这个内裤呢,有两个部分组成,一个部分是我这特有的,就是自己真正的东西,还有一部分呢,我是对Java的内裤进行一个包装,我要用到家这个J地给那大家都知道了,惯性明确了,那同学们撕开了。这个用到了内裤这一部分,就这个图,那问题来了,说老师那开了要被运行起来怎么办呢?一样的道理,他仍然要被。编译成我们的字节码,这是没问题的,他仍要编译字节码,那也就是说这条线仍然是存在的。这条线仍然是,但是这个时候他用的编译器呢,就不是Java c了,而是用的scc。
19:08
各位同学啊,就用的是scan。看了这个C这个编译器怪啊啊C这个编译器。编译器,哦,明白了,那么这个编译器呢,大家想一想,这个编译器是谁写的,这个编译器是马丁奥德斯基写的,那这个编译器呢,也是这个哥们写的,他写完了过后呢,他把这个写到哪里去呢?OK,他也让他去跑到这边去执行,我画了一根线啊,画了一根线而已,那么它也到这去执行,它在执行的时候也会把这个SC的源代码的自检码加载到节面机,用的是什么工具呢?仍然是。这样一个它也叫scanner这个装载器啊,或者叫运行器都可以啊运行。啊,这样的关系就来了,看到没有,其实他们底层用的都是JVM,因此你在看任何一本书上呢,都会告诉你说SC是基于JVM的,这个关系就清楚了,那我问大家一个问题,我问大家一个问题,请问如果我这写了一段Java代码。
20:17
我得到自己码了。那我如果用开了这个,用开了这个去运行,大家觉得有有有没有一种可能性也运行起来啊。其实有可能的,因为我的范围比你大嘛,所以说你会发现你用Java写的,然后你用Java,甚至你用Java c编译得到自页码,我用这个去运行。有时候还是能运行起来,但是不是全部啊,不是全部就是也也是有可能运行起来的,但反过来不一定可以,因为我的这个要比你大,也就是说通过这个图呢,大家应该一下就看清楚了哦,斯开了肯定要比Java复杂。肯定要比Java复杂,这是跑不了的,因此很多很多学思刊的时候,为什么说,呃,为什么说学思刊的时候那个难度要大一点呢?因为。
21:06
他有点像混淆了,他把Java的东西取出来,加了新的东西,还包装了一部分,还进行扩展,最后呢,他有自己的编译器,而编译器之间又有相应的关系,好同学们,这个图后面呢,我们会经常用到啊,经常用到,那么原理讲清楚过后呢,老师在讲一些理论的东西,或者是在讲这个运行机制的时候,大家应该就感觉到很清晰了,很清晰,最后都到这来了,总的来说都到这一句,都到这一句来了。OK,好,我把这个给大家进行一个简单的板书啊,原理我就说清楚了,那么老师呢,把刚才讲的这一部分做一个简单的板书来吧。OK,好,这个是看了诞生的一个小故事,我给大家进行一个简单板书,这是我们的标题二。好,那么这个故事是什么故事呢?就是这个小伙子啊,他是怎么怎么设计出来的。
22:01
啊,设计设计出来的,就是那么一个小故事,分析到这,那么这个这个人呢,我们也给他放过来,就是大家看这个人长得呢,都是外国人,长得好像都很相相似,对不对,都都这样子的,高士音呢,长得比他胡子多一点。你看这个外国人胡子多的都比较厉害,这个人呢,比较异类,他胡子并不是很多,但是仍然很厉害啊,仍然很厉害,还有一点小故事大家分享啊,最后一点说一下斯开了怎么起来的呢?他其实这个故事很有意思,这个斯开纳是03年04年世纪出来过后,最早呢,他根本。没有没有去运用到一个位置,他是大学一个实验室。对,就那那帮哥们开始研究大数据了,那帮哥们大大数据,他们在想找一门什么语言呢。咱们什么运营呢?刚好那帮哥们呢,他们跟这个马丁奥的时基啊,都是相当于是好朋友经常进行一个交流是吧,说你这我这整的一个比较好的,比较牛逼的一个专门支持这个计算的,对计算,对一个数据的计算能力要求比较强的,因为他支持他的语法,直接就支持这个并行,他直接语法这个层面就直接支持这个并行计算,说是说那些哥们那就干脆怎么样呢,干脆咱们就用你这个语言吧,结果在他这个实验室出来这个东西过后呢,越用越强,后面就衍生出来我们这个大数据这块的核心就是Spark了。
23:22
包括你们学那个卡夫卡,卡夫卡你们是已经学过了,是不是卡夫卡,大家看那个源代码,你们看了没有。看了是不是那也是斯SC拉写的对吧,但是我要说一说清楚啊,同学们就是说像这个Spark呢,他其实不完全只是用这个斯SC写的,其实它有三种主流语言,一种呢就Java也可以写,还有一种Python也可以写,还有SSC,但是目前主流的像SSPA,因为s Spark也有很多版本,还有很多版本,那么主流的语言呢,还是SC,所以这就是我们学习SC的一个。原因之所在,我我们讲这个SC呢,就是韩老师给大家讲这个SC呢,我是希望同学们第一个学会SC语言,这个本身好了,我我可以保证就是大家学完了过后呢,能够把看的这个就是。
24:11
基本的一些核心的语法掌握,而且大家应该能看懂SC,我们我们这次给大家讲的这个SC在在原先技术上还扩展了很多内容,比如说像这个设计模式,目前还有国内没有讲卡设计模式,我会给你们讲,第二个呢,还会讲这个阿卡也会把它加进去,还有像这个泛型这个界定全部要讲,所以这一次内容应该更丰富一点,但是我们一个是学语法,第二个呢,要学习一种思想啊,就是编程的一种思想,同学们在这个学刊的时候,一定要去多体会他的一种设计理念,你的这个高度就会就会变得很高,说老师我还现在还没有那么高。呃,你先站的高一点啊,看得远,看的远,看的多远,那是你的事,你先站高一点,把这个位置先站住,只是你现在视力还不够强,对吧,先站一个位置,哎,然后以后再慢慢的这个加强以后你们你们都会成为很厉害的知道吗?但是你们要对自己从现在就感觉自己很,就是要要站在一个比较高的一个境界去看这个问题,因为你们将来要靠这个吃饭的。
25:18
你也不希望自己一个月挣个一万五一万六是吧,就上不去了,你将来肯定想,哎,我将来整个一个月挣个四五万对吧,比说老师我整四五万怎么办呢?你觉得高度要高一点,好了,同学们斯开这个诞生的小故事,我们就说到最后呢,我把刚才那个图给大家截过来就可以了啊,各位同学就S开拉它的一个分析图。这个图呢,老师呢,给它画清楚了。给大来一个小标题,这个图给它罗列到这里,好,我把这个呢给他拿过来啊。好的,所以你看我在这写了几句话,还是比较有用的。在这里就是。这个地方有一个地方是我说了,就这一般来讲呢,就是学SC的学习一般都会Java,所以说我在讲讲解这个过程中呢,就默认大家会Java了。
26:12
如果说如果说你Java有些没有过关的同学呢,可能偶尔你会稍微去看一看,以前老师讲这个Java哈,呃,这个呢,就说一下好,这个图呢,我给大家放到这里来,刚才老师画的这个图稍微缩小一点啊。这个图还是非常重要的一个图。好了,这个图呢,也是老师根据对这个语法的一个理解化的啊,就说呃,一般来讲书上呢很少去,就是一般书上呢,他就把这个东西跟你说一下,他很少去跟你分析一下,这个关系很少。好,我们截取一段视频。
我来说两句