Java的簡單理解(2)

weixin_34279579發表於2018-03-09

3532835-93b18ce3b780a64a
Java

資料型別
3532835-ff28927f006c07eb..png
image

**byte: **記憶體中佔用一個位元組八位。表示範圍-128~127
**short: **記憶體中佔用二個位元組16位。表示範圍-32768~32767
**int: **記憶體中佔用4個位元組32位。
**long: **記憶體中佔用8個位元組64位。

long a7 = 11111111111; 會報錯
long a7 = 11111111111L; 正確

要加上L。

Java中對極大的數的計算是通過BigDecimal類來計算的。

進位制

int a = 10; (十進位制)
int b = 010; (八進位制) 8
int c = 0x10; (16進位制) 16

進位制轉換

int a = 10;
System.out.println(Integer.toBinaryString(a)); 1010 轉為二進位制
System.out.println(Integer.toOctalString(a)); 12  轉為八進位制
System.out.print(Integer.toHexString(a)); a 轉為16進位制

浮點數
float: 記憶體佔4位32個位元組
Double:記憶體佔8位64個位元組
浮點數的預設型別是double型。

double d = 3.14; //預設型別是double型
float f = 3.14; // 從double轉換為float可能會有損失。

浮點數存在誤差,很多數字不能精確表示,建議使用BigDecimal類。
BigDecimal大的小數
BigInteger大的整數
最好避免在比較中使用浮點數
字元
char: 採用的是Unicode編碼格式,佔2個位元組。

char c1 = '吳'; // 注意是單引號,雙引號的是字串

char的範圍是0~65536,運算是當做整數來進行的。

Java裡面的字串,是定義成String類了。

boolean型別
boolean型別在記憶體中佔1位,而不是1個位元組。

自動型別轉換
容量小的資料型別可以自動轉換為容量大的資料型別。

JDK 7.0 新特性
int a = 0b00000000000000000000000000000011; // 二進位制的3
int b = 0b0000_0000_0000_0000_0000_0000_0000_0011; // 二進位制的3,下劃線不影響
int c = 123123131;
int d = 1_2312_3131;

相關文章