Java內(nèi)存結(jié)構(gòu)和數(shù)據(jù)類型
Java內(nèi)存結(jié)構(gòu)
內(nèi)存就是暫時(shí)對(duì)數(shù)據(jù)的一個(gè)存儲(chǔ),他的存儲(chǔ)速度非常的快,但是他是暫時(shí)的存儲(chǔ),從開(kāi)機(jī)時(shí)開(kāi)始存儲(chǔ),掉電或關(guān)機(jī)之后數(shù)據(jù)全部丟失。內(nèi)存的生命周期就是開(kāi)機(jī)和關(guān)機(jī),開(kāi)機(jī)的時(shí)候開(kāi)始計(jì)算,關(guān)機(jī)什么都沒(méi)有了。優(yōu)點(diǎn)存儲(chǔ)速度快,缺點(diǎn)容易壞掉,如果開(kāi)機(jī)的時(shí)候,一點(diǎn)反映都沒(méi)有,屏幕不亮鍵盤鼠標(biāo)不亮,這種情況下一般都是內(nèi)存條有問(wèn)題。機(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è)未開(kāi)端的一大片土地,要想在這片土地里種一些蔬菜隨便你種,但是不要把菜種到別人占用的地方。內(nèi)存也是如此訪問(wèn)一些東西是允許你訪問(wèn)的,但是如果這個(gè)內(nèi)容被人家占用了,你要想再去占用是不允許的。
我們的數(shù)據(jù)存儲(chǔ)在內(nèi)存之中,內(nèi)存中有很多數(shù)據(jù)存儲(chǔ)的單元格想存到哪都是是可以的,不過(guò)Java是沒(méi)有選擇性,Java的存儲(chǔ)的是由虛擬機(jī)來(lái)代理。
內(nèi)存的存儲(chǔ)單位:計(jì)算機(jī)是按位來(lái)存儲(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)存之中,必須要選擇大小來(lái)進(jìn)行存儲(chǔ)不能說(shuō)小的東西也拿很大的去存儲(chǔ),就比如你有一升的水那么就要存儲(chǔ)在杯子里面。如果有10生水你非得要存儲(chǔ)到杯子里,那是會(huì)溢出的,大的不能存儲(chǔ)在小的容器里會(huì)溢出,小的也不能存儲(chǔ)到很大的容器里那樣很浪費(fèi)。如圖3.3所示:
圖3.3
Java數(shù)據(jù)類型
我們的編程語(yǔ)言數(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)樗麖?開(kāi)始,0~255。所以8位就是有8個(gè)0和1組成,總共組成256個(gè)描述,0~255個(gè)數(shù)值。如圖3.4所示:
4.png
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 真和假的意思,用來(lái)判斷的。
以上所述是小編給大家介紹的Java內(nèi)存結(jié)構(gòu)和數(shù)據(jù)類型,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot日志進(jìn)階實(shí)戰(zhàn)之Logback配置經(jīng)驗(yàn)和方法
本文給大家介紹在SpringBoot中使用Logback配置日志的經(jīng)驗(yàn)和方法,并提供了詳細(xì)的代碼示例和解釋,包括:滾動(dòng)文件、異步日志記錄、動(dòng)態(tài)指定屬性、日志級(jí)別、配置文件等常用功能,覆蓋日常Logback配置開(kāi)發(fā)90%的知識(shí)點(diǎn),感興趣的朋友跟隨小編一起看看吧2023-06-06Spring Cloud超詳細(xì)i講解Feign自定義配置與使用
這篇文章主要介紹了SpringCloud Feign自定義配置與使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06SpringBoot使用@Cacheable注解實(shí)現(xiàn)緩存功能流程詳解
最近一直再學(xué)Spring Boot,在學(xué)習(xí)的過(guò)程中也有過(guò)很多疑問(wèn)。為了解答自己的疑惑,也在網(wǎng)上查了一些資料,以下是對(duì)@Cacheable注解的一些理解2023-01-01SpringBoot詳解整合Spring?Boot?Admin實(shí)現(xiàn)監(jiān)控功能
這篇文章主要介紹了SpringBoot整合Spring?Boot?Admin實(shí)現(xiàn)服務(wù)監(jiān)控,內(nèi)容包括Server端服務(wù)開(kāi)發(fā),Client端服務(wù)開(kāi)發(fā)其中Spring?Boot?Admin還可以對(duì)其監(jiān)控的服務(wù)提供告警功能,如服務(wù)宕機(jī)時(shí),可以及時(shí)以郵件方式通知運(yùn)維人員,感興趣的朋友跟隨小編一起看看吧2022-07-07