Java匹馬行天下之JavaSE核心技術——Java基礎語法

泰斗賢若如發表於2019-04-02

                                                     Java基礎語法

一.   認識Java

 

      • 1. Java 簡介

        java 是一種高階的物件導向的程式設計語言,使用Java語言編寫的程式時跨平臺的。從pc到手機,都有Java開發的程式和遊戲,Java程式可以在任何計算機,作業系統和支援的Java的硬體裝置上執行。
        ***

      • 2. Java語言

      • java 是1995年,sun公司推出的一種物件導向的程式設計語言。
      • 詹姆斯.戈士林設計完成,並完成了Java的原始編譯器和虛擬機器。Java原名oak,在1995年被正式以Java命名釋出。詹姆斯.戈士林被稱為Java之父。
      • Java語言是一種通過解釋來執行的語言,其語法與c語言相似。同時其也是一種跨平臺的程式設計語言。
      • 與c語言相比,Java語言簡潔,且提高了可靠性,除去了最大的程式錯誤根源。並且Java具有較高的安全性。
      • Java程式既是編譯型的,又是解釋型的。Java程式經過編譯轉換為一種Java位元組碼的中間語言,通過Java虛擬機器(JVM)將位元組碼進行解釋和執行。編譯只進行一次,而解釋,在每次執行時都會進行。

Java程式的編譯執行過程圖解:

 

 

      • 3. Java的一些應用領域

藉助Java,程式開發人員可以自由的使用現有的硬體和軟體系統平臺。Java是獨立於平臺的,它還可以應用於計算機之外的領域。Java主要在桌面應用開發,嵌入式系統開發,電子商務應用,企業級應用開發,互動式系統應用開發,多媒體系統開發,分散式系統開發,web應用系統

      • 4. Java的幾個版本

    1. java SE
      Java SE是Java的標準版,主要用於企業級分散式的網路程式。包含Java語言基礎,JDBC(Java資料庫連線性)操作,I/O(輸入/輸出),網路通訊,多執行緒技術。

java SE結構圖:

 

 

                   2.java EE

                              java EE是Java的企業版,主要用於開發企業級分散式網路程式。其核心是EJB(企業Java元件模型)。

java EE結果圖:

                  3.Java ME
                        java ME 主要應用於嵌入式系統開發

 

           5.  Java API文件

         API(application programming interface,縮寫作 API),即應用程式程式設計介面,JavaAPI文件是java程式開發不可或缺的程式設計詞典。記錄了Java中海量的API,主要包括類的繼承結構,成員變數和成員方法,構造方法,靜態成員的詳細和描述資訊。

 

參考文件:
java api 官方線上文件
java API線上中文文件
java API1.8中文版下載

 

  • 6.  java語言的一些特性

簡單,物件導向,分佈性,可移植性,解釋型,安全性,健壯性,執行緒性,高效能,動態。

物件導向的:
物件導向是Java語言的基礎,也是Java語言的重要特性,它本身就是一種純物件導向的程式設計語言。Java提出萬物皆物件。語法中不能在類外面定義單獨的資料和函式。即Java語言的最外部資料型別就是物件,所有的元素都要通過類的物件來訪問。

分佈性:

Java的分佈性包括操作的分佈和資料的分佈,其中操作分佈是指在多個不同的主機上佈置相關操作,而資料分佈是將資料分別存在不同的主機上面。Java可以通過URL(統一資源定位符)物件訪問網路物件,訪問方式於訪問本地系統相同。

可移植性:

Java 程式具有於體系結構無關的特性,可以方便的移植到網路上的不同計算機中。同時,Java的類庫也實現了針對不同平臺的介面,使這些類庫可以移植。

多執行緒:
多執行緒機制能夠使應用程式在同一時間並行執行多項任務,而且相應的同步機制可以保證不同執行緒能夠正確地共享資料,使用多執行緒,可以帶來更好的互動能力和實時行為。

 

