1.Java基礎之識別符號命名法、八大基本資料型別三大引用型別、運算子以及程式分支結構、方法的定義過載遞迴
一、基礎匯入:
1.java採用Unicode編碼,16進位制編碼,支援世界上所有語言(GBK,gb2312,Unicode,UTF-8,ISO-8859-1)。
多執行緒---> c-編譯型語言
Test.java--原始檔,原始檔必須與主類名(public class Test)保持一致。
- 一個原始檔只有一個主類。
- 主方法存在於主類中。
2.java程式編譯-執行流程:
編譯:javac Test.java -> Test.class (若程式中出現中文,編譯時加上-encoding UTF-8)
執行:java Test
- 命令列向主方法傳參:java Test 引數1 引數2 ……
3.
- JDK:JDK開發程式包,包含JRE,多了編譯器javac以及除錯工具JConsole、jstack,針對java程式設計師。
- JRE:是執行java程式的環境,包含JVM以及java核心類庫,針對使用java程式的使用者。
- JVM:java虛擬機器(java移植性的關鍵)
二、java資料型別與運算子
1.java註釋
- ①單行註釋://
- ②多行註釋:/* */
- ③文件註釋:/* * */
2.java識別符號
駝峰命名法:
①小駝峰:用於方法名、普通變數名稱
- 若識別符號室友單個單片語成,則全小寫:int age = 5;
- 若識別符號是由多個單片語成,除了第一個單詞全小寫外,第二個單詞以及之後的單詞首字母大寫:int myAge = 10;
②大駝峰:用於類命名
類名是以大寫字母開頭的單詞。
- 若類名由多個單片語成,則每個單詞首字母大寫。
如:
class Test{
...
}
class MyTest{
...
}
③常量:單詞全大寫,多個單詞間以_間隔
如:
final int MY_AGE = 10;
3.java資料型別劃分:
(1)八大基本資料型別:資料型別預設值需要結合類來觀察,主方法變數必須先賦值再使用,不存在預設值。
①數值型
Ⅰ.整型(預設值為0):
byte(-128---127)-->1位元組、short、int(-2^31---2^31)-->4位元組、long(-2^63---2^63)
注意:
- 在java中,任何一個整型變數均為int型別!!
- 整型常量如果要宣告為long型別,需要在數字後加上l或L(推薦)。
- 型別提升:小的資料型別與大的資料型別進行數值運算時,小的資料型別會自動提升為大的資料型別。eg:10+1L;
- 大的資料型別轉為小的資料型別,必須強轉。但是強轉可能會丟失資料。
byte與int之間的關係:
- 整型常量在byte型別的儲存範圍內,可以直接賦值給byte變數,無需強轉;
- 整型常量值超出byte範圍,必須強轉;
- 整型變數無論值是否在byte範圍內,都要強轉。
Ⅱ.浮點型(預設值為0.0):float、double
注意:
- 小數常量預設是double型別。
- 要定義float型別的常量,在小數後加 f/F。eg:float age = 1.1f;
小結:描述整型用int、小數用double,long一般用於描述日期、時間、記憶體、檔案大小,IO處理用byte。
②字元型:用' '表示。
Ⅰ.char與int可以相互轉換。
- char轉int直接賦值,int轉char需要強轉。
- 字元型數字與整型數字絕對不相等。
- char一般用於描述中文(基本忽略),預設值為\u0000。
Ⅱ.String類初步認識:用" "表示。
- 只要出現字串,其他任何型別與字串“+”,都會先轉為字串再進行字串的拼接操作。
小結:描述單個字元用char、多個字元用String類。
③布林型:boolean(預設值為false)。
(2)三大引用型別:陣列、類、介面(預設值為null)。
4、運算子
(1)自增自減運算子 ++ 、-- ,如a++、++a;a--、--a。
(2)三目運算子(*****):
布林表示式?數值1:數值2;
如:'哈'>10; //true,字元型與整型數字可以直接比較。
(3)比較運算子:> 、 <、>=、<=
(4)邏輯運算子:
①邏輯或:|、||
在if語句中使用 | 時,表示多個條件都要判斷,即便有表示式返回true,剩餘條件還要繼續判斷。使用 || (短路非) 時,只要有條件返回true,剩餘條件不再判斷。
②邏輯與:&、&&
注意:java邏輯運算就使用短路與、短路非。
(5)位運算子:&、|、^、~、>>(除2)、<<(乘2)
5、java程式結構
(1)分支結構
①if...else if...else if..
②switch(數字|列舉|字元|字串)
不帶break的case語句會將滿足條件的分支統統走一遍。
③for(1初始化條件;2迴圈結束判斷;3修改迴圈條件){
//4迴圈體程式碼
} //執行順序為1、2、4、3
迴圈控制條件:
- continue:跳出本次迴圈直接進入下一次迴圈。
- break:跳出整個迴圈。
(2)方法的定義:直接在主方法中呼叫的方法
public static 方法返回值 方法名([引數型別 變數...]){
方法體程式碼;
...
[return 返回值;]
}
注:void關鍵字宣告的方法沒有返回值,可以用return;結束函式的呼叫
(3)方法的過載(********)
定義:方法名稱相同,引數的個數、型別、順序不同,與方法返回值無關!
編碼規範:過載函式的返回值型別一定保持相同!
(4)方法的遞迴