學(xué)習(xí)啦>知識(shí)大全>知識(shí)百科>百科知識(shí)>

java什么是棧

時(shí)間: 歐東艷656 分享

  棧(stack)又名堆棧,它是一種運(yùn)算受限的線性表。其限制是僅允許在表的一端進(jìn)行插入和刪除運(yùn)算。這一端被稱為棧頂,相對(duì)地,把另一端稱為棧底。向一個(gè)棧插入新元素又稱作進(jìn)棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個(gè)棧刪除元素又稱作出?;蛲藯#前褩m斣貏h除掉,使其相鄰的元素成為新的棧頂元素。

  引用變量是普通變量,定義時(shí)所在棧中分配內(nèi)存,引用變量在程序運(yùn)行到作用域外釋放。而數(shù)組和對(duì)象本身在堆中分配,即使程序運(yùn)行到使用new產(chǎn)生數(shù)組和對(duì)象的語句所在地代碼塊之外,數(shù)組和對(duì)象本身占用的堆內(nèi)存也不會(huì)被釋放,數(shù)組和對(duì)象本身占用的堆內(nèi)存也不會(huì)被釋放。

  1.寄存器:最快的存儲(chǔ)區(qū), 由編譯器根據(jù)需求進(jìn)行分配,我們?cè)诔绦蛑袩o法控制.

  2. 棧:存放基本類型的變量數(shù)據(jù)和對(duì)象的引用,但對(duì)象本身不存放在棧中,而是存放在堆(new 出來的對(duì)象)或者常量池中(字符串常量對(duì)象存放在常量池中。)

  3. 堆:存放所有new出來的對(duì)象。

  4. 靜態(tài)域:存放靜態(tài)成員(static定義的)

  5. 常量池:存放字符串常量和基本類型常量(public static final)。

  6. 非RAM存儲(chǔ):硬盤等永久存儲(chǔ)空間

  引用變量是普通變量,定義時(shí)所在棧中分配內(nèi)存,引用變量在程序運(yùn)行到作用域外釋放。而數(shù)組和對(duì)象本身在堆中分配,即使程序運(yùn)行到使用new產(chǎn)生數(shù)組和對(duì)象的語句所在地代碼塊之外,數(shù)組和對(duì)象本身占用的堆內(nèi)存也不會(huì)被釋放,數(shù)組和對(duì)象本身占用的堆內(nèi)存也不會(huì)被釋放。數(shù)組和對(duì)象在沒有引用變量指向它的時(shí)候,才變成垃圾,不能再被使用,但是仍然占著內(nèi)存, 在隨后的一個(gè)不確定的時(shí)間被垃圾回收器釋放掉。這個(gè)也是java比較占內(nèi)存的主要原因。

java什么是棧

棧(stack)又名堆棧,它是一種運(yùn)算受限的線性表。其限制是僅允許在表的一端進(jìn)行插入和刪除運(yùn)算。這一端被稱為棧頂,相對(duì)地,把另一端稱為棧底。向一個(gè)棧插入新元素又稱作進(jìn)棧、入?;驂簵?,它是把新元素放到棧頂元素的上面,使之成為新的
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • java什么是引用類型
    java什么是引用類型

    引用類型 由類型的實(shí)際值引用(類似于指針)表示的數(shù)據(jù)類型。如果為某個(gè)變量分配一個(gè)引用類型,則該變量將引用(或指向)原始值。不創(chuàng)建任何副本。引用

  • java中什么是數(shù)組
    java中什么是數(shù)組

    所謂數(shù)組,就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個(gè)類型相同的變量用一個(gè)名字命名,然后用編號(hào)區(qū)分他們的變量的集合,這個(gè)名字

  • java什么是鏈表
    java什么是鏈表

    鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱

  • java什么是類的多態(tài)性
    java什么是類的多態(tài)性

    1. 如果a是類A的一個(gè)引用,那么,a可以指向類A的一個(gè)實(shí)例,或者說指向類A的一個(gè)子類。 2. 如果a是接口A的一個(gè)引用,那么,a必須指向?qū)崿F(xiàn)了接口A的一個(gè)類的

245880