字符型:char 數值型:byte,short,int,long,float,double 布爾型:booleanjava
類型 | 字節數 | 取值範圍 |
---|---|---|
byte | 1 | -128-127 |
char | 2 | 0-65535 |
short | 2 | -2^15 - 2^15-1 |
int | 4 | -2^31 - 2^31-1 |
long | 8 | -2^63 - 2^63-1 |
float | 4 | |
double | 8 | |
boolean | true/false |
java中沒有byte和short的表示法。
整數數值默認是 int 使用long類型在數值後面加l或者L
浮點類型默認是 double 使用float類型在數值後面加 d或者D
char類型用單引號
byte的取值範圍爲-128~127,佔用1個字節(-2的7次方到2的7次方-1)
short的取值範圍爲-32768~32767,佔用2個字節(-2的15次方到2的15次方-1)
int的取值範圍爲(-2147483648~2147483647),佔用4個字節(-2的31次方到2的31次方-1)
long的取值範圍爲(-9223372036854774808~9223372036854774807),佔用8個字節(-2的63次方到2的63次方-1)
java中負數表示方法:
以負數-5爲例:
1.先將-5的絕對值轉換成二進制,即爲0000 0101;
2.而後求該二進制的反碼,即爲 1111 1010;
3.最後將反碼加1,即爲:1111 1011bash
java中默認使用十進制
二進制: 0b* (0,1)
八進制: 0* (0-7) 十六進制: 0X* (0-f)
相比二進制和八進制 十六進制用的較多spa
不一樣的類型計算時,自動向上轉型
如:int i=1;
short s=2;
float f=1.3f;
double d=1.2;
long l=10L;
i+s 自動轉型爲 int
i+f 自動轉型爲float
i+d 自動轉型爲doulbe
i+l 自動轉型爲long
i+s+f+d+l 自動轉型爲double
兩個整數相除時只會保留整數部分code
int a=1;
a++ 表示 a=a+1
a-- 表示 a=a-1
注意 short 自增長或自減小時 結果仍是short
同時支持 --a ++a
a++和++a不一樣在於第一種是先計算後自增 第二種是先自增再計算string
int a=1;
int b=1;
System.out.println("(b + a++)="+(b + a++)+" a="+a);//(b + a++)=2 a=2
a=1;
b=1;
System.out.println("(b + ++a) ="+(b + ++a)+" a="+a);//(b + ++a) =3 a=2
複製代碼
& 位與
將兩個數值對應的二進制,每一位進行與運算 1 1 爲 1, 1 0 爲 0 ,0 0 爲 0 | 位或
將兩個數值對應的二進制,每一位進行或運算 1 1 爲 1, 1 0 爲 1 ,0 0 爲 0 ^ 異或
將兩個數值對應的二進制,每一位進行異或運算 1 1 爲 0, 1 0 爲 1 ,0 0 爲 0 一個數值異或兩次一樣的數後爲自己table
符號 | & | | | ^ |
---|---|---|---|
1:1 | 1 | 1 | 0 |
1:0 | 0 | 1 | 1 |
0:0 | 0 | 0 | 0 |
~ 取反
一元運算符 將數值對應的二進制每一位取反
<< 左位移
將數值對應的二進制向左移動 移動後用0補齊 使用方式
int a=3;
int b=a<<2;//12 即0000 0000 0000 0011 -> 0000 0000 0000 1100
>> 右位移
將數值對應的二進制向右移動 若是第一位是1 則用1 補齊 若是是0 則用0補齊
int a=9;
int b=a>>2;//2 即 0000 0000 0000 1001 -> 0000 0000 0000 0010
int a=-6;
int b=a>>2; //-2 即 1111 1111 1111 1010 ->1111 1111 1111 1110
>>> 無符號右位移
將數值對應的二進制向右移動 不過第一位是幾 都用0 補齊 對於正數沒有影響,負數的話就會變爲正數
int a=-6;
int b=a>>>2;// 即 1111 1111 1111 1010 -> 0011 1111 1111 1110 ##邏輯運算符 & 與
兩邊都爲true時爲true
&& 短路與
兩邊都爲true時爲true 與 & 區別 && 在左側條件爲false時不會再判斷右側條件 而 & 左側爲false時還會判斷右側條件
| 或
兩邊至少有一個true 即爲 true 都爲false才爲false
|| 短語與
兩邊至少有一個true 即爲 true 都爲false才爲false 與 | 區別 || 在左側條件爲true時,即已經判斷結果true不會再判斷右側條件 而 |左側即使爲true還會繼續判斷右側條件 #修飾符 類和方法修飾符訪問權限範圍class
符號 | 父子類關係 | 同一個包 | 外部類 |
---|---|---|---|
public | 是 | 是 | 是 |
protected | 是 | 是 | 否 |
default | 否 | 是 | 否 |
private | 否 | 否 | 否 |