「Java」 第三課: 型態Type
型態有兩大類:
1. 基本型態
2. 類別型態
基本型態又分成以下:
1. 整數: short ,int , long
2. 位元: byte
3. 浮點數: float
4. 字元: char
5. 布林: boolean
解析:
short : 占用記憶體長度 2 位元組
int : 占用記憶體長度 4 位元組
long : 占用記憶體長度 8 位元組
byte: 占用記憶體長度 1 位元組
float: 占用記憶體長度 4 位元組
double: 占用記憶體長度 8 位元組
char: 採用字元符號來儲存,占用記憶體長度 2 位元組
boolean: 採用 true 與 false 來分別表示
備註: 當儲存值超出各自的範圍稱之為『溢值 Overflow』
1. 基本型態
2. 類別型態
基本型態又分成以下:
1. 整數: short ,int , long
2. 位元: byte
3. 浮點數: float
4. 字元: char
5. 布林: boolean
解析:
short : 占用記憶體長度 2 位元組
int : 占用記憶體長度 4 位元組
long : 占用記憶體長度 8 位元組
byte: 占用記憶體長度 1 位元組
float: 占用記憶體長度 4 位元組
double: 占用記憶體長度 8 位元組
char: 採用字元符號來儲存,占用記憶體長度 2 位元組
boolean: 採用 true 與 false 來分別表示
備註: 當儲存值超出各自的範圍稱之為『溢值 Overflow』
public class PrimitiveType{
//有static 是 類別型態的變數
public static float aa1a;
public static double aa2;
public static void main(String[] args){
//static 是類別成員,只要透過類別名稱呼叫即可
//區域變數 : 型別 變數名稱[值];
int intMax = Integer.MAX_VALUE;
//int是基本型別 Interger是類別成員
//Interger.MAX_VALUE =>呼叫 類別名稱 的 最大值
//MAX_VALUE 類別屬性
System.out.println("1. Max= "+intMax); //Max= 2147483647
int intMin = Integer.MIN_VALUE;
System.out.println("2. MIN= "+intMin); //MIN= -2147483648
/*
+ 可分兩種:
1. 加號
2. 串接
*/
System.out.println(2147483647); //2147483647
//System.out.println(2147483648); // error integer number too large
System.out.println(2147483648L);//2147483648 因數值 升轉 int -> long
System.out.println(2147483647+1);//-2147483648 溢位 變成負數 -2147483648 (因二進位)
System.out.println(aa1a); //public static float aa1a; => 0.0
System.out.println(aa2); //public static double aa2; => 0.0
int a1 = 1;
int a2 = intMax+a1;
System.out.println("3. a2= "+a2); //a2= -2147483648
//為了避免溢位,所以使用大水桶long
long a3 = 5;
long a4 = intMax+a3;
System.out.println("4. a4 ="+a4);//a4 =2147483652
System.out.println(2147483647+2147483646);//溢位 變成負數 -3
//有如一個時鐘,在12點鐘 0 右為正(累加),向左為負(累加),
//在六點鐘-2147483648 向右為正(累減),向左為負(累減),
System.out.println("2147483647+1");//2147483647+1 字串 串接
System.out.println("Test"+3+3+4);//Test334 字串 串接
System.out.println(3+3+4);//10 數值 相加
//-------整數: default primitive = int ---------------------------
//十進位 原本數值
System.out.println("十進位 558: "+558); //十進位 558: 558
//二進位 0b_0-1
System.out.println("二進位 0b_1000101110: "+0b1_000101110);//二進位 0b_1000101110: 558
//八進位 0_0-9
System.out.println("八進位 0_1056: "+0_1056);//八進位 0_1056: 558
//十六進位 0x_0-9_(A(11)/B(12)/C(13)/D(14)/E(14))
System.out.println("十六進位 0x_22E: "+0x22E);//十六進位 0x_22E: 558
//-------小數: default primitive = double---------------------------
//float a1=1.23; //Reason 1.23 default is double type,
float b1 = 1.23F; //強制 double降轉 為float
double b2=1.23;
System.out.println(b1+b2); //2.4600000190734863
float b3 = 1.23F;//強制 double降轉 為float
System.out.println(b3);//1.23
double b4 = 1.23;
System.out.println(b4);//1.23
float a5 = 0.3F; //大概的小數值
System.out.println(a5+a5+a5);//0.90000004
double a6 = 0.3;//精確的小數值
System.out.println(a6+a6+a6);//0.8999999999999999
//-------字元: default primitive = char---------------------------
char c1 = 'A';
char c2 = '\u0041';
System.out.println(c1); // A
System.out.println(c2);// A
System.out.println(c1+5);//char(16進位)可轉換成int(10進位)=>65 + 5 = 70
char c3 = '熱';
char c4 = '\u5496';
char c5 = '\u5561';
System.out.println("-->"+c3+c4+c5);//字串 -->熱咖啡
System.out.println(c3+c4+c5);//int 72616
//-------布林: default primitive = boolean---------------------------
boolean B = true;
System.out.print(B); //true
System.out.print(5>3); //true
System.out.print(3==3); //true
}
}
留言
張貼留言