00:00
那下边呢,我们来看一下我们的第二个章节,第二个章节先把这个保存一下,第二个章节打开我们的课件变量。好,我们来看看这个变量这个章节,那首先我们看一下变量在我们的SC里面,变量大概是什么定义的呢?同学们可以看到。在SC里面,它的变量的定义的基本的语法是这样子的。同学们看这里它呢,用va或者是va来进行修饰,它后面会说前面是变量的名称,后面是类型,中间用。冒号间隔,注意冒号不能少,然后这边给它附一个值,比如说这样一句话,就代表我定义了一个整形变量为B,初始化的值为三,很简单,OK,那么给变量这句话就是给变量B负一个89。这个呢,就是输出啊,非常简单哈,这个我相信同学们一看就看懂了,所以说我这不啰嗦了,直接写到这一栏,这个我们讲的第二个章节就是变量插入一个空白页。
01:11
哦,找的变量。变量好,我给它来一个标题一对吧,变量好,首先呢,我们刚才说了一下,变量是它是我们的一个基本组成单位啊,比如看一个案例。看一个看个简单的案例,对吧,这个案例呢,我就给它放到这就可以了,大家一看就OK,非常简单。所以这个语言呢,其实其实这个语言我我感觉还是语言本身其实都不难,可以这么讲啊,就是你们以后再去学一门语言都不会特别难,我们编程最难的地方是什么地方呢?同学们。其实最难的地方有两点,第一点就是业务逻辑很难。就业务逻辑,你你去了过后,首先你要知道你写什么,说老师我写什么,我难道还不知道吗?
02:05
你真的不知道,我告诉你啊,有句老师说我技术很牛逼啊,你技术牛你都不知道怎么写,他说真的吗?你去给我写一个。财务软件儿你会写吗?报表还有那个付那个,呃,这个报表是什么资资产那个报告表是什么,你都连这个基本概念没有,你写不了。这是第一点难,第二点呢,就是对这个性能的优化比较难,其实你要实现这个功能,同学们后面都不会太有太有难度,包括对语言的学习也不会特别难。因为语法这些东西说白了告诉你就知道了,不需要动太多脑筋,而最难的就是优化,比如说数据量很大的情况下,你怎么能够让它跑得更快?更稳定,第二个安全性,怎么保证稳定性的保保证,还有就是业务逻辑,怎么样的业务逻辑才能满足客户的需求啊,以后你们就会有种感受,好,所以说我们学这个SC呢,你放心,都比较简单啊,不会特别难,不会特别难好第二个呢,我们再来看变量的概念,我简单说一下啊,同学们,这块同学们都很清晰,我念一遍就行了,变量相当于内存中有一个数据存储空间,把变量看作是一个房间门牌号,通过门牌号可以找到房间,里面就有我们的变量,很简单,这个呢我就不多说了,呃,开的变量使用跟Java几乎一样,就是先声明。
03:28
我们叫声明变量,有些地方叫定义变量,这个这两个概念我说一下啊。在我们那个时候呢,这个声明变量和定义变量呢。在编程语言里面,它有时候是放在一起的,比如你看这儿。声明就说我声明一个变量叫A,是个int类型的,那么这个就叫声明。那有些时候这个定义叫什么呢?就说我在声明的时候,同时初始化这个才叫定义,那有些时候这两个呢就混在一起了,比如说开发中有人说声明一个变量。
04:05
和定义变量可以等同。可以等同,所以说有时候我在讲课的时候,我说诶声明一个变量,或者叫定义个变量,几乎就没区别了,第二个声明和定定义或者声明过后呢,我们就使用基本步骤就这样子的,那么我们来看一个案例。好,这是变量的一个基本介绍,对变量的基本介绍我看一下。给他来一个标题二,诶标题二,那么我刚才讲了这么两点对吧,一个是概念,一个是变量的基本使用来走一下。第一个变量的基本使用,呃,使用呢,就是先声明再使用。啊,这是同学们注意的,好,接着我们看开了的这个一个案例,我们看一个小小案例呢,开了变量使用的入门。好,我们来打开它。
05:00
我们来写一个案例,在写的时候呢,同学们看到啊,我每一个章节下面可能都会有一个再建一个,再建一个纸包来区分讲的是什么内容,比如现在讲的是变量呢,我就写一个这样的东西,Values。好,然后呢,我在这里面写我的案例,这样大家以后呢,看代码也比较简单啊,VRDEMO01。好的,写到这里来,那么我们举几个案例。走。好,第一个好,比如说我现在要定义一个整形的,一般来讲我们是这样定义的。好,我要定义一个,呃,这个double类型的,我们这样去写。对吧,然后呢,我们要定义一个人的名字,对吧,是最类型的,可以这样写,比如叫做汤姆,我们要给他一个布尔值,也可以说,比如说e pass有没有通过呀,布尔值是玻璃类型。
06:01
啊,给他一个出啊,你看整形还有呢,就是浮点型,我们也可以定一个,比如说它的一个分数score,那么我给他一个float float呢我给他,比如说它的分数是70.8,要70.9,看这个地方同学们看到这个时候。因为是float,你后面就不能不写东西,因为它默认是double类型,我写到这里来啊,说明在SC中开中小数,注意听小数默认为double。类型整数默认为。整数默认为。OK,好,这是这么几个,那么我给他输出来一下,输出的时候我简单一点啊,我就直接这么输出了。Age。A age,然后呢,我就再再找一个就行啊,Is pass is pass就可以啊,给大家运行一下。
07:06
这个呢,就是我们一个案例的入门啊,我们跑起来运行一个A呢,等于11PASS等于处。好,我们运行结果呢,跟我们想的是一样的,好,这是它的一个案例,放过来。啊,我们这写的是什么呢?就是变量的基本使用。死开了,死开了。哎,看了。变量的基本使用,对好,我们接着往下走啊同学们,嗯,基本知识点听起来都比较枯燥,大家知道啊,快速入门就是说呃,我们学一个知识点呢,学一个学一门技术,本身它这个语法都比较枯燥,这点没有办法啊,就可能前面大家学这个项目呢,感觉每天都学到很多新东西是吧?诶这个功能又实现了,诶那个功能我们又会了,但学语法呢。
08:07
就感觉好像没学到什么东西。啊,而且还很枯燥,但是这个呢,往往是基本功,所以大家也不能觉得这个很无聊,其实他很有用,好就看到那么我给他画一个内存图,就是我简单再给证明一下,这个在内存里面怎么是存在的啊,我就画一次。那么比如说我在这个地方,我在这地方有这么两个变量,它的内存里面是怎么存在的呢?好,我给大家画一个内存图。好,这是我们的一块内存,这是我们的一块内存。对内存,那这块内存呢,呃,我们。他会给我们每一个程序分配一个地址空间,比如这是我们的这个程序的地址空间。啊,这是我们程序的程序的这个地址空间。地址空间OK,好,然后呢,比如说我这里有个变量。
09:04
大家看到我这里有个,哎,我这里有个变量是这个类型的,什么类型的呢?就这个类型啊age,我就找一个为例啊age,那么这个时候。在内存里面它会怎么存在呢?比如我的代码是这样子的。诶,我画一个小图过来啊,比如说我这里有个这么东西,他在内存里面会这样分布,首先呢,给你一个age。注意这个A在内存里是不存在的,它是用一个地址来表示的,然后这边呢,会有个空间,然后把这个十放进去。啊,把这个屎放进去,然后这个变量这个名字呢,就跟我们这个空间发生了一个关系啊。引用到它。啊,大体呢,就这么一个逻辑啊,大体就说这个名字在内存里面一个空间,这个名字对应一个空间里面放了一个十,那当然既然它放的是十,当然它一个值也就可以改变,它是可以改变的,比如说我给他一个十,后面呢,我也可以给他12把它改变过来,大体就是这样子一个逻辑啊,大体就是一个逻辑,当然有同学可能会问说,老师,那你给我说一下,既然你你这个age是这个大写的,是大写的int不是小写的,那你告诉我它是在这个站还是堆里面呢?
10:25
这个我们后面再去讨论啊,其实同学们要去理解这个站和堆呢。在学Java的时候,老师一定会讲对象,一般来说我们是放在这个堆里边的是吧,基本数据类型呢,一般是放在这个站里面的,是这意思吧,啊是这意思,但是实际上呢,现在现代的一些编译器都会做一个分析,叫逃逸分器,现在很多编译器。他就会他是动态的,它是动态的,他是干什么,他会做这个逃逸分析。
11:00
逃逸分析就他很灵活,他不一定就是不一定,现在所有的都遵循这个规则。那么他会遵循什么规则呢?就是理论上说应该这么讲才是最标准的一个说法,就是说当一个数据它的生命周期很长,而且需要别的变量来引用的时候,就是它有多个变量同时去引用同一个数据空间,往往把这个数据呢?放在堆,注意啊,是第一点生命周期比较长,第二点这个数据空间可能被多个变量引用,一般来讲这时我们会把它放在堆里边,这是它编译器的一个规则。第二个如果一个数据空间它只是临时用一下。我们往往会把它放在站里面,有可能他是个对象,都有可能放在站。OK,你看现在现在的这个编译器,它是做的比较灵活,你想你放在堆的根本目的是为什么,就是为了做到这个跨站。
12:01
因为我们学这个同学们有有有机会去看一下这个编译原理就知道了,其实我们这个站呢,它是它是调一个函数会产生一个新站,那么你每一个函数的变量其实是可以引用到一个空间的,这个时候。你把这个数据放在站里面,你很难引用到,他就把那个数据放在堆,那么我不同的站就可以用同一个空间。对,它是也是堆,它是解决这个问题的,但如果说你这个数据量其实很大,但是他就用一次就没有了,你放在堆里面就浪费空间了,所以说刚才我说这个原则就是要逃逸分析,现在有很多编译器加入了逃逸分析,就很难说一就不一定说对象一定放在战里堆里面,这个不一定是正确的啊,不一定。但是就还是看这个编译器是怎么做的,好,这是我们说的一个案例,这是画的一个小图,画了一个小图,大家呢有一个基本认识,好,我把这个呢给同学们放在咱们的笔记中去。
13:04
好,这个是它的一个示意图。代码的一个示意图,我也给大家罗列,道理很简单。好,这是我们讲的变量基本使用,我们再来看变量使用的说明,来看一下,这里我们截取。刚才的一段。
我来说两句