Java基礎之數組隊列及Java堆外內存學習筆記[圖]
1.數組
1.1 數組基本概念:
數組是一個容器,可以存儲同一數據類型的N個數據;數組是一個數據結構,是數據結構中訪問速度最快的;
數組是直接通過下標進行定位;
數組是屬於引用數據類型(數組名中存儲的是內存首地址);數組本身只有有length屬性(獲取數組能存儲的數據個數),但是有從Objuect父類繼承的屬性和方法。
1.2數組在內存中的存儲:
數組在內存中是一個連續的存儲空間;一維數組、二維數組....
1.3數組排序:堆排序
2.數組隊列
利用數組這個數據結構,來實現多個數據的類。數組在定義的時候要定義類型和大小,定義完後不能修改(不能動態改變大小和數據類型)。
存儲數據的個數是會根據實際情況進行變化,但是數組大小無法改變。
不確定要存儲的個數:
數組定義大了,數據小了,浪費空間;數組定義小了,數據多了,越界、存儲不下。要滿足上述兩種要求,利用數組名中存儲的是數組對象在堆內存中的首地址。存儲數據類型,在單獨某一個程序使用中是不會存在太大問題。
數組隊列是否能夠通用,數據類型。Object是所有類的父類:Java中所有基本數據類型都由對應一個類,其父類爲Object。
如果要求數組中只能存儲某一種數據類型;如果要求數組中可以存儲任何數據類型。要滿足上述兩種要求,只能使用Java泛型。
泛型不是數據類型,是一種特殊的符號,用於泛指Java中任意一種引用類型。在編寫數組隊列(提供的插件類),不確定之後要存儲的數據類型,則只能使用泛型的表示。泛型在此處只是一個佔位符,之後在使用中。
Java堆外內存:
1. 首先了解堆內內存on-heap memory
這裏寫圖片描述
2. 定義:off-heap memory
堆外內存就是把內存對象分配在Java虛擬機的堆以外的內存。這些內存直接受操作系統管理(而不是虛擬機),我們仨讀後感(http://www.simayi.net/duhougan/2472.html)心得體會及感悟,這樣做的結果就是能夠在一定程度上減少垃圾回收對應用程序造成的影響。
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下的堆外內存分配等;
Java基礎之數組隊列及Java堆外內存學習筆記[圖]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Filter
矮油不錯哦_ab60
2019-02-24 14:12:49
Spring中你可能不知道的事(二)
CoderBear
2019-02-24 14:10:43
Spring中你可能不知道的事(一)
CoderBear
2019-02-24 14:10:42
三種方式實現觀察者模式 及 Spring中的事件編程模型
CoderBear
2019-02-24 14:10:42
C#中爲什麼會出現空靜態構造方法的寫法
CoderBear
2019-02-24 14:10:42
劍指Spring源碼(一)
CoderBear
2019-02-24 14:10:42
劍指Spring源碼(二)
CoderBear
2019-02-24 14:10:42
有點深度的聊聊JDK動態代理
CoderBear
2019-02-24 14:10:42
簡單的單例模式其實也不簡單
CoderBear
2019-02-24 14:10:42
Volatile的那些事
CoderBear
2019-02-24 14:10:42
【蛻變之路】第6天 面向對象 (2019年2月24號)
仵寧飛
2019-02-24 13:54:39
最新阿里Java技術面試題,看這一文就夠了!
_年少無爲
2019-02-24 13:27:21
Java面試學問多,看看高級程序員面試題是什麼樣的
_年少無爲
2019-02-24 13:27:21
最新Java高級開發工程師面試考綱
_年少無爲
2019-02-24 13:27:20
24小時熱門文章
-
再談23種設計模式(3):行爲型模式(學習筆記)
-
Power Automate Desktop 安裝完,登錄後老是提示one driver 錯誤
-
微前端學習筆記(4):從微前端到微模塊之EMP與hel-micro方案探索
-
微前端學習筆記(1):微前端總體架構概述,從微服務發微
-
985 碩士程序員,空窗 4 個月沒有 Offer!
-
一文搞懂 Spring 循環依賴
-
賽博鬥地主——使用大語言模型扮演Agent智能體玩牌類遊戲。
-
VScode右鍵打開(添加到右鍵)
-
記一次 .NET某工控視覺自動化系統 卡死分析
-
WindowsServer--SQL Server搭建主從同步實現讀寫分離 - 事務性分發