国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

黑馬程序員——【Java基礎】——Java語法基礎

2019-11-14 21:14:15
字體:
來源:轉載
供稿:網友
黑馬程序員——【java基礎】——Java語法基礎

---------- android培訓、java培訓、期待與您交流! ----------

一、關鍵字

  1、定義和特點

  定義:被Java語言賦予了特殊含義的單詞。

  特點:關鍵字中所有的字母都為小寫。

  2、分類

  (1)用于定義數據類型的關鍵字:byte、short、int、long、float、double、char、boolean、class、interface、void

  (2)用于定義數據類型值的關鍵字:true、false、null

  (3)用于定義流程控制的關鍵字:if、else、switch、case、default、for、while、do、continue、break、return

  (4)用于定義訪問權限修飾符的關鍵字:PRivate、protected、public

  (5)用于定義類、函數,變量修飾符的關鍵字:abstract、final、static、synchronized

  (6)用于定義類與類之間關系的關鍵字:extends、implements

 ?。?)用于定義建立實例及引用實例,判斷實例的關鍵字: new、this、super、instanceof

  (8)用于異常處理的關鍵字:try、catch、finally、throw、throws

 ?。?)用于包的關鍵字:package、import

 ?。?0)其他修飾關鍵字:native、strictfp(strict float point,精確浮點)、transient(變量修飾符,用它聲明一個實例變量,在對象序列化時不會被序列化)、volatile(類型修飾符,用來修飾被不同線程訪問和修改的變量) 、assert(斷言,可以看作是異常處理的一種高級形式,用于捕捉我們在代碼中做出的假設)

注意:main不是關鍵字,卻是被虛擬機所識別的一個名稱。

二、常量

  1、定義:java中不能改變的數值,在程序中只能被引用,而不能被重新賦值。

  2、分類:

  (1)整數常量。所有整數。

 ?。?)小數常量。所有小數。

  (3)布爾型常量。較為特有,只有兩個數值。true false。

 ?。?)字符常量。將一個數字字母或者符號用單引號( ' ' )標識。

 ?。?)字符串常量。將一個或者多個字符用雙引號(“”)標識。

  (6)null常量。只有一個數值就是:null。

  3、對于整數,Java有四種表現形式:

 ?。?)二進制(Binary):0,1,滿2進1

  (2)八進制(octal):0-7,滿8進1,用0開頭表示。

 ?。?)十進制(decimal):0-9,滿10進1。

 ?。?)十六進制(hexadecimal):0-9,A-F,滿16進1,用0x開頭表示。

三、變量

  1、定義:內存中的一個存儲空間,該空間有自己的名稱(變量名)和類型(數據類型)。

  2、作用:用來不斷的存放同一類型的常量,并可以重復使用。

  3、定義的格式:數據類型 變量名 = 初始化值。例如:int x = 5

  4、變量作用范圍:從變量定義開始到定義它的代碼塊結束。同一范圍內,不允許多個個局部變量命名沖突。  

  5、Java有兩種數據類型:基本數據類型、引用數據類型,結構圖如下:

  6、Java基本數據類型:所占字節數及取值范圍,如下圖:

  7、“自動類型提升”和“強制類型轉換”

 ?。?)自動類型提升:

  * 在運算中,所有byte型、short型和char型將被提升到int型。

  * 整個算術表達式的數據類型自動提升到與表達式中最高等級操作數同樣的類型。類型提升示意圖如下:

  

  (2)強制類型轉換:當程序中,數據類型需要變換時,可以進行強制轉換。

  8、面試小細節

  若 byte b = 4;byte b1 = 3; b3 = 7;

  則:b = b1+b2;//運行出現“可能溢出”,因為b1、b2是變量,無法判斷結果是否溢出。

  而:b = 3+7 則可以通過運行

四、運算符

  運算符是一種特殊符號,用以表示數據的運算、賦值和比較等,共分以下幾種:

 ?。?/strong>1)算術運算符

  • 單目運算符:+(取正)、-(取負)、++(自增1)、--(自減1)。
  • 雙目運算符:(+ 、-、* 、/、%)­
  • 三元運算符:a>b? val1: val2。 說明:當a大于b為true時,返回val1的值,否則返回val2的值

  (2)賦值運算符(= 、+=、-=、*=、/=,、%=)

 ?。?/strong>3)關系運算符(==、!=、>、>=、<、<=、instanceof(判斷是否是某一個類的對象))

 ?。?/strong>4)邏輯運算符(&&、||、!&、|、^)

  其中,&和&&的特點是:單&時,左邊無論真假,右邊都進行運算;雙&時,如果左邊為真,右邊參與運算;如果左邊為假,則右邊不參與運算。

