Java快速入門(本文篇幅較長,建議點喜歡後收藏後閱讀)
每天學會一個知識點,覺得不錯的可以留言關注下,戳我主頁獲取Java資料(工具包,面試資料,視頻教學,包含社羣解答)
- Java 是什麼?
- Java 的特點:
- 面向對象
- 平臺無關(跨平臺):
- 簡單
- 安全
- 體系結構 - 中性
- 可移植
- 健壯
- 多線程
- 解釋型
- 高性能
- 分佈式
- 動態
Java安裝及環境設置:java的安裝及環境配置可以看第三篇
Java 基礎語法
- 對象- 對象有狀態和行爲。例如:狗有狀態色,名字,品種以及行爲 - 搖頭晃腦,吠叫,喫。對象是類的一個實例。
- 類- 類可以被定義爲一個模板/藍本描述該行爲/狀態及其支持對象類型。
- 方法 - 方法基本上是一個行爲。一個類可以包含(擁有)多個方法。 將邏輯寫入方法,數據操縱和所有的動作都會被執行。
- 實例變量 - 每個對象都有其獨特(唯一)的實例變量。對象的狀態是由分配給這些瞬間變量的值來創建。
第一個Java程序:
讓我們來看看,以下代碼將打印一個簡單詞語 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
}
}
關於Java程序,記住以下幾點非常重要。
- 區分大小寫 - Java是大小寫敏感的,這意味着標識Hello和hello在Java中有不同的含義。
- 類名稱 - 對於所有的類名首字母應該大寫。如果幾個單詞來形成一個類的名字,那麼每個單詞的第一個字母應該大寫。例如:class MyFirstJavaClass
- 方法名稱 - 所有方法的名稱的開始字母應該用小寫字母。如果幾個單詞來形成方法的名稱,那麼每個單詞的第一個字母要大寫。例如:public void myMethodName()
- 程序文件名 - 程序文件名應當和類名完全匹配。保存文件時,應該使用類名保存它(記住Java是區分大小寫),再追加 '.java' 到文件名稱的末尾.(如果文件名和類名不匹配程序將無法編譯)。例如:假設“MyFirstJavaProgram”是類名。那麼這個文件應當被保存爲 'MyFirstJavaProgram.java'
- public static void main(String args[]) - java程序處理是從main()方法開始,這是每一個Java程序開始的必須部分.
Java 標識符:
所有的Java組件都需要一個名字。用於類,變量和方法名稱叫做標識符。
在Java中的標識符有幾點要記住。它們如下:
- 所有的標識符應該由字母(A至Z或a到z),貨幣字符($)或下劃線(_)組成。
- 標識符的第一個字符之後可以具有字符的任意組合。
- 關鍵字不能被用作標識符。
- 標識符最重要特點是區分大小寫的。
- 合法標識符的示例:age, $salary, _value, __1_value
- 非法標識符的示例:123abc, -salary
Java修飾符:
就像其它語言,它可以改變類,方法等,通過使用修辭符。有兩大類的修辭符。
- 訪問修飾符 : default, public , protected, private
- 非訪問修飾符 : final, abstract, strictfp
我們將會在下一節中研究/學習有關修飾符的更多細節。
Java 變量:
我們會看到下面Java的變量類型:
- 局部變量
- 類變量(靜態變量)
- 實例變量(非靜態變量)
Java 數組:
數組是存儲相同類型的多個變量的對象。然而數組本身就是在堆上的對象。我們將探討如何聲明,構建並初始化在即將到來的章節。
Java 枚舉:
枚舉是在Java 5.0中才開始進行介紹。枚舉一個變量只限於幾個預定義值之一。在此枚舉列表中的值稱爲枚舉。
通過使用枚舉能夠減少代碼的錯誤的數量。
因爲,如果我們考慮了鮮榨果汁店的一個應用實例將有可能限制玻璃尺寸爲小,中,大。這將確保不會允許任何人訂製尺寸在小型,中型或大型之外的類型。
例子:
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);
}
}
注:枚舉可以聲明爲它們自己或在類中。方法,變量,構造函數可以也可以在枚舉內定義。
Java 關鍵字:
下面列出了Java中的保留字(關鍵字)。這些保留字不可以用作常量或變量或任何其它標識符名稱。
Java 註釋
Java支持單行和多行註釋非常類似於C和C++的註釋方式。 所有字符在註釋裏面,都是會被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數據類型
在Java中可用兩種數據類型:
- 原始數據類型
- 引用/對象數據類型
原始數據類型
Java語言支持八種原始數據類型。原始數據類型是由語言預定義且由關鍵字命名。 現在讓我們來詳細看看八種原始數據類型。
- byte
- short
- int
- long
- float
- double
- boolean
- char
引用數據類型
- 使用類定義的構造創建引用變量。它們是用來訪問對象。這些變量被聲明爲一個不能改變的特定類型。例如, Employee, Puppy 等。
- 類對象,以及各種類型的數組變量,都在參考數據類型。
- 任何引用變量的缺省值是null。
- 引用變量可以用於引用聲明類型或任何兼容類型的任何對象。例如: Animal animal = new Animal("giraffe")
Java 字面值
字面值是一個源代碼表示的固定值。它們是直接用代碼來表示,無需任何計算。
字面值可以被分配給任何基本類型的變量。例如:
byte a = 68;
char a = 'A'
在Java中的字符串字面值規定,就像它們在大多數其他語言的字符序列一樣,使用一對雙引號包圍在它們之間。字符串的例子如下:
"Hello World"
"two\nlines"
"\"This is in quotes\""
java語言支持字符串以及一些特殊的轉義序列字符文字。它們是:
Java訪問修飾符:
Java提供了一些訪問修飾符來設置類,變量,方法和構造函數的訪問級別。這四個訪問級別分別是:
- 可見到包。不需要修飾這是默認的。
- 只可見到類(private)。
- 可見到所有 (public).
- 可見到包和所有子類(protected).
Java運算符
Java提供了一套豐富的運算符來操作變量。我們可以把所有的Java運算符分成以下幾組:
-
算術運算符
假設A=10, B=20,那麼
2.關係運算符
3.位運算符:
4.邏輯運算符:
5.賦值運算符:
6.其它運算符
Java語言支持其他一些運算符。
6.1 條件運算符 ( ? : ):
條件運算也被稱爲三元運算符。這個操作符包括三個操作數,用於計算布爾表達式。 此運算符的目標是決定哪個值應分配給變量。運算符可寫爲:
variable x = (expression) ? value if true : value if false
6.2 instanceOf 運算符:
此運算符僅用於對象引用變量。此運算符檢查對象是否是特定類型(類類型或接口類型)。instanceOf運算被寫爲:
( Object reference variable ) instanceOf (class/interface type)
Java運算符的優先級:
while 循環:
while循環是一種控制結構,可以讓你重複執行任務的若干次。
while循環的語法是:
while(Boolean_expression)
{
//Statements
}
do ... while循環:
do... while 循環類似於 while 循環,不同的是do ... while循環是保證至少執行一次。
do ... while循環的語法是:
do
{
//Statements
}while(Boolean_expression);
for 循環:
for循環是一個循環控制結構,可以有效地編寫需要執行的特定次數的循環。
當知道任務要多少次重複,一個for循環是非常有用的。
for循環的語法是:
for(initialization; Boolean_expression; update) { //Statements }
改進Java的for循環:
從Java5中開始增強了for循環。這主要是用於數組。
增強的for循環的語法是:
for(declaration : expression) { //Statements }
break關鍵字:
關鍵字break用於停止整個循環。Break關鍵字必須使用在任何循環或switch語句中。
Break關鍵字將停止最內層循環的執行,並開始執行的下一行代碼塊之後的語句。
continue關鍵字:
continue關鍵字可以在任一環的控制結構可以使用。它會導致循環立即跳轉到循環的下一次迭代。
在for循環中,continue關鍵字使流程控制立即跳轉到update語句。
在while循環或do/while循環,流控制立即跳轉到布爾表達式。
if 語句:
if 語句包含一個布爾表達式後跟一個或多個語句。
一個if語句的語法:
if(Boolean_expression)
{
//Statements will execute if the Boolean expression is true
}
if...else 語句:
if語句可以跟着一個可選的else語句,當else執行時,if 中布爾表達式是假的。
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語句始終是合法的。當要 if , else if , else else語句時有幾點要牢記。
一個 if 可以有零或一個else,它必須跟從 else if 之後。
一個 if 可以零個或多個 else if ,它們必須在 else 之前。
一旦一個 else if 條件成功,其他剩餘的 else if 或 else 將不會被測試。
嵌套 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語句允許一個變量來反對值列表平等的進行測試。每個值被稱爲一個的情況(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方法是組合在一起來執行操作語句的集合。當調用System.out.println方法,例如,系統實際上是在控制檯上顯示執行的語句的消息。
在一般情況下,方法的語法如下:
modifier returnValueType methodName(list of parameters) { // Method body; }
方法定義包含一個方法頭和方法體。下面是一個方法的所有部分:
- 修飾符: 修飾符,這是可選的,告訴編譯器如何調用該方法。這定義了該方法的訪問類型。
- 返回類型: 方法可能會返回一個值。returnValueType是方法返回的值的數據類型。有些方法執行所需的操作不返回任何值。在這種情況下,returnValueType是關鍵字 void.
- 方法名稱: 這是該方法的實際名稱。方法的名稱和參數表共同構成方法簽名。
- 參數: 參數就像一個佔位符。當調用一個方法,傳遞一個參數值。這個值被稱爲實際參數或參數。參數列表表示類型,順序和方法的參數的數量。參數是可選的;也就是說,一個方法可包含任何參數。
- 方法體: 方法體包含了定義方法執行語句的集合。
Java類和對象:
- 對象 - 對象有狀態和行爲。例如: 狗有狀態顏色,名字,品種以及行爲-擺尾,叫聲,喫。對象是類的一個實例。
- 類- 類可以被定義爲一個模板/藍本來描述行爲/狀態,其類型支持對象。
一個類的示例如下:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
一個類可以包含任何下列變量類型。
- 局部變量 . 在方法,構造函數或塊裏面定義的變量稱爲局部變量。變量將被聲明在方法中並初始化,當方法調用完成變量也將被銷燬。
- 實例變量 . 實例變量是在一個類裏,在方法以外的變量。這些變量在類加載時實例化。實例變量可以在類內部的任何方法,構造函數或特定類的塊中訪問。
- 類變量 . 類變量是在一個類中聲明的變量,任何方法外,用static關鍵字。
- 異常處理:
一種捕獲異常方法就是使用try和catch關鍵字組合。 try/ catch塊將被置於可能產生異常的代碼。一個try/ catch塊中的代碼被稱爲保護代碼,使用try/ catch語句的語法如下所示:
try
{
//Protected code
}catch(ExceptionName e1)
{
//Catch block
}
多個catch塊:
一個try塊可以跟隨多個catch塊。多個catch塊的語法如下所示:
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}
throws/throw 關鍵字:
如果一個方法不處理檢查異常,該方法必須使用關鍵字throws聲明它。 throws關鍵字出現在方法簽名的結束位置。
可以拋出一個異常,用throw關鍵字在一個新實例化或一個剛剛捕獲的異常。 試着去了解 throws 和 throw 關鍵字的不同。
finally 關鍵字
finally關鍵字用於創建一個代碼塊在try塊後面。 finally塊中的代碼始終執行,無論是否發生異常。
使用finally塊,可以運行要執行,無論是在受保護的代碼會不會發生髮生異常都會被執行,可以放一些清理工作之類的語句(代碼)。
finally塊必須出現在catch塊的結束位置,它的語法如下:
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}finally
{
//The finally block always executes.
}