java基礎一:基本型別,運算子號

焦世春發表於2019-02-23

java中的基本型別

字元型:char 數值型:byte,short,int,long,float,double 布林型:boolean

型別 位元組數 取值範圍
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 1011

java中的進製表示

java中預設使用十進位制
二進位制: 0b* (0,1)
八進位制: 0* (0-7) 十六進位制: 0X* (0-f)
相比二進位制和八進位制 十六進位制用的較多

java中的運算子

常用運算子 + - * \ %(取餘)

不同的型別計算時,自動向上轉型
如: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
兩個整數相除時只會保留整數部分

自增長/自減少 ++ / --

int a=1;
a++ 表示 a=a+1
a-- 表示 a=a-1
注意 short 自增加或自減少時 結果還是short
同時支援 --a ++a
a++和++a不同在於第一種是先計算後自增 第二種是先自增再計算

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 一個數值異或兩次同樣的數後為本身

符號 & | ^
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還會繼續判斷右側條件 #修飾符 類和方法修飾符訪問許可權範圍

符號 父子類關係 同一個包 外部類
public
protected
default
private

相關文章