java語言的基礎部分

 
java語言的基礎組成
 
1.關鍵字:被java語言賦予了特殊含義的單詞,所有的字母都是小寫的,要注意java語言是嚴格區分大小寫的;
 
2.標識符:程序中自定義的一種名稱,由_、$、0-9之間的數字和26個字母(大小寫)組成;
  注意: 1.數字不不可以開頭;
        2.不可以使用關鍵字;
        3.主函數名稱main不是關鍵字,被虛擬機識別;
        4.在java中,爲了提高閱讀性,起名的時候儘量起的有意義。
     
  命名格式:變量名和函數名 xxxYyyZzz
          常量名 XXX_YYY
          類名 接口名  XxxYyyZzz(首字母大寫)
 
  註釋:Java中常用的三種註釋方式:
      1.單行註釋://,能嵌套多行註釋;
      2.多行註釋:/**/,能嵌套單行註釋,不能嵌套多行註釋,因爲結尾不對;
      3.文檔註釋:/***/,可以通過javadoc來提取,生成說明書,放到網頁中,這也是和多行註釋的區別;
      對於多行和單行註釋,被註釋的文字不會被虛擬機識別。
   
      作用:1.說明、註解程序;  2.調試程序代碼。
    
     注意:要養成一邊註釋一邊寫代碼的習慣,先寫程序的註釋(需求、步驟、思路),再寫代碼;
        如Hello World的程序步驟:
         1.通過class關鍵字定義一個類,將代碼寫到該類的區間中(區間要有階梯層次感);
         2.爲了保證該類的獨立運行,在類中定義一個主函數,格式:public static void main(String[] args),這           裏的args是數組名稱,可以自定義;
         3.保存成一個擴展名爲.java的java文件;
         4.在dos控制檯中通過javac工具對java文件進行編譯,格式:javac 文件名.java
         5.再通過java命令對生成的類文件進行執行,格式:java 文件名
          
 3.常量:在程序中其值不會改變的量;
      整數常量:所有整數;
      小數常量:所有小數;
      字符常量:將一個字母或者符號用''括起來來標示,如'e';
      字符串常量:將一個或者多個字符用""括起來標示;如"erwer";
      布爾型常量:只有兩個值true和false;
      空常量:只有一個數值null;
  
    對於整數,java中有四種表現形式:
       二進制:0-1,滿2進1;
       十進制:0-9,滿10進1;
       八進制:0-7,滿8進1,用0開頭表示;
       十六進制:0-15,滿16進1,用0X開頭表示。
     
   進制的特點:八個二進制=一個字節;進制越大,表現形式越短。
   進制間的轉換:
       二——>十進制:二進制乘以2的過程;
       十——>二進制:對十進制數進行除2運算;
       其它進制轉換,先轉成二進制再轉。
    負數的二進制表現形式:正數的二進制取反加一;如-6的二進制:
            6: 0000-0000 0000-0000 0000-0000 0000-0110
       對6取反:1111-1111 1111-1111 1111-1111 1111-1001
       加1操作:0000-0000 0000-0000 0000-0000 0000-0001
      ————————————————————————————————————————————————
      結果:    1111-1111 1111-1111 1111-1111 1111-1010
   
   負數的最高位爲1,而正數最高位爲0.
   
 4.變量:將不確定的數據進行存儲,也就是需要在內存中開闢一空間,即通過明確數據類型、變量名稱和數據來完成;
      定義的格式:數據類型  變量名=初始化值;如 int i=4;
      其它數據類型:byte b=2;//-128~127;若byte b=128,則提示可能會損失精度;
         short s=30000;//-32768~32767;
         long k=4l,後面加上L的小寫,表示long型;
         char ch='4';
         boolean b=true;
    什麼時候定義變量?
       當數據不確定,需要對數據進行存儲時定義一變量完成存儲動作。
     
     注意: 1.byte b=3;b=b+2; System.out.println(b);這個在b=b+2時會報錯,因爲在這裏b佔一個8位,而2是int型的佔4個8位,不能直接進行運算。
           2.System.out.println('a')與System.out.println('a'+1)的區別:前者輸出a,後者輸出98,因爲將char型'a'自動提升爲int型再加1。
     
     自動類型提升:小單位向大單位提升;byte b=2;int i=3;i=i+b;
     強制類型轉換:強制將大單位轉向小單位;byte b=2;b=(byte)(b+2);
  
 5.運算符:提供符號對數據進行運算。
     1.算術運算符:+ - * / % ++ -- 
        ++/--前綴式和後綴式參與運算時的區別:
          前綴式:先自增(減),再賦值
          後綴式:先賦值,再自增(減)
 
     2.賦值運算符:+= -= = *= /= %=
          short s=3,s+=2和s=s+2的區別
          s=s+2會報錯,2爲int類型,所以s+2會隱式轉換爲int類型,而s爲short類型,int比short精度高,這樣會損失       精度;
          而s+=2在內部能夠自動完成將結果轉換成對應類型的操作。
 
     3.比較運算符:< > <= >= == !=
          比較運算符的結果都是boolean型的,就兩值,要麼false要麼true。
  
     4.邏輯運算符:& | ^ ! && ||
          &和&&的區別?&是左右兩邊只要有一個條件的表達式爲假結果都爲假,即兩邊都要參與運算;而&&是當左邊值爲假時                    ,右邊不再參與運算,結果爲假。
  
     5.位運算符:<< >> >>> ^ ~ & |
          << >>  >>>   2*8=2<<3
          >>和>>>的區別? >>:移出後,若高位爲0則左邊用0補齊,若高位爲1則左邊用1補齊;而>>>:無論高位爲0還是1結                            果都用0補齊。
          ^的特殊之處:一個數與另一個數同時異或兩次,結果仍是原來那數。
 6 語句:
    語句什麼時候用:當需要對程序的流程進行控制的時候使用。簡單說,告訴計算機在進行運算時該按照什麼樣的執行順序來完                 成。
         條件語句:對數據或者區間範圍進行判斷,或者對運算結構是布爾類型的進行判斷(if語句)。
        三元運算符:運算完要有值的出現。
      if()else語句:可以操寫在其他表達式中。
 
     選擇語句:對幾個固定的值(byte、short、int、char)進行判斷的時候(switch語句)。
        特點:case和default之間沒有順序,首先執行第一個case語句,沒有匹配的case語句就執行default語句,遇brea             k或者}結束。
  
     循環語句:當需要對某些語句執行很多次的時候。
        while:先判斷條件是否成立,若成立則執行。
        do while:無論條件是否成立,都先執行一次,再判斷。
 
        for:for循環是在循環內初始化變量,在循環外不能使用;
        while:在循環外初始化變量,循環內外都能使用。
 
     for循環嵌套:在打印圖形時,外循環控制行,內循環控制列。
 
        break:適用於switch語句和循環;當它單獨存在的時候,下面不要定義任何語句,因爲執行不到。
        continue:適用於循環;當它單獨存在時,下面的語句也執行不到。作用是結束本次循環,繼續下次循環。
 7 函數:對功能代碼進行封裝,以便提高複用性。
    如何定義一個函數?
       1.明確這個函數功能的結果,其實是在明確函數的返回值類型;
       2.明確這個函數功能的未知內容,其實是在明確函數的參數列表(參數類型和參數個數)。
 
      寫程序時,都需要將功能都封裝到具體的函數中,主函數中只要進行的動作就是調用,以驗證自定義函數功能的正確性。
 
         誤區:
           //正確情況。
                   public static void main(String[] args)
                   {
                      int num=add(4,5);
                      System.out.println(num);
                   }
                   public static int add(int a,int b)
                   {
                      return a+b;
                   }
          //誤區情況
                   public static void main(String[] args)
                   {
                      add(4,5);
                   }
                   public static int add(int a,int b)
                   {
                      System.out.println(a+b);//需求是將兩個數加起來求和,並不需要打印出來
                   }
 
       函數的重載:一個類中允許存在兩個及以上函數名一致的函數,只要參數列表不同就行。
  
       什麼時候使用?
          當要定義的功能一致但未知內容不一致時,可以讓其函數名一致,但參數列表(參數個數和參數類型)不同。
       注意:重載只在一個類中有效。
  
       好處:相同功能不用定義多個名稱,方便調用和閱讀,提高複用性。
       return語句的作用:1.結束循環語句 2.返回結果給調用
    
 8 數組:同一種類型數據的集合。
     特點:1.定義數組必須明確元素的類型。
          2.定義數組必須明確元素的個數(數組的長度)。
          3.數組的長度必須是固定的,不能改變。
          4.操作數組的核心思想是索引(角標)。
          5.給元素進行編號(從0開始,到Length-1結束)。
  
     什麼時候使用數組?
        當數據多的時候,必須先想到用數組進行存儲,然後再通過數組對其中的數據進行操作。
 
        數組這個實體僅具備一個屬性,就是Length,可以直接獲取數組的長度。
 
     常見操作: 1.最值
              2.排序
              3.查找(對於有序數組可以進行折半查找——二分法查找)
 
     二維數組:其實就是在數組中存儲的還是數組。
 
        Java的內存劃分:
             1.寄存器,cpu涉及的區域。
             2.本地方法區,是和系統相關的代碼存儲區域。
             3.棧內存:存儲的都是局部變量,變量運算區域一結束,就釋放。
                   局部變量:在方法上的參數,方法內的變量,語句中的變量。
             4.堆內存:存儲的是數組和對象,簡單說,堆內存中存儲都是實體。
                  實體就是可以存儲多個數據地方。記住,只要是用new建立都存儲在堆內存中。 
                    特點:1.任何實體都有內存地址值。
                         2.堆內存中的變量都有默認初始化值。 
                         3.垃圾回收機制。
             5.方法區:存儲函數的地方。
 
     數組的查找:
        順序查找:要定義找不到時返回的值;
        折半查找:數組必須是有序的,找不到的條件begin>end.
 
   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章