分分鐘快速瞭解Java入門,不看可惜了


分分鐘快速瞭解Java入門,不看可惜了

java,3d 渲染,粗糙的路牌集合


你好,世界!

源代碼組織方式;轉發+關注,私信小編“資料”免費分享資料給你!

Java程序由package+class組成,package對應目錄的相對路徑,class對應文件,如

E:\\Workspaces\\MyEclipse

10\\JavaStudy\\src\\com\\happyframework\\javastudy\\hello\\Hello.java


分分鐘快速瞭解Java入門,不看可惜了


關於class有如下幾點規則:

  1. 文件的名字必須和class的名字一致(public級別的class名字)。
  2. 文件必須只包含一個public訪問基本的class(可以包含多個非public級別的class)。
  3. package名字必須和目錄一致。
  4. 1
  5. 入口方法


App.java


分分鐘快速瞭解Java入門,不看可惜了


2

最終的項目結構


分分鐘快速瞭解Java入門,不看可惜了


3

數據類型

8種原子類型

  1. 整數類型:byte、short、int和long。
  2. 小數類型:float和double。
  3. 字符類型:char。
  4. 布爾類型:bool。

除此之外的是interface、class和array。

小數類型的常量默認是double類型,聲明float類型的常量需要使用F作為後綴。

分分鐘快速瞭解Java入門,不看可惜了


4

運算符

  1. 算術運算符:+、-、*、/ 和 %,兩個整數相除,結果還是整數。
  2. 賦值運算符:=、+=、-=、*=、/=、%=、&=、|=、~=、^=、>>=、<<= 、 <<<=、++ 和 --。
  3. 比較運算符:==、!=、>、>=、< 和 <=。
  4. 邏輯運算符:&&、|| 和 !。
  5. 位運算符:&、|、~、^、>>、<< 和 <<

5

字符串

String是擁有“值語義”的引用類型,字符串常量實現了“享元模式”,equals會按照內容進行比較,==按照地址比較。

分分鐘快速瞭解Java入門,不看可惜了


為了高效的修改字符串Java引入了StringBuffer。

分分鐘快速瞭解Java入門,不看可惜了


6

數組

DataType[] name 或 DataType name[]。

初始化語法

DataType[] name = new DataType[length]。

DataType[] name = new DataType[] { element1, element2, ...elementn }。

DataType[] name = { element1, element2, ...elementn }。

分分鐘快速瞭解Java入門,不看可惜了


多維數組

只有不等長多維數組DataType[][],沒有DataType[xxx, xxx]。

控制結構

  1. 條件:if-else if-else、switch-case-default和三元運算符(?:)。
  2. 循環:while、do-while、for和foreach。
  3. Labeled block。


分分鐘快速瞭解Java入門,不看可惜了


最近覺得label是個不錯的東西,最起碼多了一種選擇。

方法

Java中所有的賦值和方法調用都是“按值“處理的,引用類型的值是對象的地址,原始類型的值是其自身。

Java支持變長方法參數。

分分鐘快速瞭解Java入門,不看可惜了


7


分分鐘快速瞭解Java入門,不看可惜了


注意:調用自身的構造方法是用this(xxx,xxx,...)來完成,且必須位於第一行。

靜態成員

Java中類似靜態構造方法的結構,稱之為:靜態初始化代碼塊,與之對應的是實例初始化代碼塊,見下例:

分分鐘快速瞭解Java入門,不看可惜了


8

繼承

繼承使用 extends,抽象類和抽象方法使用abstract聲明,向下轉型使用 (ChildType)instance,判斷是否是某個類型使用 instanceof,見下例:

分分鐘快速瞭解Java入門,不看可惜了


9

重寫

Java中的重寫規則比較靈活,具體如下:

  1. 除了 private 修飾之外的所有實例方法都可以重寫,不需要顯式的聲明。
  2. 重寫的方法為了顯式的表達重寫這一概念,使用 @Override進行註解。
  3. 重寫的方法可以修改訪問修飾符和返回類型,只要和父類的方法兼容(訪問級別更高,返回類型更具體)。
  4. 可以使用final將某個方法標記為不可重寫。
  5. 在構造方法中使用 super(xxx, xxx)調用父類構造方法,在常規實例方法中使用 super.method(xxx, xxx)調用父類方法。
  6. Java不支持覆蓋(new)。


分分鐘快速瞭解Java入門,不看可惜了


分分鐘快速瞭解Java入門,不看可惜了


10

包的名字和項目路徑下的目錄路徑相對應,比如:項目路徑為:C:\\Study,有一個Java源文件位於:C:\\Study\\com\\happyframework\\study\\App.java,那麼App.java的包名字必須為:com.happyframework.study,且 App.java 的第一行語句必須為:package com.happyframework.study。

Java支持三種導入語法:

  1. 導入類型:import xxx.xxx.xxxClass。
  2. 導入包:import xxx.xxx.xxx.*。
  3. 導入靜態成員:import static xxx.xxx.*。


