Java學習之路(基礎一)
阿新 • • 發佈:2018-11-09
基礎知識
關鍵字
-
(1)被Java語言賦予特定含義的單詞 (2)特點:全部小寫。 (3)注意事項: A:goto和const作為保留字存在。 B:類似於Notepad++這樣的高階記事本會對關鍵字有特殊顏色標記
識別符號
-
常見的命名規則(見名知意) A:包 全部小寫 單級包:小寫 舉例:package,Math。 多級包:小寫,並用.隔開 舉例:cn.itcast;com.baidu B:類或者介面 一個單詞:首字母大寫 舉例:Student,Demo 多個單詞:每個單詞首字母大寫 舉例:HelloWorld,StudentName C:方法或者變數 一個單詞:首字母小寫 舉例:name,main 多個單詞:從第二個單詞開始,每個單詞首字母大寫 舉例:studentAge,showAllNames() D:常量 全部大寫 一個單詞:大寫 舉例:PI 多個單詞:大寫,並用_隔開 舉例:STUDENT_MAX_AGE
註釋
-
(1)就是對程式進行解釋說明的文字 (2)分類: A:單行註釋 // B:多行註釋 /**/ C:文件註釋 /** */ (3)註釋的作用 A:解釋說明程式,提高了程式碼的閱讀性。 B:可以幫助我們除錯程式。 後面我們會講解一個更高階的一個除錯工具
資料型別
-
(1)Java是一種強型別語言,針對每種資料都提供了對應的資料型別。 (2)分類: A:基本資料型別:4類8種 B:引用資料型別:類,介面,陣列。 (3)基本資料型別 A:整數 佔用位元組數 byte 1 short 2 int 4 long 8 B:浮點數 float 4 double 8 C:字元 char 2 D:布林 boolean 1 注意: 整數預設是int型別,浮點數預設是double。 長整數要加L或者l。 單精度的浮點數要加F或者f。
資料型別轉換
-
(1)boolean型別不參與轉換 (2)預設轉換 A:從小到大 B:byte,short,char -- int -- long -- float -- double C:byte,short,char之間不相互轉換,直接轉成int型別參與運算。 (3)強制轉換 A:從大到小 B:可能會有精度的損失,一般不建議這樣使用。 C:格式: 目標資料型別 變數名 = (目標資料型別) (被轉換的資料); (4)思考題和麵試題: A:下面兩種方式有區別嗎? float f1 = 12.345f; float f2 = (float)12.345; B:下面的程式有問題嗎,如果有,在哪裡呢? byte b1 = 3; byte b2 = 4; byte b3 = b1 + b2; byte b4 = 3 + 4; C:下面的操作結果是什麼呢? byte b = (byte)130; D:字元參與運算 是查詢ASCII裡面的值 'a' 97 'A' 65 '0' 48 System.out.println('a'); System.out.println('a' + 1); E:字串參與運算 這裡其實是字串的連線 System.out.println("hello"+'a'+1); System.out.println('a'+1+"hello"); System.out.println("5+5="+5+5); System.out.println(5+5+"=5+5");
異或運算子
-
swap資料的三種方式: 第一種: int temp; temp = a; a = b; b = temp; 第二種: a = a ^ b; b = a ^ b; a = a ^ b; 第三種: a = a + b; b = a - b; a = a - b;
switch條件表示式資料型別
-
資料型別在1.5和1.7版本之後增加了string等資料型別,目前幾乎支援所有的資料型別。
二維陣列
-
二維陣列: 第二維陣列可以不用給出個數,只需要給出第一維的即可。 第一種: DataType ArrayName[][] = new DataType[m][n]; 第二種: DataType[][] ArratName = new DataType[m][n]; 第三種: DataType[] ArrayName[] = new DataType[m][n]; 第四種: DataType[][] ArratName = {{...}{...}{...}};
函式中引數傳遞
-
Java中的引數傳遞只有值傳遞。 基本型別:形式引數的改變不影響實際引數; 引用型別:形式引數的改變會影響實際引數,陣列屬於引用型別。
Java程式的開發,設計和特徵
-
開發:就是不斷的建立物件,通過物件呼叫功能; 設計:管理與維護物件之間的關係; 特徵:封裝 繼承 多型。
成員與區域性變數
-
(1)在類中的位置不同: 成員變數:類中方法外; 區域性變數:方法定義中或者方法宣告上。 (2)在記憶體中位置不同: 成員變數:在堆記憶體中; 區域性變數:在棧中。 (3)生命週期不同: 成員變數:隨著物件的建立而存在,隨著物件的消失而消失。 區域性變數:隨著方法的呼叫而存在,隨著方法呼叫完成而結束。 (4)初始化值不同: 成員變數:有預設值; 區域性變數:沒有預設值,需要定義。
類作為形式引數:
-
可以理解為需要一個該類的資料型別,而類是抽象的概念,也就是說本質是需要該類的一個物件例項。
匿名物件
-
在需要僅僅使用一次的時候,可以建立一個無名稱的物件。eg:new studentDemo().(new student()).show().
封裝
-
(1)隱藏具體的實現細節,提供公共的方法。 (2)提高程式碼的複用性,安全性。 (3)設計原則:隱藏具體的實現細節,提供公共的訪問方法。 (4)private是封裝的一種表現形式。
this
-
代表當前類的引用物件,哪個物件呼叫方法,該方法內部的this就代表那個物件。
構造方法
-
(1)用於物件資料的初始化。 (2)方法名與類名相同;沒有返回值,連void也沒有;但可以寫為return。任何的void返回型別都可以寫作return;
static特性
-
可以修飾成員變數和成員方法
-
被類的所有物件共享,可以通過類名呼叫, for example:
class student{ public static String name = "Tom"; } tudent s = new student(); s.name = "sam"; System.out.println(s.name); student ss = new student(); System.out.println(ss.name); System.out.println(student.name); console Output: sam sam sam
-
靜態注意:
在靜態方法中沒有this物件。 靜態只能訪問靜態。
-
靜態變數與成員變數的區別:
- 所屬不同:
靜態變數:屬於類,類變數。
成員變數:屬於物件。需要例項。 - 記憶體位置:
靜態變數:方法區的靜態區。
成員變數:堆記憶體。 - 生命週期:
靜態變數:隨著類的載入而載入,隨著類的消失而消失。
成員變數:隨著物件的建立而存在,隨著物件的消失而消失。 - 呼叫不同:
靜態變數:可以通過物件名也可以通過類名呼叫。
成員變數:只能通過物件名稱呼叫。 - main方法靜態:
public:許可權修飾符,在jvm中的許可權最大。
static:不需要建立物件即可呼叫。
void:返回到jvm,是沒有意義的。
main:普通的函式名,一般作為程式的入口。
String[] args:可以接受資料,提高程式的靈活性,如:java test JVM
- 所屬不同: