一、
在Java中,一共有8種基本數據類型,其中4種整型(int、short、long、byte),2種浮點類型(float、double),1種字符類型char,1種用於表示真值的boolean。
1、整型
類型 | 存儲需求 | 取值範圍 |
---|---|---|
int | 4字節 | - 2 147 483 648 ~ 2 147 483 647 |
short | 2字節 | - 32 768 ~ 32 767 |
long | 8字節 | - 9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 |
byte | 1字節 | - 128 ~ 127 |
通常情況下,int類型最常用。在Java中,整型的範圍與運行Java代碼的機器無關。這就解決了軟件從一個平臺移植到另一個平臺,或者是在同一個平臺中不同的操作系統之間進行移植給程序員帶來的諸多問題。
長整型數據後面有個後綴L(如1000000000L)。十六進制數值有一個前綴0x(如0xABCD)。八進制前面有一個0,如010對應八進制中的8。二進制數有一個前綴0b,例如0b1001表示9。從Java7開始,還可以爲數字字面量添加下劃線,如用1_000_000表示一百萬。下劃線只是爲了使人更易讀,Java編譯器會去除這些下劃線。
注意:Java沒有任何無符號類型。
2、浮點類型
類型 | 存儲需求 | 取值範圍 |
---|---|---|
float | 4字節 | 大約±3.402 823 47E + 38F |
double | 8字節 | 大約±1.797 693 134 862 315 70E + 308 |
通常情況下,浮點數採用double類型。double的數據精度是float類型的兩倍,也成爲雙精度數值。float類型的數值通常有一個後綴F(例如3.14F),沒有F的默認爲double類型。
用於表示溢出和出錯情況的三個特殊類型的浮點數值:1、正無窮大;2、負無窮大;3、NaN(不是一個數字)。例如一個正整數除以0的結果是正無窮大。負數的平方根結果爲NaN。用常量Double.POSITIVE_INFINITY(正無窮大)、Double.NEGATIVE_INFINITY(負無窮大)、Double.NaN(NaN)來表示。
3、char類型
char類型用於表示單個字符,通常用來表示字符常量。例如‘A’(單引號)是編碼爲65所對應的字符常量。
注意:“A”(雙引號)是一個包含字符A的字符串。
4、boolean類型
boolean(布爾)類型有兩個值:false和true,用來判定邏輯條件。整型值和布爾值之間不能相互轉換。
二、變量
在Java中,每一個變量屬於一種類型(type)。在聲明變量時,變量所屬的類型位於變量名之前。示例:
int age=24;
double salary;
boolean is_true=flase;
三、常量
在Java中,利用關鍵字final指示常量,例如final int AGE=24;關鍵字final表示這個變量只能被賦值一次。一旦被賦值,就不能再修改。習慣上,常量名使用全大寫。如果希望某個常量可以在一個類中的多個方法中使用,通常將這些常量稱爲類常量。使用關鍵字static final設置一個類常量。例如static final int AGE=24。如果一個類常量被聲明爲public,那麼其他類的方法也可以使用這個常量。
四、枚舉類型
自定義枚舉類型,枚舉類型包括有限個命名的值。例如:
enum Size {S,M,L,XL};
Size sz=Size.M;
五、字符串類型
在標準Java類庫中提供了一個預定義類String。每個被雙引號括起來的字符串都是String類的一個實例:
String s="";
String welcomeword="hello";
1、子串
String類的substring方法可以從一個較大的字符串提取出一個子串。例如:
String s="hello";
String ss=s.substring(0,3);
ss的值爲“hel”。
2、拼接
Java語言允許使用+號連接(拼接)兩個字符串,還可以將一個字符串與一個非字符串的值進行拼接,後者被轉換成字符串。例如:
String s1="hello";
String s2="world";
int a=1;
String s3=s1+s2+a;
s3的值爲“helloworld1”。
3、不可變字符串
String類沒有提供用於改變字符串的方法。如果希望將“hello”改變爲“help!”,不能直接地將s1的最後兩個位置的字符修改爲‘p’和‘!’。需要子串+拼接的方式,例如:s1=s1.substring(0,3)+“p!”。
由於Java不能修改字符串中的字符,所以在Java文檔中將String類對象稱爲不可變字符串。
4、檢測字符串是否相等
Java可以使用equals方法檢測兩個字符串是否相等。例如:s1.equals(s2),如果字符串s1與字符串s2相等,則返回true;否則,返回false。如果想要檢測兩個字符串是否相等,而不區分大小寫,可以使用equalsIgnoreCase方法。
注意:一定不能使用==運算符檢測兩個字符串是否相等!這個運算符只能夠確定兩個字符串是否放在同一物理內存中。當然,如果字符串放置在同一個物理內存中,它們必然相等。但是,完全有可能將內容相同的多個字符串拷貝放置在不同的內存中。
5、空串與Null串
空串“”是長度爲0的字符串,可以通過if(str.length()==0)或者if(str.equals(""))。空串是一個Java對象,有自己的串長度(0)和內容(空)。Null串表示目前沒有任何對象與該變量關聯。要檢查一個字符串是否爲null,通過if(str==null)判斷。
六、運算符
算數運算符: +(加)、-(減)、*(乘)、/(除)、%(取餘)、++(自增)、--(自減)
邏輯運算符:==、!=、>、<、≥、≤、||(邏輯或)、&&(邏輯與),邏輯運算符的結果爲boolean值,true或者false。
位運算符:&(與)、|(或)、~(非)、^(異或)、<<(左移)、>>(右移),位運算符是在位模式下工作的。例如6 | 9=0b0110 | 0b1001 (二進制)=0b1111(二進制) =15
三元運算符:condition?expression1:expression2;當條件condition爲真時,計算第一個表達式,否則,計算第二個表達式。例如:x>y?x:y;返回x和y中較大的那個值。
注意:x+=2等價於x=x+2,是一種簡化的格式書寫二元算術運算符。
七、數學函數
開平方:double a=Math.sqrt(x); a的值爲x開平方。
指數:double a=Math.pow(x, y);a的值爲x的y次冪。
Math類還提供了一些常用的三角函數:Math.sin,Math.cos,Math.tan等,指數函數:Math.exp,對數函數:Math.log。
Java還提供兩個用於表示π和e常量的近似值:Math.PI和Math.E。