而“|”和“||”的特點是:“|”表示其兩邊都參與運算。而“||”時,表示當左邊為真,右邊不參與運算。

  (5)位運算符(&、|、^、~、>>、<<、>>>)

  •  左移(<<):空位補0,被移除的高位丟棄,空位補0。
  •  右移(>>):被移位的二進制最高位是0,右移后,空位補0;最高位是1,空位補1。
  •  無符號右移(>>>):被移位二進制最高位無論是什么,空缺位都用0補。
  •  與(&):二進制位進行&運算,只有1&1時結果是1,否則是0。
  •  或(|):二進制位進行 |運算,只有0 | 0時結果是0,否則是1。
  •  異或(^):任何相同二進制位進行^運算,結果是0。注意:一個數異或同一個數兩次,結果還是這個數。

五、程序流程控制

  1、程序流程分類

  四種類型:順序結構、分支結構(條件結構)、循環結構、控制循環結構

  2、四種流程控制定義及特點

  (1)順序結構:代碼里沒有流程控制,程序是至上而下順序地執行完成的,即一條語句執行完之后繼續執行下一條語句,直到程序的最后。

 ?。?/strong>2)分支結構:常見的分支結構包括if...else...語句及swtich語句

 ?、?/strong> if...else...語句

  基本語法:if(表達式){方法體}else if(表達式){方法體}else(方法體)

  三種格式:

  if(條件表達式){執行語句;}

  if(條件表達式){執行語句;}else{執行語句;}

  if(條件表達式){執行語句;}else if (條件表達式){執行語句;}&hellip;…else{執行語句;}

 ?、?/strong> switch控制語句

  定義格式:

  switch(表達式)

  { case 表達式結果值1:

執行語句;

        break;

case 表達式結果值2:

執行語句;

break

default

執行語句;

  }

  switch語句特點:

  • switch語句選擇的類型只有四種:byte,short,int, char。
  • case之間與default沒有順序。先執行第一個case,沒有匹配的case執行default。
  • 結束switch語句的兩種情況:1、遇到break結束;2、執行到switch結尾結束。
  • 如果匹配的case或者default沒有對應的break,那么程序會繼續向下執行,運行可以執行的語句,直到遇到break或者switch結尾結束。

  注:JDK1.5以后可以接收枚舉類型,JDK1.7以后可以接收字符串。

  if和switch語句很像。具體什么場景下,應用哪個語句呢?如果判斷的具體數值不多,而且符合byte short int char這四種類型。雖然兩個語句都可以使用,建議使用switch語句,因為效率稍高。其他情況:對區間判斷,對結果為boolean類型判斷,使用if,if的使用范圍更廣。

3)循環結構

  While:事先不需要知道循環執行多少次;

  do while:同上,只是至少要執行一次(先執行,后判斷);

  for:需要知道循環次數;

  while循環,定義格式如下

  while(循環條件語句)

  { 循環體; }

  do while循環,定義格式如下

  do

  { 循環體; }while(循環條件語句)

  for循環,定義格式如下:

  for(初始化表達式;循環條件表達式;循環后的操作表達式)

  { 循環體; }

  補充:JDK5.0后的增強型for循環,定義格式如下

  For(變量類型 變量名 : 變量名集合){ 執行語句; }

  (4)嵌套循環及控制語句

  嵌套循環:循環里套循環,即外循環嵌套內循環,其中外循環“控制行”,內循環“控制列”,假設外循環的循環次數是m次,內循環的循環次數是n次,那么內層循環的循環次數需要 m * n次。代碼示例如下(打印九九乘法表):

1 for(int x = 1;x<=9;x++){2        for(int y = 1;y<=x;y++){3               System.out.print(x+”*”+y+”=”+x*y+”/t”);4        }5        System.out.println(); 6 }

  控制語句:包括break語句、continue語句;

  break:終止該層循環;

  continue:結束本次循環,進入下次循環

  注:

  ① 若這兩個語句離開應用范圍,存在是沒有意義的。

  ② 這個兩個語句后面都不能有語句,因為執行不到。

 ?、?continue語句是跳過本次循環,繼續下次循環。

  ④ 標簽的出現,可以讓這兩個語句作用于指定的循環,通常不建議使用。