分分鐘快速瞭解Java入門,不看可惜了


11

訪問級別

Java支持四種訪問級別:public、private、protected 和 default(默認),類型和接口只能使用public 和 default,成員和嵌套類型可以使用所有,下面簡單的解釋一下 protected 和 default。

  • protected 修飾過的成員只能被自己、子類和同一個包裡的(不包括子包)其他類型訪問。
  • default 修改過的類型或成員只能被自己和同一個包裡的(不包括子包)其他類型訪問。

嵌套類

Java支持如下幾種嵌套類:

  1. nested class,定義在類型內部的類型。
  2. static nested class,使用 static 聲明的 nested class,static nested class 可以訪問所有外部類的靜態成員。
  3. inner class,沒有使用 static 聲明的 nested class,inner class 可以訪問所有外部類的實例成員,inner class 不能定義靜態成員。

代碼示例

分分鐘快速瞭解Java入門,不看可惜了


分分鐘快速瞭解Java入門,不看可惜了


特殊的inner class:local class

分分鐘快速瞭解Java入門,不看可惜了


除了inner class的規則之外,local class可以訪問局部final變量,在Java8中有更多的改進。

特殊的local class:anonymous class

分分鐘快速瞭解Java入門,不看可惜了


12

常量

不廢話了,直接看代碼:

分分鐘快速瞭解Java入門,不看可惜了


有一點需要注意的是:只有一種情況Java的常量是編譯時常量(編譯器會幫你替換),其它情況都是運行時常量,這種情況是:靜態類型常量且常量的值可以編譯時確定。

接口

Java的接口可以包含方法簽名、常量和嵌套類,見下例:

分分鐘快速瞭解Java入門,不看可惜了


13

枚舉

Java枚舉是class,繼承自java.lang.Enum,枚舉中可以定義任何類型可以定義的內容,構造方法只能是private或package private,枚舉成員會被編譯器動態翻譯為枚舉實例常量,見下例:

分分鐘快速瞭解Java入門,不看可惜了


調用枚舉的構造方法格式是:常量名字(xxx, xxx),如果構造方法沒有參數只需要:常量名子,如:

分分鐘快速瞭解Java入門,不看可惜了


14

異常

Java中的異常分為checked和unchecked,checked異常必須聲明在方法中或被捕獲,這點我覺得比較好,必定:異常也是API的一部分,見下例:

分分鐘快速瞭解Java入門,不看可惜了


所有繼承Exception的異常(除了RuntimeException和它的後代之外)都是checked異常。

15

裝箱和拆箱

Java提供了原始類型對應的引用類型,在1.5之後的版本還提供了自動裝箱和自動拆箱,結合最新版本的泛型,幾乎可以忽略這塊。

分分鐘快速瞭解Java入門,不看可惜了


注意:自動裝箱和自動拆箱是Java提供的語法糖。

16

泛型

Java的泛型是編譯器提供的語法糖,官方稱之為:類型參數搽除,先看一下語法,然後總結一點規律:

泛型方法

測試代碼

分分鐘快速瞭解Java入門,不看可惜了


調用泛型方法


分分鐘快速瞭解Java入門,不看可惜了


輸出的結果是


分分鐘快速瞭解Java入門,不看可惜了


17

泛型類

測試代碼

分分鐘快速瞭解Java入門,不看可惜了


調用代碼


分分鐘快速瞭解Java入門,不看可惜了


輸出結果


分分鐘快速瞭解Java入門,不看可惜了


18

泛型接口

測試代碼

分分鐘快速瞭解Java入門,不看可惜了


調用代碼

分分鐘快速瞭解Java入門,不看可惜了


輸出結果

分分鐘快速瞭解Java入門,不看可惜了


19

類型參數約束

測試代碼

分分鐘快速瞭解Java入門,不看可惜了


調用代碼

分分鐘快速瞭解Java入門,不看可惜了


輸出結果

分分鐘快速瞭解Java入門,不看可惜了


類型搽除過程

  1. 將泛型定義中的類型參數去掉。


分分鐘快速瞭解Java入門,不看可惜了


2.將T換成extends指定的約束類型,默認是Object。

分分鐘快速瞭解Java入門,不看可惜了


3.如果有非泛型類型繼承或實現了泛型基類或接口,而且進行了重寫,根據情況,編譯器會自動生成一些方法。

分分鐘快速瞭解Java入門,不看可惜了


4.根據泛型參數的實際參數搽除調用代碼。

分分鐘快速瞭解Java入門,不看可惜了


這裡說的不一定正確,特別是Java泛型的約束支持&(如:可以約束實行多個接口),不過過程估計差別不大,我沒有看Java語言規範,這裡只是大概的猜測。


然後今天就講到這裡啦,大家記得點贊收藏,分享轉發,關注小姐姐哦!

java學習資料獲取方式

私信不要多字,不要少字,不要錯字,私信方法:點擊我頭像,進入主頁面,右上角有私信功能,在關注的上方位置。


分享到:


相關文章: