第一節 java數據類型


java基本數據類型

1.java中數據類型分爲兩種:基本類型,引用類型


其中基本類型,或者叫做內置類型,是JAVA中不同於類的特殊類型。

java八種數據類型在不同平臺上運行,是固定字節,固定數值範圍。這也是java跨平臺得特性


Java中的簡單類型從概念上分爲四種:實數、整數、字符、布爾值。但是有一點需要說明的是,Java裏面只有八種原始類型,其列表如下:

  實數:double、float

  整數:byte、short、int、long

  字符:char

  布爾值:boolean

2. 引用類型和基本類型的內存模型本質上是不一樣的

簡單數據類型的存儲原理是這樣的:所有的簡單數據類型不存在“引用”的概念,簡單數據類型都是直接存儲在內存中的內存棧上的,數據本身的值就是存儲在棧空間裏面,而Java語言裏面只有這八種數據類型是這種存儲模型;

而其他的只要是繼承於Object類的複雜數據類型都是按照Java裏面存儲對象的內存模型來進行數據存儲的,使用Java內存堆和內存棧來進行這種類型的數據存儲,簡單地講,“引用”是存儲在有序的內存棧上的,而對象本身的值存儲在內存堆上的。


Java 基本數據類型:

注:
int:int爲整數類型,在存儲的時候,用4個字節存儲,範圍爲-2,147,483,648到2,147,483,647,在變量初始化的時候,int類型的默認值爲0。(2的32次方)

short:short也屬於整數類型,在存儲的時候,用2個字節存儲,範圍爲-32,768到32,767,在變量初始化的時候,short類型的默認值爲0,一般情況下,因爲Java本身轉型的原因,可以直接寫爲0。

long:long也屬於整數類型,在存儲的時候,用8個字節存儲,範圍爲-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,在變量初始化的時候,long類型的默認值爲0L或0l,也可直接寫爲0。(2的64次方)

byte:byte同樣屬於整數類型,在存儲的時候,用1個字節來存儲,範圍爲-128到127,在變量初始化的時候,byte類型的默認值也爲0。

float:float屬於實數類型,在存儲的時候,用4個字節來存儲,範圍爲32位IEEEE 754單精度範圍,在變量初始化的時候,float的默認值爲0.0f或0.0F,在初始化的時候可以寫0.0。

double:double同樣屬於實數類型,在存儲的時候,用8個字節來存儲,範圍爲64位IEEE 754雙精度範圍,在變量初始化的時候,double的默認值爲0.0。

char:char屬於字符類型,在存儲的時候用2個字節來存儲,因爲Java本身的字符集不是用ASCII碼來進行存儲,是使用的16位Unicode字符集,它的字符範圍即是Unicode的字符範圍,在變量初始化的時候,char類型的默認值爲'u0000'。
java中文是Unicode/gbk/gb2312編碼,中文佔兩個字節。但是如果是utf-8編碼,那麼中文大部分是佔用3位。拓展B區之後的是4字節。

boolean:boolean屬於布爾類型,在存儲的時候不使用字節,僅僅使用1位來存儲,範圍僅僅爲0和1,其字面量爲true和false,而boolean變量在初始化的時候變量的默認值爲false。



java 引用類型:

java中除了這8中基本數據類型外,其餘都爲引用類型。引用類型的變量只存了引用對象的內存地址,而對象的值存在堆中。

String 是java類庫自帶的引用類型,而不是基本數據類型。


在jdk 1.7之後,可以直接進行這樣字面整形得書寫,例如:1_000_000,編譯器再編譯時,會自動的將下劃線去掉





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章