20190301 java資料型別劃分(阿里雲大學)

YuMug發表於2019-03-01

1. 若要開啟的.class檔案在D:\mydemo,但是命令列此時指向E:\,則應該在命令列中做E:\SET CLASSPATH=d:\mydemo指令操作,再做E:>java hello
得出結論,當時用java命令時,先從CLASSPATH中取得.class檔案的位置,再進行類的載入操作。
CLASSPATH是一個很重要的屬性,在複雜的工程中經常用到,需要著重考慮。
2. 程式註釋
在這裡插入圖片描述
例如
在這裡插入圖片描述
3. 標誌符和關鍵字
在這裡插入圖片描述
java中基本用不到的關鍵字:goto、const
java中特殊含義的單詞:null、true、false
在這裡插入圖片描述

4. java資料型別劃分
在java中資料型別一共分為兩大類:
1.基本資料型別:
數值型:表示整數或小數;
整型:byte、short、int、long ———— 預設值0
浮點型:float、double ———— 預設值0.0

字元型:char; ———— 預設值‘\u0000’
布林型:boolean ———— 預設值fulse

**2.引用資料型別:陣列、類、介面;    ————  預設值null**

在這裡插入圖片描述
個人建議:
表示整型都用int,小數用double
long一般描述日期時間、記憶體或檔案大小(位元組);
byte一般用在需要編碼轉換或進行二進位制轉換的地方
char一般在描述中文使用(基本都會忽略)
boolean在描述程式邏輯時使用。
5. 資料溢位
但資料超出資料型別的極限,資料會出現偏差,例如
若某資料型別最小值為-7,-7的二進位制為1111,負數在系統中以補碼形式儲存,即為1001。當執行-7-1計算時,正確值為-8,但在java中得到結果為8。原因為計算機中,1001-1=1000,取原碼(取反加一,補碼的原碼為補碼的補碼)為10000=8(十進位制)。
任何的整數其預設型別都是int,當資料超過極限時,需要將該數表示為long型,作如下運算元據強制轉換

第一種
long num = 2147483648L;
第二種
int num = 10;
byte data = (byte)num;

沒事幹不做資料強制轉換。
除法計算注意用float或double型。
6. 字元型
在這裡插入圖片描述
大小寫之間差32.。java使用Unicode編碼,而不使用ASCII碼,但具有ASCII碼的部分內容。Unicode碼可以儲存任何文字資訊,包括中文。
範例:儲存中文字元:在這裡插入圖片描述
神奇的java:在這裡插入圖片描述
7. 布林型
一般布林型表示邏輯結果。
在這裡插入圖片描述
java中沒有0(錯)、1(對)的概念,只能使用true、false。
8. 初見字串
char可以描述的那個字元,string來描述一串字元。
但string不是基本資料型別,是一個引用資料型別。但是可以按照基本使用模式進行套用。兩個string之間可以使用“+”,表示連線,而非加法。
在這裡插入圖片描述
當“+”在數學計算和連線兩個功能間混淆時:在這裡插入圖片描述
所有資料型別,只要與string型別的變數做“+”操作,則所有型別都變為string。這時若仍需得到正確的計算結果,則需要用“()”解決問題。在這裡插入圖片描述
9. 基礎數學運算子
在這裡插入圖片描述
10. 三目運算
在這裡插入圖片描述
11. 關係運算子
在這裡插入圖片描述
返回結果都是boolean型別。
在這裡插入圖片描述
12. 邏輯運算

!、&、 |、&&、||
其中,Java中&&和&都是表示與的邏輯運算子,都表示邏輯運輸符and,當兩邊的表示式都為true的時候,整個運算結果才為true,否則為false。

&&的短路功能,當第一個表示式的值為false的時候,則不再計算第二個表示式;&則兩個表示式都執行。

&可以用作位運算子,當&兩邊的表示式不是Boolean型別的時候,&表示按位操作。

   &&第一個表示式為false
        int i = 0;
        if(i == 3  && ++i > 0 )
        {
        }
        System.out.println("i = " + i);
     console:i = 0 ==>第二個表示式沒有執行

  
  &第一個表示式為false
        int i = 0;
        if(i == 3  & ++i > 0 )
        {
        }
        System.out.println("i = " + i);
        console:i = 1 ==>第二個表示式執行了

另有“||”: 如果左邊計算後的運算元為true,右邊則不再執行,返回true;

“|”:前後兩個運算元都會進行計算。也就是說:“|”不存在短路。

13.位運算
&、|、<<、>>
14.程式三種形式:順序結構、分支結構、迴圈結構
分支結構:
if。。。。else
switch+case+break

迴圈結構:
while(){

};

do{

}while();

和for迴圈在這裡插入圖片描述

15.迴圈控制
continue:遇執行此語句之後迴圈體後面的程式碼不執行,直接跳到下一次迴圈在這裡插入圖片描述
break。

16.方法
指的是被重複呼叫的程式碼塊。定義形式:
在這裡插入圖片描述
無引數無返回值定義無引數無返回值定義
有引數無返回值有引數無返回值
有引數有返回值
在這裡插入圖片描述
當void,即無返回值時,return的用法在這裡插入圖片描述
17.方法過載
方法名稱相同,引數的型別或個數不同。
範例:實現方法過載,將根據引數的型別和個數的不同執行不同的方法體
在這裡插入圖片描述
在進行方法過載時,要求返回值型別一定要相同。
在這裡插入圖片描述
上圖證明System.out.printfln是一個被過載的方法

18.方法的遞迴呼叫

範例:求1~100累加
在這裡插入圖片描述
範例:60!
在這裡插入圖片描述
使用遞迴主要是一個方法可以執行的操作很多,而且結構要好。遞迴是資料結構的第一步。

題外話:
1.我想的永遠比我做的那個要好,所以沒有什麼成就感。
VS
你遠比你想的更強大。

相關文章