1. 程式人生 > 實用技巧 >【Java學習筆記一】——基本程式設計結構

【Java學習筆記一】——基本程式設計結構

宣告:本文章內容主要摘選自尚矽谷宋紅康Java教程、《Java核心卷一》、《Java語言程式設計-基礎篇》,示例程式碼部分出自本人,更多詳細內容推薦直接觀看以上教程及書籍,若有錯誤之處請指出,歡迎交流。

一、資料型別

1.整型

整型用於表示沒有小數部分的數值,它允許是負數。Java提供了4種整型:

型別 儲存需求 取值範圍
int 4位元組 -2147483648 - 2147483647
short 2位元組 -32768 - 32767
long 8位元組 -9223372036854775808 - 9223372036854775807
byte 1位元組 -128 - 127

注:長整型long數值有一個字尾L或1(如4000000000L)。

從Java7開始,加上字首Ob或0B就可以寫二進位制數。例如,0b1001就是9。另外,同樣是從Java7開始,還可以為數字字面量加下劃線,如用1000000(或0b1111_01000010_0100_0000)表示一百萬。這些下劃線只是為了讓人更易讀。Java編譯器會去除這些下劃線。

2.浮點型別

型別 儲存需求 取值範圍
float 4位元組 大約±3.40282347E+38F(有效位數為6~7位)
double 8位元組 大約±1.79769313486231570E+308(有效位數為15位)

注:float型別的數值有一個字尾F或f(例如,3.14F)。沒有後綴F的浮點數值(如3.14)預設為double型別。當然,也可以在浮點數值後面新增字尾D或d(例如,3.14D)。

3.char型別

char型別原本用於表示單個字元。不過,現在情況已經有所變化。如今,有些Unicode字元可以用一個char值描述,另外一些Unicode字元則需要兩個char值。
char型別的字面量值要用單引號括起來。例如:'A'是編碼值為65所對應的字元常量。
它與"A"不同,"A"是包含一個字元A的字串。char型別的值可以表示為十六進位制值,其範圍從\u0000到\Uffff。例如:\u2122表示註冊符號(TM),\u03C0表示希臘字母π。
特別的,對於char型的獲取,Scanner沒有提供相關的方法。
故只能獲取一個字串作為獲取char型別:

System.out.println("請輸入你的性別:(男/女)");
String gender = scan.next();
char genderChar = gender.charAt(0);//獲取索引為0位置上的字元
System.out.println(genderChar);

4.boolean型別

boolean(布林)型別有兩個值:false和true,用來判定邏輯條件。整型值和布林值之間不能進行相互轉換。

5.初始化值

若宣告變數後未賦值,系統往往會有一個預設值
int:0 short:0 long :0L byte:0 float:0.0f double:0.0d
char:  '/uoooo'(null) boolean:false

二、字串

PS:後面會學習到String類,所以此處只是以簡單介紹為主

從概念上講,Java字串就是Unicode字元序列。例如,串"Java\u2122"由5個Unicode字元J、a、v、a和TM。Java沒有內建的字串型別,而是在標準Java類庫中提供了一個預定義類,很自然地叫做String。每個用雙引號括起來的字串都是String類的一個例項:

String e = "";//空字串
String greeting = "Hello";

三、陣列

陣列是一種資料結構,用來儲存同一型別值的集合。通過一個整型下標可以訪問陣列中的每一個值。例如,如果a是一個整型陣列,a[i]就是陣列中下標為i的整數。
在宣告陣列變數時,需要指出陣列型別(資料元素型別緊跟[])和陣列變數的名字。下面聲明瞭整型陣列a:int[] a;
不過,這條語句只聲明瞭變數a,並沒有將a初始化為一個真正的陣列。應該使用new運算子建立陣列。如:int[] a = new int[100];

1.for each迴圈

Java有一種功能很強的迴圈結構,可以用來依次處理陣列中的每個元素(其他型別的元素集合亦可)而不必為指定下標值而分心。
這種增強的for迴圈的語句格式為:for(variable:collection) statement
如:for(int element:a)
System. out. println(element);
等於for(int i=0;i< a. length;i++)
System. out. println(a[i]);
列印陣列a的每一個元素,一個元素佔一行。對比可知,for each迴圈語句顯得更加簡潔、更不易出錯(不必為下標的起始值和終止值而操心)。

2.陣列拷貝

在Java中,允許將一個數組變數拷貝給另一個數組變數。這時,兩個變數將引用同一個陣列:
int[] luckyWumbers = smallPrimes;
luckyWumbers[5] = 12; //同時會使得smallPrimes[5]也變成12
所謂的拷貝只是將地址傳遞,並沒有重新為新陣列變數申請記憶體空間

3.陣列排序

要想對數值型陣列進行排序,可以使用Arrays類中的sort方法:
Int[] a = {12, 1, 5, 9, 10, 20, 3, 11};
Arrays.sort(a);
這個方法使用了優化的快速排序演算法。快速排序演算法對於大多數資料集合來說都是效率比較高的。Arrays類還提供了幾個使用很便捷的方法,可以下載Java的API文件詳細觀看。

此筆記僅針對有一定程式設計基礎的同學,且本人只記錄比較重要的知識點,若想要入門Java可以先行觀看相關教程或書籍後再閱讀此筆記。

最後附一下相關連結:
Java線上API中文手冊
Java platform se8下載
尚矽谷Java教學視訊
《Java核心卷一》