13day
一、數組中指定元素的查找:搜索、檢索
1.線性查找
思路:通過遍歷的方式,一個一個的數據進行比較、查找。
適用性:具有普遍適用性。
?
2.二分法查找
思路:每次比較中間值、折半的方式檢索。
適用性:數組必須有序。
?
二、Java內存分配
Java的內存分為方法區、棧內存、堆內存、本地方法棧、寄存器。
1.方法區(Method Area)
方法區存儲類的代碼(裝載信息),常量池。字節碼文件(.class文件)加載時進入的內存
2.棧內存(Stacks)
存放參數和局部變量,存儲數據量小,訪問速度快。方法運行時,進入的內存,局部變量都存放于這塊內存當中。
3.堆內存(Heap)
存儲對象,存儲數據量大,訪問速度慢。new出來的內容都會進入堆內存,并且會存在地址值
4.本地方法棧內存(Native Method Stacks)
存儲與C語言交互的數據。調用操作系統相關資源
5.寄存器(Register)
所有進程都使用寄存器,Java虛擬機使用下列寄存器管理系統堆棧:
程序記數寄存器:跟蹤程序執行的準確位置
堆棧指針寄存器:指示操作棧項
框架寄存器:指向當前執行的環境
變量寄存器:指向當前執行環境中第一個本地變量
Java開發組決定Java只使用四個寄存器,這是因為如果使用的寄存器數多于處理器端口數,那么處理器的效率將嚴重地降低
Java虛擬機中的堆棧用于存放變量,Java程序向Java虛擬機傳遞字節碼,Java虛擬機為每個方法創建堆棧框架,每個框架維護三種信息:
局部變量:由變量寄存器指向的32位變量數組
執行環境:由框架寄存器指向和執行的方法
操作堆棧:執行先進先出規則(FIFO),它是32位寬度的,它為操作碼維護必要的參數,該堆棧的頂部是由堆棧指針寄存器索引的
這是速度最快的存儲場所,因為寄存器位于處理器內部,這一點和其他的存儲媒介都不一樣。不過寄存器個數是有限的。
在內存中的寄存器區域是由編譯器根據需要來分配的。我們程序開發人員不能夠通過代碼來控制這個寄存器的分配。
所以說,這第一個存儲區域寄存器,我們只能夠看看,而不能夠對其產生任何的影響。,也沒辦法在程序里頭感覺到寄存器的任何存在跡象
?
總結
- 上一篇: 卫健委:2018年全国儿童青少年总体近视
- 下一篇: 双11大战:为什么细分品类车载冰箱火了?