00:00
数组元素的默认初始化值呢,我们就说到这儿了,那么关于一维数组的使用呢,咱们还差最后一个点,就是关于数组的内存解析啊,CTRLC我们粘过来。呃,数组的内存解析,就是我们需要呢,看一下咱们创建的这个数组,他在内存当中是如何分配这个结构的,包括呢,咱们相应的一些数值啊等等一些操作,哎,内存中呢,是怎么变化的,哎,这个如果大家要清楚以后呢,对于我们在写这些代码呢,就会更有利一些啊。那这块呢,其实是稍微有点难度,因为呢,咱这是咱们首次呢,提到一个概念叫做内存解析。那更详细的关于内存的这个结构情况呢,咱放到面向对象,就是下一章的时候呢再讲。呃,但是这张呢,咱们因为讲到数组了,也需要说一下哈,便于大家呢,更好的去理解这个数组结构,所以呢,咱们需要给大家再谈一谈这个内存的一个情况啊。那实际上说啊,咱们讲数组开始呢,已经算是开始面向对象的内容了。啊,为什么这么讲呢,咱们呢,创建一个数组呢,也需要去new它这样的一个结构,那这个new呢,就相当于我们面向对象当中典型的一种创建对象的方式。
01:11
啊,典型的创建对象的方式。只不过呢,咱们现在没有像面向对象一样详细的来讲说,我们怎么去造一个类呀,怎么去造个对象呀,而现在呢,咱们是有现成的这个数组结构。直接呢,就给他去用了啊,相当于直接就开始用了。那反过来呢,我们先看用完以后呢,这个内存呢,是什么样子的啊,这就咱们要说的内存解析,那现在来讲这个问题呢,算是一个难点了啊,那到下一章的话呢,也算大家必须要掌握的一个知识点啊。那咱们来看一看。我在这个PPT当中呢,实际上已经画了几个图了啊,大家也可以下来呢,去看一看这里边儿的一些情况,首先的话,我们想说明一个就是内存的一个结构。啊,就是内存这个结构长什么样子。内存的这个结构的一个规范呢,实际上是在我们这个GVM当中体现的。
02:02
哎,大家呢,如果说去买一本书的话呢,叫GVM这个规范里边呢,就提到了这个内存的一个分配情况。呃,这个GVM的话呢,又由于随着咱们JDK的版本的提升,它这个规范呢,也有一些变化,所以呢,在不同的JDKJDK当中呢,这个内存的结构呢,也有所区别啊,那这呢,咱们给大家画一个比较稳定的一个版本。啊,比较稳定的一个版本。在这个内存当中呢,我们会有这样的几个主要的结构,注意我这提的是主要结构啊,详细的这个内存分成好多部分,这个有一些结构呢,我们现在还用不到啊,这呢我们主要提一下这样的几个结构,这呢比较瘦的一个结构呢,我们叫做站。比较胖的一个结构呢,我们把它叫做堆。先把这两个概念的明确出来。哎,这呢,我们叫做站啊,这个站的话呢,哟,出来一个小标小符号哈,站。这个站的话呢。
03:01
我们英文呢,叫做stack。那这样叫做站结构,那对应的我们对应的。堆是这个堆啊,这个堆呢,叫做hip。那这呢叫一个堆结构,那它呢比较瘦,它那比较胖啊,那为什么它比较瘦呢?就是站结构的话呢,其实这个大家如果学过数据结构的话呢,它是一个线性表啊,它是这样这样一个线性关系的,就像我们说的这个一维一啊,所以它相对来讲比较瘦一些,那堆里边呢,它放数据呢,没有说呃一个挨一个的是这种线性的了啊,它可能这个横纵啊都放,所以呢就显得就稍微胖一些啊。行站堆完了以后呢,还有两个。或者准确的说应该是一个结构哈,这一个结构的话呢,我们把它叫做方法区。哎,这个呢,咱们叫做方法区啊,这个方法区呢,你也可以称作叫method的area啊,这叫方法区,这个方法区里边我们又放什么信息呢?呃,其中一个后边咱们讲的时候呢,会常见到的一个啊,叫做常量池。
04:10
哎,这个呢,咱们叫做常量时啊,那另外一个呢,叫做静态域。啊,这个结构呢,叫做静态玉。哎,静态玉啊,这个颜色呢,稍微有点这个冲突了啊。呃,先把这个呢,我们给大家置顶,就是整个呢,这是一个方法区了啊。诶,然后这个常量池,这个我换一个颜色。这样就OK了,那这个方法区呢,其实除了这个常量池和静态域之外啊,这个静态域其实就静态的一些这个变量了啊之外呢,还有包括这个类加载的一些信息。啊,也是放在我们这个方法区里边的啊,这个咱们后边用到的时候呢,再详细的去说啊,那在咱们这个呃。
05:00
这个内存结构当中呢,栈和堆呢是用的最多的,那站里边主要存放什么呢?我们说主要存放的叫局部变量。啊,局部变量,这个局部变量的概念咱们还没有详细的展开来说啊,大家先知道这个事儿,实际上呢,我们在方法中定义的变量都叫做局部变量了,比如说main方法中。其实到目前为止,咱们写的这个变量都是在呃,Main方法中定义的,其实都是局部变量啊,那另外呢,这个堆当中。我们存放的这个数据呢,叫拗出来的结构。哎,拗出来结构,那典型拗出来的结构呢,呃,一个呢叫做对象啊,另外一个呢就叫做数组。哎,这是咱们典型的堆里边存放的这个结构啊,就是这样的两种。这呢,其实就是咱们关于这个呃,内存结构的一个简图啊,大家呢,这样大概有个印象就可以了啊后边呢,咱们讲到string的时候呢,它放在那叫字符串了。呃,放到那就是这个常量池了,然后讲到sta这的时候呢,哎,它存放的就是叫静泰玉。
06:05
啊,那咱们目前呢,现在创建一个数组,其实呢,我们能用到的就是只是一个站和一个堆啊,这是咱们关于内存的一个这个简化结构啊。先说到这儿。
我来说两句