1. 程式人生 > >黑馬程式設計師_java語言基礎組成

黑馬程式設計師_java語言基礎組成

二、java語言基礎組成

1   關鍵字

      其實就是某一個計算機語言對指定的單詞賦予了特殊的含義。

       特點:體現上都是英文小寫。

2   識別符號

      就是在程式中起的名字。

      包含:0~9,a~z,$,_。

       注意:1、數字不可以開頭。

                    2、名稱不可以使用關鍵字。

3    註釋

       作用1: 註解,說明,解釋。

       表現形式三種:

        1、單行註釋。行的開頭加  “//”

        2、多行註釋。有開始有結束   /*    註釋的內容       */

        3、java中特有的註釋,文件註釋。/**   註釋內容*/      通常用於對程式進行說明,並可以建立說明文件。

      作用 2:用於除錯程式

       註釋的細節:註釋的巢狀

        單行註釋中可以有單行,多行註釋。

         多行註釋中可以有單行註釋。

4   常量和變數

  常量:表示不能改變的數值。

        1、整數常量,所有整數。表現形式有:二、八(以0開頭)、十、十六(以0x開頭)進位制。

        2、小數常量,所有小數。

        3、布林型常量,較為特有,只有兩個數值,true、false。

        4、字元常量,將一個數字、字母或者符號用單引號(‘’)標識 。

        5、 字串常量,將一個或者多個數字、字母或者符號用雙引號(“”)標識 。

        6、null常量,只有一個數值就是null。

     負數轉換:對應的正數的二進位制取反+1,。

   變數:就是將不確定的資料進行儲存。

             也就是需要在記憶體中開闢一個空間。

   定義變數的格式:資料型別 變數名  = 初始化值

             資料型別:

            

        型別轉換

            制動型別提升

            強制轉換,即b=(byte)(b+2)

5   運算子

       1、算術運算子:+、-、*、/、%(模,取餘)+(連線符,用於連線字串)++自增,——自減

             對於a自增

             ++a    即    a=a+1

            當自增參與運算的時候,++在前在後市有區別的,在前自增後參與運算。

       2、賦值運算子: =、+=、-=、*=、/=、%= 

       3、比較運算子:>、<、>=、<=、==、!=

             該運算子運算完的結果要麼是true,要麼是false。

       4、邏輯運算子(用於連線boolean型別的表示式)

             &、|、&&、||、^(異或)、!非

             &&:當左邊為false時,右邊不參與運算

            ||:當左邊為true時,右邊不參與運算

             ^:兩邊結果一致。運算結果是false,兩邊結果不一致。運算結果是true。

        5、位移運算子

             左移:<<

            右移:>>

            無符號右移:>>>

           &、|、^、~(反碼)

        6、三元運算子

           int x=1;y

            y  =  x  +  1?100:200      真100,假200。

6   語句

     程式流程控制:順序結構、判斷結構、選擇結構、迴圈結構。

     1、判斷結構

     if 語句,三種格式:

        1>  if (條件表示式)

               {

                    執行語句;

               }

           2>   if (條件表示式)

               {

                    執行語句;

               }

                else

                {

                    執行語句;

               }

             3>if (條件表示式)

               {

                    執行語句;

               }

                else  if

                {

                    執行語句;

               }

              ……

              else

                {

                    執行語句;

               }

     if  else 結構間歇格式:變數  =  (條件表示式)?表示式1:表示式2;

    三元運算子

             好處:可以簡化 if  else 程式碼。

            弊端:因為是一個運算子,所有運算完必須有一個結果。

      2、選擇結構

          swith  語句                     格式:

                swith(表示式)//byte、short、int、char

                 {

                      case   取值1:

                                執行語句;

                               break;

                     case   取值:2

                                執行語句;

                               break;

                      case   取值3:

                                執行語句;

                               break;

                   default:

                             執行語句;

                           break;

                 }

          if和swith 語句很像具體用那麼語句?

         如果判斷的具體數值不多,而是符合byte short int  char這四種類型,雖然兩個語句都可以使用,建議使用swith語句,因為效率稍高。

       其他情況,對區間判斷,對結果為boolean型別判斷,使用if, if 的使用範圍更廣。

  3、迴圈結果

    代表語句:while、do   while、for

           while語句格式

             while(條件表示式)

            {

                 執行語句(迴圈體);

              }

              do  while語句格式

             do        

              {

                 執行語句(迴圈體);

              } 

              while(條件表示式);

              do   while 迴圈體至少執行一次。

            for(初始化表示式;迴圈條件表示式;迴圈後的操作表示式)

              {

                 執行語句(迴圈體);

              }

        for  語句

        1、變數有自己的作用域,對於for來講,如果將用於控制迴圈的增量定義在for語句中,那麼該變數只在for語句內有效,

       for語句執行完畢,該變數在記憶體中被釋放。

       2、for和while 可以進行互換,如果需要定義迴圈增量,用for更為合適。

    語句巢狀形式,其實就是語句中還有語句

    “\”的應用

     製表符\t       換行符 \n    退格鍵 \b          按下回車鍵\r         轉移符  \

   其他流程控制語句

   break(跳出),continue(繼續)

   break語句:應用範圍:選擇結構和迴圈結構

   continue語句:應用與迴圈結構

