1. 程式人生 > >Java核心技術之基本數據類型

Java核心技術之基本數據類型

又能 art 資料 string 1.4 get bool 讀取 大數

這篇文章。我們討論一些java的最主要的東西。這些東西我們一般剛剛學java的時候就學過,可是不一定真正明確。

正好,我在做一個讀取內存的值,涉及到bit位的值的讀取和寫。那就能夠討論一個java的基本數據類型的值在機器的具體情況:

Java基本數據類型共同擁有八種三類:字符類型char,布爾類型boolean以及數值類型byte、short、int、long、float、double。

數值類型又能夠分為整數類型byte、short、int、long和浮點數類型float、double。

Java決定了每種簡單類型的大小。這些大小並不隨著機器結構的變化而變化。這樣的大小的不可更改正是Java程序具有非常強移植能力的原因之中的一個。

以下,我們就是要分析java基本數據類型的取值範圍和占多少字節多少bit(1字節 = 8 bit)。


代碼例如以下:


public class BaseDataInfo{ 
	
public static void main(String[] args) {  
	
	System.out.println("Boolean.FALSE:"+Boolean.FALSE);
	System.out.println("Boolean.TRUE:"+Boolean.TRUE);
  
	int maxByte = Byte.MAX_VALUE;
	int minByte = Byte.MIN_VALUE;
	int sizeByte = Byte.SIZE;
	System.out.println("Byte.MAX_VALUE:"+maxByte);
	System.out.println("Byte.MIN_VALUE:"+minByte);
	System.out.println("Byte.SIZE:"+sizeByte);
	
	int maxChar = Character.MAX_VALUE;
	int minChar = Character.MIN_VALUE;
	int sizeChar = Character.SIZE;
	System.out.println("Character.MAX_VALUE:"+maxChar);
	System.out.println("Character.MIN_VALUE:"+minChar);
	System.out.println("Character.SIZE:"+sizeChar);
	
	int maxShort = Short.MAX_VALUE;
	int minShort = Short.MIN_VALUE;
	int sizeShort = Short.SIZE;	
	System.out.println("Short.MAX_VALUE:"+maxShort);
	System.out.println("Short.MIN_VALUE:"+minShort);
	System.out.println("Short.SIZE:"+sizeShort);

	
	int maxInt = Integer.MAX_VALUE;
	int minInt = Integer.MIN_VALUE;
	int sizeInt = Integer.SIZE;
	int bitCount = Integer.bitCount(10);
	System.out.println("Integer.MAX_VALUE:"+maxInt);
	System.out.println("Integer.MIN_VALUE:"+minInt);
	System.out.println("Integer.SIZE:"+sizeInt);
	System.out.println("Integer.bitCount(1):"+bitCount);
	
	long maxLong = Long.MAX_VALUE;
	long minLong = Long.MIN_VALUE;
	int sizeLong = Long.SIZE;
	System.out.println("Long.MAX_VALUE:"+maxLong);
	System.out.println("Long.MIN_VALUE:"+minLong);
	System.out.println("Long.SIZE:"+sizeLong);
	
		
	float maxFloat =  Float.MAX_VALUE;
	float minFloat =  Float.MIN_VALUE;
	int sizeFloat = Float.SIZE;
	System.out.println("Float.MAX_VALUE:"+maxFloat);
	System.out.println("Float.MIN_VALUE:"+minFloat);
	System.out.println("Float.SIZE:"+sizeFloat);	
	
	Double maxDouble =  Double.MAX_VALUE;
	Double minDouble =  Double.MIN_VALUE;
	int sizeDouble = Double.SIZE;
	System.out.println("Double.MAX_VALUE:"+maxDouble);
	System.out.println("Double.MIN_VALUE:"+minDouble);
	System.out.println("Double.SIZE:"+sizeDouble);	
	
  }
}

輸出結果:

Boolean.FALSE:false
Boolean.TRUE:true
Byte.MAX_VALUE:127
Byte.MIN_VALUE:-128
Byte.SIZE:8
Character.MAX_VALUE:65535
Character.MIN_VALUE:0
Character.SIZE:16
Short.MAX_VALUE:32767
Short.MIN_VALUE:-32768
Short.SIZE:16
Integer.MAX_VALUE:2147483647
Integer.MIN_VALUE:-2147483648
Integer.SIZE:32
Integer.bitCount(1):2
Long.MAX_VALUE:9223372036854775807
Long.MIN_VALUE:-9223372036854775808
Long.SIZE:64
Float.MAX_VALUE:3.4028235E38
Float.MIN_VALUE:1.4E-45
Float.SIZE:32
Double.MAX_VALUE:1.7976931348623157E308
Double.MIN_VALUE:4.9E-324
Double.SIZE:64

從輸出結果能夠看出:

boolean

僅僅有true和false兩個取值

byte

8位,最大存儲數據量是255,存放的數據範圍是-128~127之間

short

16位,最大數據存儲量是65536,數據範圍是-32768~32767之間

int

32位,最大數據存儲容量是2的32次方減1,數據範圍是負的2的31次方到正的2的31次方減1(也就是-2147483648~2147483647)。從int取值範圍能夠看。int適合20億級別的整形數據。

long

64位,最大數據存儲容量是2的64次方減1,數據範圍為負的2的63次方到正的2 的63次方減1(也就是-9223372036854775808~9223372036854775807)。

從long的取值範圍能夠看出。long適合海量級(億億級)的整形數據。

float

32位,數據範圍在3.4e-45~1.4e38。直接賦值時必須在數字後加上f或F。從float的取值範圍能夠看出,float適合e38級的float數據。

double

64位,數據範圍在4.9e-324~1.8e308,賦值時能夠加d或D也能夠不加。從double的取值範圍能夠看出,double適合e308的double數據。

char

16位。存儲Unicode碼,用單引號賦值



基本數據類型

boolean

byte

char

short

int

long

float

double

bit位數

1

8

16

16

32

64

32

64

字節位數

0.125

1

2

2

4

8

4

8

封裝類

Boolean

Byte

Character

Short

Integer

Long

Float

Double

參考資料:

Java基本數據類型總結
http://www.cnblogs.com/doit8791/archive/2012/05/25/2517448.html

Java核心技術之基本數據類型