而直接内存是:
本地IO-->直接内存-->本地IO
很明显,在做IO处理时,比如网络发送大量数据时,直接内存会具有更高的效率。直接内存使用allocateDirect创建,但是它比申请普通的堆内存需要耗费更高的性能。不过,这部分的数据是在JVM之外的,因此它不会占用应用的内存。所以呢,当你有很大的数据要缓存,并且它的生命周期又很长,那么就比较适合使用直接内存。只是一般来说,如果不是能带来很明显的性能提升,还是推荐直接使用堆内存。字节缓冲区是直接缓冲区还是非直接缓冲区可通过调用其 isDirect() 方法来确定。
使用场景
有很大的数据需要存储,它的生命周期又很长
适合频繁的IO操作,比如网络并发场景
动态数组:
动态数组在进行创建的时候直接指定数据的长度。
格式:数据类型[ ] 数组名称 = new 数据类型[数组长度];
解释含义:
左边的数据类型:数组当中保存的数据类型全都是统一的数据类型
左边的[ ]:代表的是一个数组
数组名称:我们定义的数组名称
new ;代表的是创建数组的动作。
右边的数据类型:必须和左边的数据类型是相统一的
右边的[ ] :也就是数组上可以保存多少个数据,为一个int数字。