00:00
各位上硅谷的朋友们大家好,欢迎继续收看上硅谷Java n IO课程,刚才呢我们完成了八份的介绍,包括buff份的基本使用,那下面呢,我们来介绍一下buff份里边有三个重要的属性,为了咱们更好理解八伏的工作原理,这三个属性各位必须要熟悉,那我们来看一下哪三个属性,首先第一个属性叫这个cap。第二个叫position。第三个角利米特,那三个属性到底什么含义?下面咱们来具体看一下,我这里边这张图就画出了三个属性的特点,这三个属性在咱们的读模式和写模式中,它们是有区别的,那我们来看一下啊,首先第一个属性,这个属性capacity。我这里强调啊,Cap CT呢,其实这个属性在读和写模式中,它们的含义是一样的,它都表示呢,八块里面这个固定的大小值,比如是咱们创建B的时候,可以设置一个固定值或者一个大小值,那这个值就叫cap,不管你是读模式和写模式,这个值都是固定的,而这里边咱们只能往里边放,我们这里边比如你是BY了或者差等等类型内容,一旦你的B块满之后,咱们需要把它清空,然后才能继续往里边放数据,所以这是第一个属性叫看C,就是表示八块那个固定的大小值,这各位给他知道。
01:35
然后咱看第二个属性和第三个,一个叫position,一个叫limit,这两个属性大家看到啊,在right写模式还有read读模式中,它们是不一样的,那我们先看这个position在读写模式中它们有什么特点,我们来看一下啊,首先呢,大家注意我们在写数据到buffer过程中,Position代表什么?就是你当前写入那个数据的一个当前位置,你说我们在这里边,你看啊right model是position,就代表当前写那位,也如果像这个位置中要写入我们的数据,这个叫position,而position的初值值是什么?就是零,所以说position最大值是不是开C减一啊,因为它是从零开始,所以最大值就是它减一,而这个时候大家注意啊。
02:26
当咱们的一个了等类型的数据写到buff之后,那这时候position是不是移到下一个可插入数据的B单元,比如现在我在当前位置已经写出数据,然后移到下一个可写的位置,是不是继续往里边再写数据,所以这是第一个写模式中position特点代表当前写入数据的这个位置。然后咱们看第二个啊,在读模式下,Po是什么意思呢?是跟它类似,它就表示什么读入数据的当定位置,比如现在我这里边这个位置我要往里边,我就进行这个读操作,那我们从这位置开始往下来读这数据,但是它具体什么含义呢?我这里边举了一个例子,咱看一下啊,比如说我现在。
03:13
Position值等于二,那这时候就表示呢,我已经开始读入了三个字节的数据,或者说咱们现在要从第三个这个BA开始进行读取,这个叫position在读模式特点,而这个时候呢,当你调用八块里面那个Fla方法之后,切换你的读模式时候,那po值会怎么样重置成零,所以这里边你看啊,这值就变成零,当你掉发之后,它就会重置成这个零,然后咱们从position位置读数据之后,Position会移到下一个可读注的数据的八个单元,比如这个位置读完之后,一要下一个有数据单元继续进行读的操作,所以这就是position这个特点,我再重复一遍啊,里边到底什么特点?
04:04
第一个,在写模式这个状态下,Position代表当前写入数据的位置,而这里边当我写完之后,后移到下一个,可继续插入那个八分单元。而在你在读模式中,我们掉了负的方法之后,它会把这个position初入成零,而这里边比如说我的position等于二,那就表示从第三个字节开始读取数据,这是position这么一个特点。咱们再看一下这个limit,也是读和写不一样,首先咱说写,写什么意思呢?Limit表示我可以对B中最多可以写入多少个数据,所以大家看啊,在模式中limit米就是谁,就是我的capf,因为它可以写入这么多的数据,这是里边的第一个,但是读墨水中就不一样了,利米它表示什么呢?表示八分里边有多少个可读的数据,就是不为空的数据,因此呢,大家注意啊,我在读的时候你发现啊。
05:09
Limit变成什么?是不是就是写的这个position呀,注意啊,为什么是这么设计的,大家要想一下啊,为什么他要这么设计?他这么设计的目的就表示啊,我在读的时候能读到往里边写的是不是这个数据,比如现在你看limit,就是我写的position,因为position位置表示往里面写数据,然后我读的时候是不是正好能读到这个过程,所以这就是limit的特点,再说一遍啊,Limit。在写的时候,表示八块里边最多能写入多个数据。而他在读的时候呢,表示8BER里边有多少个可以读的数据,也就是not nu的数据,因此呢,咱们读到之前写入的所有数据,也就是说LIMIT10尔程之前写数据那个数量,这个值在写模式下就是position,也是现在你看啊利是不是之前这个写里边的position,为了读到往里边写这个数据。
06:10
所以这就是关于啊ber中的三个属性,第一个capacity,第二个position,第三个叫limit,各位把这个特点肯定要知道,也就这张图上画的这个过程。然后这个说完之后呢,在八份里边呢,有很多的类型,咱之前也提到了,比如说你看啊有这个。Fightwa,咱一直在用有叉、double float等等,而这些八分类型必列为代表了不同的数据类型,也就是说咱可以通过不同的类型来操作缓冲区中这个字节。所以这是关于我们提到的八块中的三个重要的属性,给各位做了一个说明。
我来说两句