首先說一下,為什麼學習Java。主要是因為要用到這個東西,現場有一個裝置,ABB的板型儀,裡面用的是Java做的後台 ,利用Java伺服器與
DSP晶片做資料擷取分析功能,DSP進行高速資料擷取,然後用Java做資料分析。所以需要想學習這個東西,來瞭解DSP和Java通訊,以及和Win32
平台通訊的一些相關內容。
【Java外殼類】
我感覺這個Java和C#有點類似,首先什麼也不管,就需要定義一個類。我們首先來看這個類。
1 /* 2 This program test the basic data type 3 4 1、boolean 5 2、byte 6 3、short 7 4、int 8 5、long 9 6、float10 7、double11 8、char12 13 */14 15 16 17 public class IntTest //因為Java是純物件導向的程式設計語言,所有的可執行代碼均需要在類中,18 //因此這裡必須定義一個類.19 //這裡類作為一個載入“程式邏輯”的“容器”20 21 {22 public static void main(String[] args) //Java中所有的函數都屬於某個類,因此main方法需要一個”外殼類“
我們看到這個東西,與C++還是不一樣的。
【Java boolean類型】
在Java中提供了一種表示邏輯結果的資料類型:boolean
public class IntTest //因為Java是純物件導向的程式設計語言,所有的可執行代碼均需要在類中, //因此這裡必須定義一個類. //這裡類作為一個載入“程式邏輯”的“容器” { public static void main(String[] args) //Java中所有的函數都屬於某個類,因此main方法需要一個”外殼類“ { //首先測試boolean類型 boolean YesOrNo=true; if(YesOrNo) System.out.println("Yes");
我們可以看到,這裡布爾類型與C語言中的布爾類型非常類似,但是有一點不同的是,C語言中“非零即True,零等價於False”, 而在Java中不能這樣認為,因為Java中不支援
布爾類型和其他類型間的轉換。這一點必須注意。如所示:
【Java byte類型】
在Java中提供了一種單位元組大小的資料類型:byte;這種資料類型,用來表示小數值時比較有效,節省記憶體空間;但是不利於CPU處理。
//測試byte類型 byte OverFlow=(byte)300; System.out.println(OverFlow); //因為在Java中byte表示的大小從 -128 ~ 127 共256個狀態,同時 //進行type cast時會進行截取,所以這裡輸出是 44 OverFlow=300 & 0xFF; System.out.println(OverFlow); //可以看到在整型資料轉換時,可以根據儲存特點進行處理,與C語言類似 System.out.println("The max value of byte is:" + 0x7F); System.out.println("The min value of byte is:" + ~0x7F); //可以看到這裡有點特殊,在C語言中提供了宏來表示max和 //min值,在Java中有沒有呢?
通過測試我們發現,byte的數值範圍規定是: ~0x7F - 0x7F; 而且這裡還可以像C語言中一樣進行數值截取; 我不知道大家怎樣看待
強制類型轉換,我感覺用 “按位與” 更能體現電腦的電腦制。
這裡有一點值得探討一下,為什麼-256是~0xFF呢,而且~0x7F是-128? 我目前感覺有點奇怪。上面的程式執行的結果如下所示:
這裡我知道Double類型提供了一些常量: Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NaN來表示最大值
最小值和無窮大,但是byte有沒有提供這樣的類庫支援呢?
【Java Short類型】
short類型與C語言中16位的有符號short類型一致,表示的值的範圍:-327687 ~ 32767. 如下所示:
//測試short類型 short shortTestVar=0x7FFF; System.out.println("The max value of short is:"+ shortTestVar); System.out.println("The min value of short is:"+ ~shortTestVar);
這段代碼啟動並執行結果如所示:
【Java int類型】
int類型與C語言中有符號int類型一致(32位的int型),表示值的範圍是: 0x80000000 ~0x7FFFFFFF(電腦內標記法);
//測試int類型 int intTestVar=0x80000000; System.out.println("The max value of int is:"+ ~intTestVar); System.out.println("The min value of int is:"+ intTestVar);
運行結果如所示:
【Java long類型】
long類型與C語言中long int類型一致, 表示的值範圍是:0x8000 0000 0000 0000 ~ 0x7FFF FFFF FFFF FFFF(電腦內標記法).
//測試long資料類型 long longTestVar=0x8000000000000000L; System.out.println("The max value of long is:"+ ~longTestVar); System.out.println("The min value of long is:"+ longTestVar);
運行結果如所示:
long資料類型有一點需要說明:那就是如果要表示一個long型的整數,則必須在數字後面加上一個“L”。
【Java整型數小結】
Java中沒有無符號數的概念,所有的整形資料均是有符號數;這一點是與C/C++不一樣的地方,需要注意。
預設情況下整型字面值是int類型的;這一點很重要,否則容易出錯;如示:
【Java double資料和float資料】
float資料佔用4位元組,而double資料佔用8位元組;同時float資料類型的有效位元是6~7位;double有效位是15位;在沒有特別說明的情況下,浮點
數字面值是double型的;如果要表示float型的浮點數字面值,則需要在字面值後面加F,如: 3.1415926F。