六、函數

  1、定義:函數是具有一定功能的小程序段。

  2、定義格式

  修飾符 返回值類型 函數名(參數列表){

  執行語句;

  return 返回值;

  }

  3、特點:功能代碼的封裝,進行復用;調用才能執行。

  4、注意事項:① 當函數執行后無返回值,此時返回值的數據類型用void作為返回值類型,此時return語句可以省略不寫。② 函數之間是平行關系,只能相互調用,不能在函數內定義函數。③ 函數存放在類中。

  5、如何定義函數?

  定義函數要有兩個明確:① 函數的運算結構式什么。② 明確該函數是否需要有參數參與運算,參與運算的參數類型和個數的情況如何。

  6、函數重載(@override

  * 函數重載:是指在“同一個類”中,參數名稱相同,而參數的類型和個數不同。又稱“同名函數,重復載入”。

  * “函數重載”與“函數返回值類型”無關。函數重載代碼示例:

 1 class overrideDemo 2 { 3        public static void main(String[] args) 4        { 5               int sum1=add(3,4); 6               int sum2=add(3,4,5); 7               System.out.println(sum1); 8               System.out.println(sum2); 9        }10        public static int add(int a, int b)11        {12               int sum = a+b;13               return sum;14        }15 16        public static int add(int a , int b, int c){17               int sum;18               sum = a+b+c;19               return sum;20        }21 }

七、數組(Array)

 ?。ㄒ唬┒x、內存空間劃分、Stack、Heap、數組常見異常問題

  1、定義:數組是Java 語言中內置的一種基本數據存儲結構,通俗的理解,就是一組數的集合,目的是用來一次存儲多個數據。

  2、內存空間劃分、StackHeap、數組常見異常問題

  內存空間劃分:寄存器、本地方法去、方法區、棧內存、堆內存。

  棧內存:存儲局部變量,作用域結束后釋放。

  對內存:存儲數組/對象,凡是new數組或對象都建立在堆中。其中,每一個對象實體都有一個首地址;每一個變量都有默認初始值。

  數組常見異常問題:ArrayIndexOutOfBoundsException、NullPointerException

  (二)一維數組

  1、格式

  格式1:元素類型[] 數組名 = new 元素類型[元素的個數或數組長度];

      示例:int[] arr = new int[5];

  格式2:元素類型[] 數組名 = new 元素類型[]{元素,元素,……};

      示例:int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,7,1};

  2、數組常見操作

  (1)數組遍歷,代碼如下:

1 int arr[] = {12,23,34,12,45};2 for(int x=0; x<arr.length; x++){3        System.out.println(arr[x]);4 }

  (2)求最值,代碼如下:

1        int arr[] = new int[] { 23,26,45,13,12,56,87 };2               int max = arr[0];3               for (int i = 0; i < arr.length; i++) {4                      if (max < arr[i]) {5                             max = arr[i];6                      }7               }8        System.out.println(max);

 ?。?/strong>3)數組排序:

  * 選擇排序,代碼如下:

 1 public static void selectSort(int[] arr){ 2        for( int x=0;x<arr.length-1;x++){ 3               for(int y = x+1;y<arr.length; y++){ 4                      if( arr[x] > arr[y] ){ 5                             int temp = arr[x]; 6                             arr[x] = arr[y]; 7                             arr[y] = temp; 8                      } 9 10               }11        }12 }

  * 冒泡排序,代碼如下:

 1 public static void BubbleSort(int[] arr){ 2        for( int x=0;x<arr.length-1;x++){ 3               for(int y = 0;y<arr.length-1-x; y++){ 4                      if( arr[y] < arr[y+1] ){ 5                             int temp = arr[y]; 6                             arr[y] = arr[y+1]; 7                             arr[y+1] = temp; 8                      } 9              }10        }11 }

  (4)查找

1 public static void getIndex(int[] arr , int key){2        for( int x=0 ; x<arr.length-1 ; x++){3               if( arr[x] == key)4                      return x;5        }6        Return -1;7 }

  (三)二維數組

  1、定義:其實是一個一維數組,它的每一個元素又是一個一維數組。

  格式1int[ ][ ] arr = new int[3][2];    定義了一個二維數組,其中有3個一維數組,每一個一維數組中有2個元素

  格式2靜態初始化:int[ ][ ] arr = new int[][]{{4,8},{3,7},{9,16}};

            int[ ][ ] arr = {{1,2},{3,4},{5,6}};

  2、應用示例:

1 public class Demo3 {2        public static void main(String[] args) {3               int age[][] = new int[][]{{1,2},{3,4},{5,6}};4               System.out.println(age[0][0]);             //輸出結果:15               System.out.println(age[2].length);        //輸出結果:26        }7 }

---------- android培訓、java培訓、期待與您交流! ----------


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平潭县| 深泽县| 定西市| 钦州市| 六盘水市| 昭觉县| 新郑市| 双牌县| 铅山县| 白城市| 安阳县| 荥经县| 碌曲县| 宝应县| 闵行区| 杭锦旗| 宁国市| 伊川县| 柞水县| 黄龙县| 贵港市| 山阳县| 彰武县| 涟水县| 阿合奇县| 广河县| 新源县| 泰来县| 汕尾市| 红原县| 周至县| 南和县| 望奎县| 大冶市| 柞水县| 河南省| 荔浦县| 乌审旗| 榆社县| 长兴县| 兰州市|