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