二.    資料型別、變數和運算子

 詳細見   https://www.cnblogs.com/zyx110/p/10621799.html

 

1. 資料型別

基本資料型別
整型
byte(1個位元組 表示範圍:-2^7 ~ (2^7)-1)
short(2個位元組 表示範圍:-2^15~(2^15)-1)
int(4個位元組 表示範圍:-2^31 ~ (2^31)-1)
long(8個位元組 表示範圍:-2^63 ~ (2^63)-1)
浮點型
floot(32位 4個位元組)
double(64位 8個位元組)
字元型
char(16位,2個位元組)
布林型
boolean(兩個值:true和false)
引用資料型別
陣列

介面

2. 資料型別轉換

隱式轉換
小型別的資料賦進大型別的變數
例如:
           byte、short、int、char運算時都轉換為int
           short s = 1;
           s= s+1;`這是錯誤運算應改成s+=1;

顯示轉換
           小型別的變數=(小型別)大的資料`會造成精度的丟失`


3.運算子

算數運算子
         `+` 加法 、`-` 減法、`*` 乘法、`/` 除法
         `%` 取餘 `++` 自增 `--` 自減 `+` 字元連線符(當運算元中只要有一個是String型別,系統會自動將另一個運算元轉換成字串型別,然後進行連線)
賦值運算子
          `=`
關係運算子(結果為boolean型別)
邏輯運算子
運算


4、識別符號

識別符號的命名規則
           必須以字母、下劃線(_)或美元符號($)開頭
           餘下的字元可以是下劃線、美元符號或任何的字母或數字,長度不限。識別符號中不能有空格。
           不能使用Java中的關鍵字或者保留字做為識別符號

      類名: Pascal規則 eg:Person StudentDemo
      方法名: Camel規則 eg:getAge setUserName
      包名: 全部小寫 eg:com.neusoft
      常量名: 全部大寫 eg:MAX_VALUE

5.  流程控制語言

1、流程控制語句

    條件控制
if-else
if(布林表示式)
{
   //如果布林表示式為true將執行的語句
}

  


if(布林表示式){
   //如果布林表示式的值為true
}else{
   //如果布林表示式的值為false
}

  

if(布林表示式 1){
   //如果布林表示式 1的值為true執行程式碼
}else if(布林表示式 2){
   //如果布林表示式 2的值為true執行程式碼
}else if(布林表示式 3){
   //如果布林表示式 3的值為true執行程式碼
}else {
   //如果以上布林表示式都不為true執行程式碼
}

          switch-case

switch(expression){
    case value :
       //語句
       break; //可選
    case value :
       //語句
       break; //可選
    //你可以有任意數量的case語句
    default : //可選
       //語句
}

  

    迴圈控制 

for
for(初始化; 布林表示式; 更新) {
    //程式碼語句
}


//增強型 for 迴圈
for(宣告語句 : 表示式)
{
   //程式碼句子
}

 

    while 
while( 布林表示式 ) {
  //迴圈內容
}

  

    do-while
do {
       //程式碼語句
}while(布林表示式);

  


6.  陣列

詳見   https://www.cnblogs.com/zyx110/p/10622685.html

 

1. 陣列:陣列可以看成多個相同型別的資料的組合,實現對這些資料統一管理
2. 陣列的長度:陣列中元素的個數


3. 陣列的其他基本概念
       陣列的索引 -- index
       陣列的型別 -- type
       陣列的名稱 – name
       陣列的宣告
       陣列型別[ ] 陣列名


4. 陣列的建立
陣列名 = new 資料元素型別[元素個數]


5. 陣列的初始化
陣列型別 陣列名[ ] = { 元素1 ,元素2 ,…}
陣列型別 陣列名[ ] = new 資料型別[ ]{ 元素1 ,元素2 ,…}


6. 陣列的訪問
Java中,陣列元素的下標從0開始
元素的下標可以是整型常量或整型表示式
賦值:陣列名[元素下標] = 元素值
取值:資料元素型別 變數名 = 陣列名[元素下標]


7. 陣列的遍歷
for(int i = 0;i<陣列長度;i++){
陣列名[i];
}


8. 多維陣列建立
陣列型別[ ] [ ] 陣列名


9. 陣列的複製
System.arraycopy(source,srcPos,dest,destPos,length)
複製source陣列中從下標srcPos開始的length個元素到目標陣列dest,並從目標陣列的下標為destPos的位置開始儲存
source: 源陣列
srcPos: 源陣列中的起始位置
dest: 目標陣列
destPos:目標陣列中的起始位置
length: 要複製的陣列元素的個數


10. 陣列的排序
Arrays.sort(陣列名)


11. 對陣列排序
Arrays.sort(陣列名,fromIndex,toIndex)
對陣列從下標為fromIndex到toIndex的陣列排序(不包括下標為toIndex的元素)

 

7. 方法的建立和呼叫


1. 什麼是方法
            方法是完成某個功能的一組語句,通常將常用的功能寫成一個方法
2. 方法的定義
            [訪問控制符] [修飾符] 返回值型別 方法名(引數列表){
                                            方法體
             }
3.修飾符:

            public 、static 被稱為修飾符(詳見  https://www.cnblogs.com/zyx110/p/10621592.html


4.返回值型別:

            用來說明該方法運算結果的型別。如果返回其他型別,編譯就可能出錯


5.方法名:

            它作為呼叫時引用方法的標識


6.引數列表:

            方法的引數個數可以是0個到多個,每個引數前面要宣告引數的資料型別;每個引數要用逗號分開。也可以一個引數都沒有。


7. 方法體:

            它是一個語句塊,執行特定的功能操作。對於有返回值型別的方法,方法體當中最後一個語句是return關鍵字,它的作用是把方法的執行(運算)結果返回到方法外部。


8.return 表示式 :

            這裡,進一步分析,return後面的表示式就是方法的返回值。需要注意表示式的型別,必須與方法頭中宣告的“返回型別”相 匹配。
形式引數:在方法被呼叫時用於接受外部傳入的變數


9.引數型別:

            就是該形式引數的資料型別


10. 返回值:

            方法在執行完畢後返回給呼叫它的程式的資料


11. 返回值型別:

            方法要返回的結果的資料型別


12. 方法的分類
            根據引數個數
            無參方法
            有參方法
            根據返回值型別
            有返回值方法
                   返回值型別可以是基本資料型別,也可以是引用資料型別
           無返回值方法
                   void(void不可以省略,必須要寫,用來佔位)


13. 方法的呼叫
             方法只有在被呼叫後才能生效


14. 方法的呼叫方法
無參方法的呼叫
       方法名()
有參方法的呼叫
       方法名(實參列表)
    注:實參列表與定義方法時的形參列表需一致


15. 使用方法時的注意問題
             形參必須註明資料型別
             實參直接寫,不需要型別宣告
             return只能返回一次
             遇到return語句,方法執行結束,後續語句不執行
             方法的返回值必須與宣告中的返回值型別匹配
             方法不能巢狀定義,但可以巢狀呼叫


16. 方法的過載
             方法的過載就是在同一個類中允許同時存在一個以上同名的方法


17. 方法過載的規則
 過載發生在一個類中
        方法名稱相同
        方法的引數列表不同
        引數個數不同`或者`引數型別不同
        與返回值型別無關,可相同,也可以不同


18. 方法的重寫
重寫(rewrite)
       對從父類中繼承來的方法進行改造
       在子類繼承父類時發生


19. 方法重寫的規則
      方法名稱相同
      方法的引數列表相同(引數數量、引數型別、引數順序都要相同)
      方法的返回值型別相同
      子類重寫方法的訪問許可權要不小於父類中被覆蓋方法的訪問許可權

 

 

相關文章