注:1、break和continue語句的作用範圍

        2、break和continue單獨存在時,下面可以有任何語句,因為都執行不到。

7   函式

    定義:函式就是定義在類中的具有特定功能的一段獨立小程式,也稱方法。

    函式的格式:

          修飾符   返回值型別  函式名(引數型別  形式引數1,引數型別  形式引數2)

            { 

                   執行語句;

                   return 返回值;

              }

       修飾符:通過關鍵字對被修飾的內容加上指定的含義。

       返回值型別:這要先明確什麼是返回值,函式就是一個功能,通常功能結束後,都有一個結果,而這個結果就是返回值。

       函式名:函式就是一個程式碼區間,這個區間要被使用,必須有個名字,這就是函式名。

       引數:就是參加運算的資料。

       return   有結束函式的功能。

      功能技巧:1、明確該功能的結果是什麼?

                  2、明確該功能中是否需要未知內容參與運算。

      當函式運算後,沒有具體的返回值時,這是返回值型別用一個特殊的關鍵字來標識,該關鍵字就是void,

      void:代表的是函式沒有具體返回值的情況。

   函式的過載(overload)

    什麼時候用過載?

        當定義的功能相同,但參與運算的未知內容不同,那麼這時就定義一個函式名稱以表示其功能,方便

      閱讀,而通過引數列表的不同來區分多個同名函式

8   陣列

概念:同一種類型資料的集合,其實陣列就是一個容器。

 特點:1、這些資料必須是同一型別。2、儲存時必須明確元素的個數。

格式1(非靜態):元素型別 [ ]   陣列名 =  new  元素型別 [ 元素個數或陣列長度];

     陣列建立後都有預設初始化值,如int型別,預設值為0。

 例:int  [ ]   arr =  new   int  [2 ] ;   

  記憶體結構

  棧:資料使用完畢,會自動釋放。

  堆:堆允許程式在執行時動態地申請某個大小的記憶體(實體包括陣列和物件,用new建立)。

格式2(靜態):元素型別 [ ]   陣列名 =  new  元素型別 [ ]{元素,元素,……};

            元素型別 [ ]   陣列名 = {元素,元素,……};

    常見異常

     角標越界異常:arrayIndexOutOfBoundsException

       空指標異常:NullpointerException

    陣列的操作:獲取陣列中的元素,通常會用到遍歷。例如

                      int  [ ]  arr = new int [3]; 

          陣列中有一個屬性可以直接獲取到陣列元素個數。length

          使用方式:陣列名稱.length 

   獲取最大值(最小值)

 public  static int getMax(int [ ]   arr)
        {
              int  max  =  0;
                for (int  x  =  1;   x <arr.length ;  x++)
                {
                          if (arr[x] >arr[max])
                                  max   =  x;
                 }
                  return  arr[max];
        }

     陣列選擇排序

public  static  void  selectSort(  int [ ]  arr)
         {
                  for  (int  x  = 0;  x < arr.length-1; x++)
                    {
                          for  (int  y  = x+1;  y < arr.length; y++)
                                {
                                        if (arr[x] >arr[y])      
                                           {
                                                   int  temp  =  arr[x];
                                                    arr[x]  =   arr[y];
                                                    arr[y]  =  temp;
                                            }           
                                }
 
                    }
          }

          氣泡排序

public  static  void  bubbleSort(  int [ ]  arr)
             {
                 for  (int  x  = 0;  x < arr.length-1; x++)
                   {
                         for  (int  y  = 0;  y < arr.length-x-1; y++)
                           {
                                        if (arr[x] <arr[y])      
                                           {
                                                   int  temp  =  arr[x];
                                                    arr[x]  =   arr[y];
                                                    arr[y]  =  temp;
                                            }           
                            }
 
                   }
            }

           java中的排序,  Arrays.sort (arr);

           陣列元素的位置置換

  public  static  void  swap(  int [ ]  arr,int  a,int b)
                 {
                       int  temp  =  arr[x];
                     arr[x]  =   arr[y];
                      arr[y]  =  temp;
                    }       

         陣列的查詢

 pubic static int  getIndex (int[] arr ,int key)
           {
                    for(int  x = 0;  x <arrr.length; x++)
                       {
                            if (arr[x]==key)
                              return  x  ;
                        }
                    return  -1;
            }

      折半查詢,必須陣列是有序的

   pubic static int  halfsearch(int[ ] arr ,int key)
           {
                   int  min, max ,mid;
                   min   =  0;
                    max  = arr,length-1;
                   mid   =  (max  + min)/2;
                      while (arr[mid]!=key)
                        {   
                             if (arr[mid]  >  key) 
                                  min  = mid  +1;
                               esle   if (key < arr [mid])
                                    max  = mid -1;
                                 if (min>max)
                                       return  -1;
                              mid  = (max + min )/2;
                       }
                    return  -1;
            }

          二維陣列

               格式1:int [ ][ ]   arr = new  int [3] [4];

               格式2:int [ ][ ]   arr = new  int [3] [ ];

                  引用變數初始化值都為null。