java速学_5分钟快速入门Java,不看真的可惜了
你好,世界!
源代碼組織方式
Java程序由package+class組成,package對(duì)應(yīng)目錄的相對(duì)路徑,class對(duì)應(yīng)文件,如
關(guān)于class有如下幾點(diǎn)規(guī)則:
文件的名字必須和class的名字一致(public級(jí)別的class名字)。
文件必須只包含一個(gè)public訪問(wèn)基本的class(可以包含多個(gè)非public級(jí)別的class)。
package名字必須和目錄一致。
1
入口方法
App.java
2
最終的項(xiàng)目結(jié)構(gòu)
3
數(shù)據(jù)類型
8種原子類型
整數(shù)類型:byte、short、int和long。
小數(shù)類型:float和double。
字符類型:char。
布爾類型:bool。
除此之外的是interface、class和array。
小數(shù)類型的常量默認(rèn)是double類型,聲明float類型的常量需要使用F作為后綴。
4
運(yùn)算符
算術(shù)運(yùn)算符:+、-、*、/ 和 %,兩個(gè)整數(shù)相除,結(jié)果還是整數(shù)。
賦值運(yùn)算符:=、+=、-=、*=、/=、%=、&=、|=、~=、^=、>>=、<<= 、 <<<=、++ 和 --。
比較運(yùn)算符:==、!=、>、>=、< 和 <=。
邏輯運(yùn)算符:&&、|| 和 !。
位運(yùn)算符:&、|、~、^、>>、<< 和 <<
5
字符串
為了高效的修改字符串Java引入了StringBuffer。
6
數(shù)組
聲明語(yǔ)法
DataType[] name 或 DataType name[]。
初始化語(yǔ)法
DataType[] name = new DataType[length]。
DataType[] name = new DataType[] { element1, element2, ...elementn }。
DataType[] name = { element1, element2, ...elementn }。
多維數(shù)組
只有不等長(zhǎng)多維數(shù)組DataType[][],沒(méi)有DataType[xxx, xxx]。
控制結(jié)構(gòu)
條件:if-else if-else、switch-case-default和三元運(yùn)算符(?:)。
循環(huán):while、do-while、for和foreach。
Labeled block。
最近覺(jué)得label是個(gè)不錯(cuò)的東西,最起碼多了一種選擇。
方法
Java支持變長(zhǎng)方法參數(shù)。
7
類
注意:調(diào)用自身的構(gòu)造方法是用this(xxx,xxx,...)來(lái)完成,且必須位于第一行。
靜態(tài)成員
Java中類似靜態(tài)構(gòu)造方法的結(jié)構(gòu),稱之為:靜態(tài)初始化代碼塊,與之對(duì)應(yīng)的是實(shí)例初始化代碼塊,見(jiàn)下例:
8
繼承
繼承使用 extends,抽象類和抽象方法使用abstract聲明,向下轉(zhuǎn)型使用 (ChildType)instance,判斷是否是某個(gè)類型使用 instanceof,見(jiàn)下例:
9
重寫
Java中的重寫規(guī)則比較靈活,具體如下:
除了 private 修飾之外的所有實(shí)例方法都可以重寫,不需要顯式的聲明。
重寫的方法為了顯式的表達(dá)重寫這一概念,使用 @Override進(jìn)行注解。
重寫的方法可以修改訪問(wèn)修飾符和返回類型,只要和父類的方法兼容(訪問(wèn)級(jí)別更高,返回類型更具體)。
可以使用final將某個(gè)方法標(biāo)記為不可重寫。
在構(gòu)造方法中使用 super(xxx, xxx)調(diào)用父類構(gòu)造方法,在常規(guī)實(shí)例方法中使用 super.method(xxx, xxx)調(diào)用父類方法。
Java不支持覆蓋(new)。
10
包
包的名字和項(xiàng)目路徑下的目錄路徑相對(duì)應(yīng),比如:項(xiàng)目路徑為:C:\Study,有一個(gè)Java源文件位于:C:\Study\com\happyframework\study\App.java,那么App.java的包名字必須為:com.happyframework.study,且 App.java 的第一行語(yǔ)句必須為:package com.happyframework.study。
Java支持三種導(dǎo)入語(yǔ)法:
導(dǎo)入類型:import xxx.xxx.xxxClass。
導(dǎo)入包:import xxx.xxx.xxx.*。
導(dǎo)入靜態(tài)成員:import static xxx.xxx.*。
11
訪問(wèn)級(jí)別
Java支持四種訪問(wèn)級(jí)別:public、private、protected 和 default(默認(rèn)),類型和接口只能使用public 和 default,成員和嵌套類型可以使用所有,下面簡(jiǎn)單的解釋一下 protected 和 default。
protected 修飾過(guò)的成員只能被自己、子類和同一個(gè)包里的(不包括子包)其他類型訪問(wèn)。
default 修改過(guò)的類型或成員只能被自己和同一個(gè)包里的(不包括子包)其他類型訪問(wèn)。
嵌套類
Java支持如下幾種嵌套類:
nested class,定義在類型內(nèi)部的類型。
static nested class,使用 static 聲明的 nested class,static nested class 可以訪問(wèn)所有外部類的靜態(tài)成員。
inner class,沒(méi)有使用 static 聲明的 nested class,inner class 可以訪問(wèn)所有外部類的實(shí)例成員,inner class 不能定義靜態(tài)成員。
代碼示例
特殊的inner class:local class
除了inner class的規(guī)則之外,local class可以訪問(wèn)局部final變量,在Java8中有更多的改進(jìn)。
特殊的local class:anonymous class
12
常量
不廢話了,直接看代碼:
有一點(diǎn)需要注意的是:只有一種情況Java的常量是編譯時(shí)常量(編譯器會(huì)幫你替換),其它情況都是運(yùn)行時(shí)常量,這種情況是:靜態(tài)類型常量且常量的值可以編譯時(shí)確定。
接口
Java的接口可以包含方法簽名、常量和嵌套類,見(jiàn)下例:
13
枚舉
Java枚舉是class,繼承自java.lang.Enum,枚舉中可以定義任何類型可以定義的內(nèi)容,構(gòu)造方法只能是private或package private,枚舉成員會(huì)被編譯器動(dòng)態(tài)翻譯為枚舉實(shí)例常量,見(jiàn)下例:
調(diào)用枚舉的構(gòu)造方法格式是:常量名字(xxx, xxx),如果構(gòu)造方法沒(méi)有參數(shù)只需要:常量名子,如:
14
異常
Java中的異常分為checked和unchecked,checked異常必須聲明在方法中或被捕獲,這點(diǎn)我覺(jué)得比較好,必定:異常也是API的一部分,見(jiàn)下例:
所有繼承Exception的異常(除了RuntimeException和它的后代之外)都是checked異常。
15
裝箱和拆箱
Java提供了原始類型對(duì)應(yīng)的引用類型,在1.5之后的版本還提供了自動(dòng)裝箱和自動(dòng)拆箱,結(jié)合最新版本的泛型,幾乎可以忽略這塊。
注意:自動(dòng)裝箱和自動(dòng)拆箱是Java提供的語(yǔ)法糖。
16
泛型
Java的泛型是編譯器提供的語(yǔ)法糖,官方稱之為:類型參數(shù)搽除,先看一下語(yǔ)法,然后總結(jié)一點(diǎn)規(guī)律:
泛型方法
測(cè)試代碼
調(diào)用泛型方法
輸出的結(jié)果是
17
泛型類
測(cè)試代碼
調(diào)用代碼
輸出結(jié)果
18
泛型接口
測(cè)試代碼
調(diào)用代碼
輸出結(jié)果
19
類型參數(shù)約束
測(cè)試代碼
調(diào)用代碼
輸出結(jié)果
類型搽除過(guò)程
將泛型定義中的類型參數(shù)去掉。
2.將T換成extends指定的約束類型,默認(rèn)是Object。
3.如果有非泛型類型繼承或?qū)崿F(xiàn)了泛型基類或接口,而且進(jìn)行了重寫,根據(jù)情況,編譯器會(huì)自動(dòng)生成一些方法。
4.根據(jù)泛型參數(shù)的實(shí)際參數(shù)搽除調(diào)用代碼。
這里說(shuō)的不一定正確,特別是Java泛型的約束支持&(如:可以約束實(shí)行多個(gè)接口),不過(guò)過(guò)程估計(jì)差別不大,我沒(méi)有看Java語(yǔ)言規(guī)范,這里只是大概的猜測(cè)。
然后今天就講到這里啦,大家記得點(diǎn)贊收藏,分享轉(zhuǎn)發(fā),關(guān)注小姐姐哦!
-END-
加下面這個(gè)雙魚小姐姐微信
總結(jié)
以上是生活随笔為你收集整理的java速学_5分钟快速入门Java,不看真的可惜了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电脑wifi破解器电脑版(电脑版WIFI
- 下一篇: java threadlocal 缺点_