赤脚论坛[原临沮论坛]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10277|回复: 3

Java基础之数组队列及Java堆外内存学习笔记[图]

[复制链接]
     
鲜花(1) 鸡蛋(0)
荆楚不肖生 发表于 2018-8-25 16:36 | 显示全部楼层 |阅读模式 来自 湖北省宜昌市 电信

赶紧注册,享受更多功能!查看帖内大图!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Java基础之数组队列及Java堆外内存学习笔记[图]
1.数组
1.1 数组基本概念:
数组是一个容器,可以存储同一数据类型的N个数据;数组是一个数据结构,是数据结构中访问速度最快的;
数组是直接通过下标进行定位;
数组是属于引用数据类型(数组名中存储的是内存首地址);数组本身只有有length属性(获取数组能存储的数据个数),但是有从Objuect父类继承的属性和方法。
1.2数组在内存中的存储:
数组在内存中是一个连续的存储空间;一维数组、二维数组....
1.3数组排序:堆排序
2.数组队列
利用数组这个数据结构,来实现多个数据的类。数组在定义的时候要定义类型和大小,定义完后不能修改(不能动态改变大小和数据类型)。
存储数据的个数是会根据实际情况进行变化,但是数组大小无法改变。

Java基础之数组队列及Java堆外内存学习笔记[图]

Java基础之数组队列及Java堆外内存学习笔记[图]
不确定要存储的个数:
数组定义大了,数据小了,浪费空间;数组定义小了,数据多了,越界、存储不下。要满足上述两种要求,利用数组名中存储的是数组对象在堆内存中的首地址。存储数据类型,在单独某一个程序使用中是不会存在太大问题。
数组队列是否能够通用,数据类型。Object是所有类的父类:Java中所有基本数据类型都由对应一个类,其父类为Object。
如果要求数组中只能存储某一种数据类型;如果要求数组中可以存储任何数据类型。要满足上述两种要求,只能使用Java泛型。
泛型不是数据类型,是一种特殊的符号,用于泛指Java中任意一种引用类型。在编写数组队列(提供的插件类),不确定之后要存储的数据类型,则只能使用泛型的表示。泛型在此处只是一个占位符,之后在使用中。
Java堆外内存:
1. 首先了解堆内内存on-heap memory
这里写图片描述
2. 定义:off-heap memory
堆外内存就是把内存对象分配在Java虚拟机的堆以外的内存。这些内存直接受操作系统管理(而不是虚拟机),我们仨读后感心得体会及感悟,这样做的结果就是能够在一定程度上减少垃圾回收对应用程序造成的影响。
3. 特点
1、减少了垃圾回收
因为垃圾回收会暂停其他的工作。
2、加快了复制的速度
堆内在flush到远程时,会先复制到直接内存(非堆内存),然后在发送;而堆外内存相当于省略掉了这个工作。
4. 堆外内存的管理:DirectByteBuffer
DirectByteBuffer类是在Java Heap外分配内存,对堆外内存的申请主要是通过成员变量unsafe来操作;
ByteBuffer bb = ByteBuffer.allocateDirect(1024*1024*128);
5. 其他
System.gc使用-XX:+DisableExplicitGC可以禁掉;
通过-XX:+ExplicitGCInvokesConcurrent也可以做并行gc;
最常见的场景是RMI/NIO下的堆外内存分配等;

百姓地盘、草根平台!手机访问论坛,更方便更快捷!
点击修改为自己的签名)本站客服QQ:
     
鲜花(4) 鸡蛋(0)
年轻就是资本 发表于 2018-8-26 13:42 | 显示全部楼层 来自 湖北省宜昌市 电信
小手一抖,金币拿走。
百姓地盘、草根平台!手机访问论坛,更方便更快捷!
点击修改为自己的签名)本站客服QQ:
     
鲜花(19) 鸡蛋(0)
荆山野女 发表于 2018-8-27 16:18 | 显示全部楼层 来自 湖北省宜昌市 移动
姐顶的不是寂寞,是楼主的帖!
百姓地盘、草根平台!手机访问论坛,更方便更快捷!
点击修改为自己的签名)本站客服QQ:
     
鲜花(7) 鸡蛋(0)
冰凌儿 发表于 2018-8-27 16:18 | 显示全部楼层 来自 湖北省宜昌市 移动
友情顶帖,非诚勿扰!
百姓地盘、草根平台!手机访问论坛,更方便更快捷!
点击修改为自己的签名)本站客服QQ:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|认证|简介|联系我们|赤脚网 ( 鄂ICP备18015422号 )

GMT+8, 2024-11-24 12:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

网站内容仅代表网友个人观点,非本站认同之观点!删帖请用删帖卡,或联系【 bbs@yalj.net 】我们会尽快处理。
声明:严禁任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!
技术管理:远安坤哥    主办单位:远安县临沮网信息管理中心
                   
快速回复 返回顶部 返回列表