Java內(nèi)存結(jié)構(gòu) 內(nèi)存就是暫時(shí)對(duì)數(shù)據(jù)的一個(gè)存儲(chǔ),他的存儲(chǔ)速度非常的快,但是他是暫時(shí)的存儲(chǔ),從開機(jī)時(shí)開始存儲(chǔ),掉電或關(guān)機(jī)之后數(shù)據(jù)全部丟失。內(nèi)存的生命周期就是開機(jī)和關(guān)機(jī),開機(jī)的時(shí)候開始計(jì)算,關(guān)機(jī)什么都沒有了。優(yōu)點(diǎn)存儲(chǔ)速度快,缺點(diǎn)容易壞掉,如果開機(jī)的時(shí)候,一點(diǎn)反映都沒有,屏幕不亮鍵盤鼠標(biāo)不亮,這種情況下一般都是內(nèi)存條有問題。機(jī)器藍(lán)屏,指令錯(cuò)誤都是內(nèi)存引起的。 程序的數(shù)據(jù)都是存儲(chǔ)在內(nèi)存里面,不存儲(chǔ)在硬盤上因?yàn)橛脖P不安全,可以讀取數(shù)據(jù)。但是內(nèi)存就不一樣,內(nèi)存他不允許去讀取內(nèi)存數(shù)據(jù),并且速度很快所以我們的程序都是存儲(chǔ)在內(nèi)存里。 內(nèi)存就好比是一個(gè)未開端的一大片土地,要想在這片土地里種一些蔬菜隨便你種,但是不要把菜種到別人占用的地方。內(nèi)存也是如此訪問一些東西是允許你訪問的,但是如果這個(gè)內(nèi)容被人家占用了,你要想再去占用是不允許的。 我們的數(shù)據(jù)存儲(chǔ)在內(nèi)存之中,內(nèi)存中有很多數(shù)據(jù)存儲(chǔ)的單元格想存到哪都是是可以的,不過Java是沒有選擇性,Java的存儲(chǔ)的是由虛擬機(jī)來代理。 內(nèi)存的存儲(chǔ)單位:計(jì)算機(jī)是按位來存儲(chǔ)的,位(存儲(chǔ)的只能是0和1) 位是最小的存儲(chǔ)單位。 字節(jié)(8位等于1個(gè)字節(jié)) K(1024個(gè)字節(jié)等于1KB)M(1024K等于1M) G(1024M等于1G) T(1024G等于1T)P(1024T等于1P)。 程序的數(shù)據(jù)要存儲(chǔ)在內(nèi)存之中,必須要選擇大小來進(jìn)行存儲(chǔ)不能說小的東西也拿很大的去存儲(chǔ),就比如你有一升的水那么就要存儲(chǔ)在杯子里面。如果有10生水你非得要存儲(chǔ)到杯子里,那是會(huì)溢出的,大的不能存儲(chǔ)在小的容器里會(huì)溢出,小的也不能存儲(chǔ)到很大的容器里那樣很浪費(fèi)。如圖3.3所示: 圖3.3 Java數(shù)據(jù)類型 我們的編程語言數(shù)據(jù)想存儲(chǔ)在內(nèi)存之中那么首先得選擇一個(gè)存儲(chǔ)的大小這樣才不會(huì)浪費(fèi),那所謂的存儲(chǔ)大小就叫做數(shù)據(jù)類型。什么是數(shù)據(jù)類型?就要我們要把數(shù)據(jù)存儲(chǔ)在類型之中,我們需要給我們的數(shù)據(jù)選擇一種合適的類型去存儲(chǔ),不至于浪費(fèi)數(shù)據(jù),不至于浪費(fèi)存儲(chǔ)大小。 Java的數(shù)據(jù)類型,各有各自的存儲(chǔ)大小,如果有不同的類型,就要找到不同的數(shù)據(jù)類型去存儲(chǔ)。所以程序要存儲(chǔ)到內(nèi)存之中就要選擇合適數(shù)據(jù)類型去存儲(chǔ)。 數(shù)值類型: 1.整數(shù):
2.浮點(diǎn)(小數(shù)):
3.字符類型: 4.布爾類型: byte:8位表示一個(gè)字節(jié),也就是有8個(gè)0和1組成,他能組成256個(gè)標(biāo)識(shí)。什么是256個(gè)標(biāo)識(shí)?就是8個(gè)0和1在那擺在那互相的組合,總共能組合256個(gè)標(biāo)識(shí),8位他能繼承最大的數(shù)是255,因?yàn)樗麖?開始,0~255。所以8位就是有8個(gè)0和1組成,總共組成256個(gè)描述,0~255個(gè)數(shù)值。如圖3.4所示: 圖3.4 short:16位,也就是有16個(gè)0和1組成,他能組成65536個(gè)標(biāo)識(shí),0~65535個(gè)數(shù)值。 int:32位,也就是有32個(gè)0和1組成,他能組成4294967296個(gè)標(biāo)識(shí),0~4294967295個(gè)數(shù)值。 long:64位,也就是有64個(gè)0和1組成,他能夠標(biāo)識(shí)地球上所有的數(shù)值。 float: 32位,32個(gè)0和1組成,小數(shù)能夠精確到6位左右。 double:64位,64個(gè)0和1組成,小數(shù)能夠精確到15位左右。 char:16位,他是由ASCLL字符表示的。 boolean: 標(biāo)識(shí)只有0和1,他是false true 真和假的意思,用來判斷的。 技術(shù)分享:www.kaige123.com |
|