1. 程式人生 > >《Java程式設計》第2周學習總結

《Java程式設計》第2周學習總結

201711671201《Java程式設計》第2周學習總結

教材學習內容總結

第2章:基本資料型別與陣列

2.1 識別符號與關鍵字

2.1.1 識別符號

用來標識類名變數名方法名型別名陣列名檔名有效字元序列稱為識別符號

識別符號由字母下劃線美元符號數字組成,長度不受限制。

識別符號的第一個字元不能數字字元。

識別符號不能關鍵字也不能truefalsenull

注意:識別符號中的字母區分大小寫的。

2.1.2 Unicode字符集

Unicode字符集的前128個字元剛好是ASCII碼

2.1.3 關鍵字(50個) (都是小寫!

)

abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while

2.2 基本資料型別(也稱簡單資料型別):邏輯型別整數型別字元型別浮點型別

2.2.1 邏輯型別:boolean型

常量:true,false。

變數:使用關鍵字boolean來宣告邏輯變數,宣告時也可以賦給初值

2.2.2 整數型別:(區別:佔有的位元組數不同。)

1、byte型(位元組型)

變數:使用關鍵字byte來宣告byte型變數。

常量:Java中不存在byte型常量的表示法,但可以把一定範圍內的int型常量賦值給byte型變數。

對於byte型變數,分配1個位元組記憶體,佔8位,因此byte型變數的取值範圍是-2e7~2e7-1。

如果需要強調一個整數是byte型資料時,可以使用型別轉換運算

的結果來表示,例如:(byte)-12,(byte)28;

2、short型(短整型)

變數:使用關鍵字short來宣告short型變數。

常量:和byte型類似,Java中也不存在short型常量的表示法,但可以把一定範圍內的int型常量賦值給short型變數。

對於short型變數,分配2個位元組記憶體,佔16位,因此short型變數的取值範圍是-2e15~2e15-1。

如果需要強調一個整數是short型資料時,可以使用強制轉換運算的結果表示,例如:(short)-12,(short)28;

3、int型(整型)

變數:使用關鍵字int來宣告int型變數,宣告時也可以賦給初值

常量:123,6000(十進位制),077(八進位制),0x3ABC(十六進位制)。

對於int型變數,分配4個位元組記憶體,佔32位,因此,int型變數的取值範圍是:-2e31~2e31-1

4、long型(長整型)

變數:使用關鍵字long來宣告long型變數。

常量:long型常量用字尾L來表示,例如108L(十進位制)。

對於long型變數,分配8個位元組記憶體,佔64位,因此long型變數的取值範圍是-2e63~2e63-1。

注:Java沒有無符號的byte,short,int和long。

常量0開頭時為八進位制0x開頭時為十六進位制

2.2.3 字元型別:char型

變數:使用關鍵字char來宣告char型變數。

常量:即用單引號(需用英文輸入法輸入)括起的Unicode表中的一個字元。

對於char型變數,分配2個位元組記憶體,佔16位最高位不是符號位,沒有負數的char。char型變數的取值範圍是0~65535。

有些字元(如回車符)不能通過鍵盤輸入到字串或程式中,這時就需要轉義字元常量,例如:\n(換行)\b(退格)\t(水平製表)\'(單引號)\"(雙引號)\\(反斜線)等。

在Java中,可以用字元在Unicode表中排序位置的十六進位制轉義(需要用u做字首)來表示該字元,其一般格式為\u****

注:Java中的char型資料一定是無符號的,而且不允許使用unsigned來修飾所宣告的char型變數。

2.2.4 浮點型別:

1、float型(單精度浮點型)

變數:使用關鍵字float來宣告float型變數。

常量:21379.987F,231.0f(小數表示法),2e40f(2乘10的40次方,指數表示法)。特別注意:常量後面必須有後綴f或F

float變數在儲存float型資料時保留8位有效數字

對於float型變數,分配4個位元組記憶體,佔32位

2、double型(雙精度浮點型)

變數:使用關鍵字double來宣告double型變數。

常量:2389.539d,0.05(小數表示法),1e-90(1乘10的-90次方,指數表示法)。後面可以有字尾d或D,但允許省略

double變數在儲存double型資料時保留16位有效數字

對於double型變數,分配8個位元組記憶體,佔64位

2.3 型別轉換運算

基本資料型別按精度從低到高排列:byte  short  char  int  long  float  double 

當把級別的變數的值賦給精度級別的變數時,系統自動完成資料型別的轉換。

