Java快速入門(本文篇幅較長(zhǎng)船老,建議點(diǎn)喜歡后收藏后閱讀)
每天學(xué)會(huì)一個(gè)知識(shí)點(diǎn)咖熟,覺得不錯(cuò)的可以留言關(guān)注下,戳我主頁獲取Java資料(工具包柳畔,面試資料馍管,視頻教學(xué),包含社群解答)
- Java 是什么?
- Java 的特點(diǎn):
- 面向?qū)ο?/li>
- 平臺(tái)無關(guān)(跨平臺(tái)):
- 簡(jiǎn)單
- 安全
- 體系結(jié)構(gòu) - 中性
- 可移植
- 健壯
- 多線程
- 解釋型
- 高性能
- 分布式
- 動(dòng)態(tài)
Java安裝及環(huán)境設(shè)置:java的安裝及環(huán)境配置可以看第三篇
Java 基礎(chǔ)語法
- 對(duì)象- 對(duì)象有狀態(tài)和行為荸镊。例如:狗有狀態(tài)色咽斧,名字,品種以及行為 - 搖頭晃腦躬存,吠叫张惹,吃。對(duì)象是類的一個(gè)實(shí)例岭洲。
- 類- 類可以被定義為一個(gè)模板/藍(lán)本描述該行為/狀態(tài)及其支持對(duì)象類型宛逗。
- 方法 - 方法基本上是一個(gè)行為。一個(gè)類可以包含(擁有)多個(gè)方法盾剩。 將邏輯寫入方法雷激,數(shù)據(jù)操縱和所有的動(dòng)作都會(huì)被執(zhí)行。
- 實(shí)例變量 - 每個(gè)對(duì)象都有其獨(dú)特(唯一)的實(shí)例變量告私。對(duì)象的狀態(tài)是由分配給這些瞬間變量的值來創(chuàng)建屎暇。
第一個(gè)Java程序:
讓我們來看看,以下代碼將打印一個(gè)簡(jiǎn)單詞語 Hello World
public class MyFirstJavaProgram{
/* This is my first java program.
* This will print 'Hello World' as the output
*/
public static void main(String []args){
System.out.println("Hello World"); // prints Hello World by manongjc.com
}
}
關(guān)于Java程序驻粟,記住以下幾點(diǎn)非常重要根悼。
- 區(qū)分大小寫 - Java是大小寫敏感的,這意味著標(biāo)識(shí)Hello和hello在Java中有不同的含義。
- 類名稱 - 對(duì)于所有的類名首字母應(yīng)該大寫挤巡。如果幾個(gè)單詞來形成一個(gè)類的名字剩彬,那么每個(gè)單詞的第一個(gè)字母應(yīng)該大寫。例如:class MyFirstJavaClass
- 方法名稱 - 所有方法的名稱的開始字母應(yīng)該用小寫字母矿卑。如果幾個(gè)單詞來形成方法的名稱喉恋,那么每個(gè)單詞的第一個(gè)字母要大寫。例如:public void myMethodName()
- 程序文件名 - 程序文件名應(yīng)當(dāng)和類名完全匹配母廷。保存文件時(shí)轻黑,應(yīng)該使用類名保存它(記住Java是區(qū)分大小寫),再追加 '.java' 到文件名稱的末尾.(如果文件名和類名不匹配程序?qū)o法編譯)徘意。例如:假設(shè)“MyFirstJavaProgram”是類名苔悦。那么這個(gè)文件應(yīng)當(dāng)被保存為 'MyFirstJavaProgram.java'
- public static void main(String args[]) - java程序處理是從main()方法開始轩褐,這是每一個(gè)Java程序開始的必須部分.
Java 標(biāo)識(shí)符:
所有的Java組件都需要一個(gè)名字椎咧。用于類,變量和方法名稱叫做標(biāo)識(shí)符把介。
在Java中的標(biāo)識(shí)符有幾點(diǎn)要記住勤讽。它們?nèi)缦拢?/p>
- 所有的標(biāo)識(shí)符應(yīng)該由字母(A至Z或a到z),貨幣字符($)或下劃線(_)組成拗踢。
- 標(biāo)識(shí)符的第一個(gè)字符之后可以具有字符的任意組合脚牍。
- 關(guān)鍵字不能被用作標(biāo)識(shí)符。
- 標(biāo)識(shí)符最重要特點(diǎn)是區(qū)分大小寫的巢墅。
- 合法標(biāo)識(shí)符的示例:age, $salary, _value, __1_value
- 非法標(biāo)識(shí)符的示例:123abc, -salary
Java修飾符:
就像其它語言诸狭,它可以改變類,方法等君纫,通過使用修辭符驯遇。有兩大類的修辭符。
- 訪問修飾符 : default, public , protected, private
- 非訪問修飾符 : final, abstract, strictfp
我們將會(huì)在下一節(jié)中研究/學(xué)習(xí)有關(guān)修飾符的更多細(xì)節(jié)蓄髓。
Java 變量:
我們會(huì)看到下面Java的變量類型:
- 局部變量
- 類變量(靜態(tài)變量)
- 實(shí)例變量(非靜態(tài)變量)
Java 數(shù)組:
數(shù)組是存儲(chǔ)相同類型的多個(gè)變量的對(duì)象叉庐。然而數(shù)組本身就是在堆上的對(duì)象。我們將探討如何聲明会喝,構(gòu)建并初始化在即將到來的章節(jié)陡叠。
Java 枚舉:
枚舉是在Java 5.0中才開始進(jìn)行介紹。枚舉一個(gè)變量只限于幾個(gè)預(yù)定義值之一肢执。在此枚舉列表中的值稱為枚舉枉阵。
通過使用枚舉能夠減少代碼的錯(cuò)誤的數(shù)量。
因?yàn)樵で眩绻覀兛紤]了鮮榨果汁店的一個(gè)應(yīng)用實(shí)例將有可能限制玻璃尺寸為小兴溜,中,大。這將確保不會(huì)允許任何人訂制尺寸在小型昵慌,中型或大型之外的類型假夺。
例子:
class FreshJuice{
enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest{
public static void main(String args[]){
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice. FreshJuiceSize.MEDIUM ;
System.out.println("Size :" + juice.size);
}
}
注:枚舉可以聲明為它們自己或在類中。方法斋攀,變量已卷,構(gòu)造函數(shù)可以也可以在枚舉內(nèi)定義。
Java 關(guān)鍵字:
下面列出了Java中的保留字(關(guān)鍵字)淳蔼。這些保留字不可以用作常量或變量或任何其它標(biāo)識(shí)符名稱侧蘸。
Java 注釋
Java支持單行和多行注釋非常類似于C和C++的注釋方式。 所有字符在注釋里面鹉梨,都是會(huì)被Java編譯器忽略讳癌。
public class MyFirstJavaProgram{
/* This is my first java program.
* This will print 'Hello World' as the output
* This is an example of multi-line comments.
*/
public static void main(String []args){
// This is an example of single line comment
/* This is also an example of single line comment. */
System.out.println("Hello World");
}
}
Java數(shù)據(jù)類型
在Java中可用兩種數(shù)據(jù)類型:
- 原始數(shù)據(jù)類型
- 引用/對(duì)象數(shù)據(jù)類型
原始數(shù)據(jù)類型
Java語言支持八種原始數(shù)據(jù)類型。原始數(shù)據(jù)類型是由語言預(yù)定義且由關(guān)鍵字命名存皂。 現(xiàn)在讓我們來詳細(xì)看看八種原始數(shù)據(jù)類型晌坤。
- byte
- short
- int
- long
- float
- double
- boolean
- char
引用數(shù)據(jù)類型
- 使用類定義的構(gòu)造創(chuàng)建引用變量。它們是用來訪問對(duì)象旦袋。這些變量被聲明為一個(gè)不能改變的特定類型骤菠。例如, Employee, Puppy 等。
- 類對(duì)象疤孕,以及各種類型的數(shù)組變量商乎,都在參考數(shù)據(jù)類型。
- 任何引用變量的缺省值是null祭阀。
- 引用變量可以用于引用聲明類型或任何兼容類型的任何對(duì)象鹉戚。例如: Animal animal = new Animal("giraffe")
Java 字面值
字面值是一個(gè)源代碼表示的固定值。它們是直接用代碼來表示专控,無需任何計(jì)算抹凳。
字面值可以被分配給任何基本類型的變量。例如:
byte a = 68;
char a = 'A'
在Java中的字符串字面值規(guī)定踩官,就像它們?cè)诖蠖鄶?shù)其他語言的字符序列一樣却桶,使用一對(duì)雙引號(hào)包圍在它們之間。字符串的例子如下:
"Hello World"
"two\nlines"
"\"This is in quotes\""
java語言支持字符串以及一些特殊的轉(zhuǎn)義序列字符文字蔗牡。它們是:Java訪問修飾符:
Java提供了一些訪問修飾符來設(shè)置類颖系,變量,方法和構(gòu)造函數(shù)的訪問級(jí)別辩越。這四個(gè)訪問級(jí)別分別是:
- 可見到包嘁扼。不需要修飾這是默認(rèn)的。
- 只可見到類(private)黔攒。
- 可見到所有 (public).
- 可見到包和所有子類(protected).
Java運(yùn)算符
Java提供了一套豐富的運(yùn)算符來操作變量趁啸。我們可以把所有的Java運(yùn)算符分成以下幾組:
-
算術(shù)運(yùn)算符
假設(shè)A=10, B=20强缘,那么
2.關(guān)系運(yùn)算符
3.位運(yùn)算符:
4.邏輯運(yùn)算符:
5.賦值運(yùn)算符:
6.其它運(yùn)算符
Java語言支持其他一些運(yùn)算符。
6.1 條件運(yùn)算符 ( ? : ):
條件運(yùn)算也被稱為三元運(yùn)算符不傅。這個(gè)操作符包括三個(gè)操作數(shù)旅掂,用于計(jì)算布爾表達(dá)式。 此運(yùn)算符的目標(biāo)是決定哪個(gè)值應(yīng)分配給變量访娶。運(yùn)算符可寫為:
variable x = (expression) ? value if true : value if false
6.2 instanceOf 運(yùn)算符:
此運(yùn)算符僅用于對(duì)象引用變量商虐。此運(yùn)算符檢查對(duì)象是否是特定類型(類類型或接口類型)。instanceOf運(yùn)算被寫為:
( Object reference variable ) instanceOf (class/interface type)
Java運(yùn)算符的優(yōu)先級(jí):
while 循環(huán):
while循環(huán)是一種控制結(jié)構(gòu)崖疤,可以讓你重復(fù)執(zhí)行任務(wù)的若干次秘车。
while循環(huán)的語法是:
while(Boolean_expression)
{
//Statements
}
do ... while循環(huán):
do... while 循環(huán)類似于 while 循環(huán),不同的是do ... while循環(huán)是保證至少執(zhí)行一次劫哼。
do ... while循環(huán)的語法是:
do
{
//Statements
}while(Boolean_expression);
for 循環(huán):
for循環(huán)是一個(gè)循環(huán)控制結(jié)構(gòu)叮趴,可以有效地編寫需要執(zhí)行的特定次數(shù)的循環(huán)。
當(dāng)知道任務(wù)要多少次重復(fù)权烧,一個(gè)for循環(huán)是非常有用的眯亦。
for循環(huán)的語法是:
for(initialization; Boolean_expression; update) { //Statements }
改進(jìn)Java的for循環(huán):
從Java5中開始增強(qiáng)了for循環(huán)。這主要是用于數(shù)組豪嚎。
增強(qiáng)的for循環(huán)的語法是:
for(declaration : expression) { //Statements }
break關(guān)鍵字:
關(guān)鍵字break用于停止整個(gè)循環(huán)搔驼。Break關(guān)鍵字必須使用在任何循環(huán)或switch語句中谈火。
Break關(guān)鍵字將停止最內(nèi)層循環(huán)的執(zhí)行侈询,并開始執(zhí)行的下一行代碼塊之后的語句。
continue關(guān)鍵字:
continue關(guān)鍵字可以在任一環(huán)的控制結(jié)構(gòu)可以使用糯耍。它會(huì)導(dǎo)致循環(huán)立即跳轉(zhuǎn)到循環(huán)的下一次迭代扔字。
在for循環(huán)中,continue關(guān)鍵字使流程控制立即跳轉(zhuǎn)到update語句温技。
在while循環(huán)或do/while循環(huán)革为,流控制立即跳轉(zhuǎn)到布爾表達(dá)式。
if 語句:
if 語句包含一個(gè)布爾表達(dá)式后跟一個(gè)或多個(gè)語句舵鳞。
一個(gè)if語句的語法:
if(Boolean_expression)
{
//Statements will execute if the Boolean expression is true
}
if...else 語句:
if語句可以跟著一個(gè)可選的else語句歹嘹,當(dāng)else執(zhí)行時(shí)漓穿,if 中布爾表達(dá)式是假的。
if...else 的語法是:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
}else if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}else if(Boolean_expression 3){
//Executes when the Boolean expression 3 is true
}else {
//Executes when the one of the above condition is true.
}
嵌套 if...else 語句:
嵌套if-else語句始終是合法的。當(dāng)要 if , else if , else else語句時(shí)有幾點(diǎn)要牢記豆赏。
一個(gè) if 可以有零或一個(gè)else,它必須跟從 else if 之后吞滞。
一個(gè) if 可以零個(gè)或多個(gè) else if ,它們必須在 else 之前辱揭。
一旦一個(gè) else if 條件成功,其他剩余的 else if 或 else 將不會(huì)被測(cè)試背伴。
嵌套 if...else 的語法如下:
if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}
}
switch 語句:
switch語句允許一個(gè)變量來反對(duì)值列表平等的進(jìn)行測(cè)試沸毁。每個(gè)值被稱為一個(gè)的情況(case)峰髓,該變量被接通檢查每種情況。
switch 的語法是:
switch(expression){
case value :
//Statements
break; //optional
case value :
//Statements
break; //optional
//You can have any number of case statements.
default : //Optional
//Statements
}
Java 方法:
Java方法是組合在一起來執(zhí)行操作語句的集合息尺。當(dāng)調(diào)用System.out.println方法携兵,例如,系統(tǒng)實(shí)際上是在控制臺(tái)上顯示執(zhí)行的語句的消息搂誉。
在一般情況下眉孩,方法的語法如下:
modifier returnValueType methodName(list of parameters) { // Method body; }
方法定義包含一個(gè)方法頭和方法體。下面是一個(gè)方法的所有部分:
- 修飾符: 修飾符勒葱,這是可選的浪汪,告訴編譯器如何調(diào)用該方法。這定義了該方法的訪問類型凛虽。
- 返回類型: 方法可能會(huì)返回一個(gè)值死遭。returnValueType是方法返回的值的數(shù)據(jù)類型。有些方法執(zhí)行所需的操作不返回任何值凯旋。在這種情況下呀潭,returnValueType是關(guān)鍵字 void.
- 方法名稱: 這是該方法的實(shí)際名稱。方法的名稱和參數(shù)表共同構(gòu)成方法簽名至非。
- 參數(shù): 參數(shù)就像一個(gè)占位符钠署。當(dāng)調(diào)用一個(gè)方法,傳遞一個(gè)參數(shù)值荒椭。這個(gè)值被稱為實(shí)際參數(shù)或參數(shù)谐鼎。參數(shù)列表表示類型,順序和方法的參數(shù)的數(shù)量趣惠。參數(shù)是可選的;也就是說狸棍,一個(gè)方法可包含任何參數(shù)。
- 方法體: 方法體包含了定義方法執(zhí)行語句的集合味悄。
Java類和對(duì)象:
- 對(duì)象 - 對(duì)象有狀態(tài)和行為草戈。例如: 狗有狀態(tài)顏色,名字侍瑟,品種以及行為-擺尾唐片,叫聲,吃涨颜。對(duì)象是類的一個(gè)實(shí)例费韭。
- 類- 類可以被定義為一個(gè)模板/藍(lán)本來描述行為/狀態(tài),其類型支持對(duì)象咐低。
一個(gè)類的示例如下:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
一個(gè)類可以包含任何下列變量類型揽思。
- 局部變量 . 在方法,構(gòu)造函數(shù)或塊里面定義的變量稱為局部變量见擦。變量將被聲明在方法中并初始化钉汗,當(dāng)方法調(diào)用完成變量也將被銷毀羹令。
- 實(shí)例變量 . 實(shí)例變量是在一個(gè)類里,在方法以外的變量损痰。這些變量在類加載時(shí)實(shí)例化福侈。實(shí)例變量可以在類內(nèi)部的任何方法,構(gòu)造函數(shù)或特定類的塊中訪問卢未。
- 類變量 . 類變量是在一個(gè)類中聲明的變量肪凛,任何方法外,用static關(guān)鍵字辽社。
- 異常處理:
一種捕獲異常方法就是使用try和catch關(guān)鍵字組合伟墙。 try/ catch塊將被置于可能產(chǎn)生異常的代碼。一個(gè)try/ catch塊中的代碼被稱為保護(hù)代碼滴铅,使用try/ catch語句的語法如下所示:
try
{
//Protected code
}catch(ExceptionName e1)
{
//Catch block
}
多個(gè)catch塊:
一個(gè)try塊可以跟隨多個(gè)catch塊戳葵。多個(gè)catch塊的語法如下所示:
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}
throws/throw 關(guān)鍵字:
如果一個(gè)方法不處理檢查異常,該方法必須使用關(guān)鍵字throws聲明它汉匙。 throws關(guān)鍵字出現(xiàn)在方法簽名的結(jié)束位置拱烁。
可以拋出一個(gè)異常,用throw關(guān)鍵字在一個(gè)新實(shí)例化或一個(gè)剛剛捕獲的異常噩翠。 試著去了解 throws 和 throw 關(guān)鍵字的不同戏自。
finally 關(guān)鍵字
finally關(guān)鍵字用于創(chuàng)建一個(gè)代碼塊在try塊后面。 finally塊中的代碼始終執(zhí)行伤锚,無論是否發(fā)生異常擅笔。
使用finally塊,可以運(yùn)行要執(zhí)行见芹,無論是在受保護(hù)的代碼會(huì)不會(huì)發(fā)生發(fā)生異常都會(huì)被執(zhí)行剂娄,可以放一些清理工作之類的語句(代碼)。
finally塊必須出現(xiàn)在catch塊的結(jié)束位置玄呛,它的語法如下:
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}finally
{
//The finally block always executes.
}