Java個人學習筆記-資料型別及取值範圍
一. Java基本資料型別
在JAVA中一共有八種基本資料型別,他們分別是
byte、short、int、long、float、double、char、boolean
取值範圍見下圖:
二. 不同資料型別之間相互賦值
-
範圍小的可以賦值給大的, 大的不能直接賦值給小的。
a.小的賦值給大的可以直接賦值,不用強制型別轉換
b. 大的賦值給小的必須強制型別轉換。
c. 數值小數,系統預設為double型別
d.小數賦值給int,不是四捨五入,是去掉小數部分取整數。//小數預設為double型別,賦值給float型別是大範圍賦值給小範圍,必須強制型別轉換 float f1=(float)2.1; //小數預設為double型別,賦值給int是大的賦值給小的,必須強制型別轉換; //小數強制型別轉換為int,不是四捨五入,而是去掉小數部分取整數。 int i1=(int)2.6; System.out.println("f1="+f1); System.out.println("i1="+i1);
輸出結果:
f1=2.1
i1=2 - 當字面值為整數,未超出型別範圍時可以賦值給byte、short、char。
byte b = 10;
short s =10;
char c =97;
System.out.println("c="+b);
System.out.println("s="+s);
System.out.println("c的值是"+c);
輸出值:
c=10
s=10
c的值是a
3.字面值是整數且超出型別範圍時,賦值要進行強制型別轉換。
以給byte型別賦值為例:
a. 整數在系統中預設是int,但是整數在賦值給byte型變數時有時不需要輕質型別轉換,性情見下面的b、c兩點。
b. 如果數值沒有超出byte取值範圍(-128~127,即-2的7次方到2的7次方-1),可以直接賦值給byte型別變數,不用輕質型別轉換。 如: byte b=127;
c. 如果數值超出byte取值範圍,必須進行強制型別轉換。
如:byte b=(byte)128;
public class HelloChina {
public static void main(String[] args){
byte b1=127;//數面數值沒有超過[-128,127],可以直接賦值。
byte b2=(byte)128;//128已超出了byte取值範圍,必須進行強制型別轉換。
//下面輸出b1和b2的值:
System.out.println("b1="+b1);
System.out.println("b2="+b2);
}
}
輸出結果:
b1=127
b2=-128
4.運算中的型別轉換
看下面例子中的詳細解釋:
//運算中的型別轉換
byte b3=1;
byte b4=2;
byte sum;
sum=(byte)(b3+b4);//注意這個算式不能寫成sum=b3+b4,如果寫成這樣編譯器會報錯,提示int型別不能轉換為byte型別。
/*
因為b3和b4是byte型別的變數,b3+b4=3,系統預設整數3為int型別,int型別賦值給byte型別sum就會出錯。
所以要對b3+b4進行強制型別轉換(byte)(b3+b4),才可以合法的賦值給byte型別的sum。
*/
System.out.println("sum="+sum);
int sum2=(int)(3+4.7);//小數與整數相加預設為double,賦值給int型別需要強制型別轉換
System.out.println("sum2="+sum2);
輸出:
sum=3
sum2=7
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/758/viewspace-2799313/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微控制器中的資料型別佔用空間及取值範圍資料型別
- 常用埠及埠範圍(學習筆記)筆記
- Java基本資料型別記憶體佔用位元組大小,取值範圍和預設值Java資料型別記憶體
- 資料型別範圍資料型別
- Java學習筆記8-資料型別Java筆記資料型別
- MySQL學習筆記--資料型別MySql筆記資料型別
- JavaScript學習筆記---資料型別JavaScript筆記資料型別
- Python 學習筆記——資料型別Python筆記資料型別
- MySQL學習筆記12:資料型別MySql筆記資料型別
- Redis學習筆記(二)——Redis資料型別Redis筆記資料型別
- Python學習筆記(一) 資料型別Python筆記資料型別
- Python學習筆記(二)——資料型別Python筆記資料型別
- redis學習筆記2: Redis資料型別Redis筆記資料型別
- OpenCV學習筆記(3)——Scalar資料型別理解OpenCV筆記資料型別
- hive學習筆記之一:基本資料型別Hive筆記資料型別
- Python 3 學習筆記之——資料型別Python筆記資料型別
- Python學習筆記2:基本資料型別Python筆記資料型別
- JavaScript學習筆記 - 3.基本資料型別JavaScript筆記資料型別
- Hive學習筆記 2 Hive的資料型別Hive筆記資料型別
- MySQL學習筆記之資料型別詳解MySql筆記資料型別
- Redis學習筆記 – 資料型別與API(1)KeyRedis筆記資料型別API
- Java學習筆記之多型Java筆記多型
- 【Java學習筆記之二】java識別符號命名規範Java筆記符號
- 資料型別 - Go 學習記錄資料型別Go
- 【學習筆記】之:Java命名規範筆記Java
- MySQL欄位的取值範圍MySql
- TypeScript學習筆記(一)環境搭建和資料型別TypeScript筆記資料型別
- SAP UI5 資料型別(data type) 學習筆記UI資料型別筆記
- 碎片化學習Java(四)-- Java資料型別Java資料型別
- Go型別特性-學習筆記Go型別筆記
- Go/Golang語言各種資料型別記憶體位元組佔用大小和取值範圍(最小值最大值)Golang資料型別記憶體
- Java資料型別及型別轉換Java資料型別
- 《Java核心技術 卷I》學習筆記2:資料型別、變數與常量Java筆記資料型別變數
- Flutter學習筆記(3)--Dart變數與基本資料型別Flutter筆記Dart變數資料型別
- python學習筆記1—python的基本資料型別Python筆記資料型別
- Object C學習筆記1-基本資料型別說明Object筆記資料型別
- jexcelapi學習筆記三——各資料型別的寫操作(修改)ExcelAPI筆記資料型別
- ES 筆記四十:聚合的作用範圍及排序筆記排序