當把級別的變數的值賦給精度級別的變數時,必須使用型別轉換運算(強制),格式為:(型別名)要轉換的值; 

高精度常量賦值給低精度變數超出變數的取值範圍,型別轉換運算會導致精度的損失

一個常見的錯誤是在把一個double型常量賦值給float型變數時沒有進行型別轉換運算,( 例如:float x=12.4; )將導致語法錯誤,編譯器將提示“possible loss of precision”。正確的做法是:float x=12.4F;float x=(float)12.4;

2.4 輸入、輸出資料

2.4.1 輸入基本型資料

Scanner是JDK1.5新增的一個類,可以使用該類建立一個物件:Scanner reader = new Scanner(System.in); (鍵盤輸入),然後reader物件呼叫下列方法:nextBoolean()nextByte()nextShort()nextInt()nextLong()nextFloat()nextDouble()

2.4.2 輸出基本型資料

System.out.println() 或 System.out.print() 可輸出串值、表示式的值,區別:前者輸出資料後換行,後者不換行。

允許使用並置符號+變數、表示式或一個常數值一個字串並置一起輸出。

注意:在使用System.out.println()或 System.out.print()輸出字串常量時,不可以出現“回車”,否則無法通過編譯。

輸出格式:%d:輸出int型別資料。%c:輸出char型資料。%f:輸出浮點型資料,小數部分最多保留6位。%s:輸出字串資料。%md:輸出的int型資料佔m列。%m.nf:輸出的浮點型資料佔m列,小數點保留n位。

2.5 陣列

陣列是相同型別的變數按順序組成的一種複合資料型別。稱這些相同型別的變數為陣列的元素或單元

建立陣列2個步驟宣告陣列為陣列分配變數

2.5.1 宣告陣列

宣告陣列包括陣列變數的名字(簡稱陣列名)陣列的型別

宣告一維陣列2種格式:陣列的元素型別  陣列名[]; 或  陣列的元素型別  []  陣列名;  。

宣告二維陣列2種格式:陣列的元素型別  陣列名[][]; 或  陣列的元素型別  [][]  陣列名;  。

可以一次宣告多個數組,例如:int [] a,b;

注:Java不允許在宣告陣列中的方括號內指定陣列元素的個數。

2.5.2 為陣列分配元素

格式:陣列名 = new 陣列元素的型別[陣列元素的個數]; 

陣列屬於引用型變數,陣列變數中存放著陣列的首元素的地址,通過陣列名加索引使用陣列的元素。

宣告陣列和建立陣列可以一起完成,例如:float boy[] = new float[4]; 。構成二維陣列的一維陣列不必有相同的長度,在建立二維陣列時可以分別指定構成該二維陣列的一維陣列的長度,例如:int a[][] = new int[3][]; a[0] = new int[6]; a[1] = new int[12]; a[2] = new int[8]; 。

注:Java允許使用int型變數的值指定陣列的元素的個數,例如:int size =30;  double number[]=new double[size];

2.5.3 陣列元素的使用

注意:索引從0開始,使用陣列時必須謹慎,防止索引越界

2.5.4 length的使用

陣列的元素的個數稱作陣列的長度。對於一維陣列,“陣列名.length”的值就是陣列中元素的個數;對於二維陣列“陣列名.length”的值是它含有的一維陣列的個數

2.5.5 陣列的初始化

建立陣列後,系統會給陣列的每個元素一個預設的值;在宣告陣列的同時也可以給陣列的元素一個初始值;也可以直接用若干個一維陣列初始化一個二維陣列,這些一維陣列的長度不盡相同。

2.5.6 陣列的引用

陣列屬於引用型變數,因此兩個相同型別的陣列如果具有相同的引用,它們就有完全相同的元素

注意:對於char型陣列a,System.out.println(a)不會輸出陣列a的引用而是輸出陣列a的全部元素的值。如果想輸出char型陣列的引用,必須讓陣列a和字串做並置運算

2.6 應用舉例

使用折半法判斷一個數據是否在一個數組中。

教材學習中的問題和解決過程

並置符號“+”的用法。

程式碼除錯中的問題和解決過程

暫無。

感悟

有空多看書,多嘗試敲程式碼,才有可能進步。

學習進度條

  程式碼行數(新增/累積) 部落格量(新增/累積)  學習時間(新增/累積) 重要成長 
目標 5000行 30篇 400小時  
第二週 50/70 1/2 1/2