java基礎二(語句,函數method和數組Array)

 

   一 .語句

  1.if語句:

   三種格式:

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

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

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

  2.switch語句

  switch(表達式)

  {

   case取值1:

    執行語句;

    break;

   case取值2:

    執行語句;

    break;

   ......

   default:

    執行語句;

    break;

  }

 3. 循環結構:

 (1)while語句:

   while (條件表達式)

   {

    執行語句;

   }

  

   特點:先判斷條件,只有條件滿足時才執行循環體。

 (2)do while語句:

   do

   {

    執行語句;

   }while(條件表達式);

   特點:無論條件表達式是否成立,循環都先執行一次。

 (3)for語句:

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

   {

    執行語句;

   }

  特點:初始化表達式只讀一次,判斷循環條件爲真就執行循環體,然後再執行循環後的操作表達式,接着繼續判斷循環條件,   重複真到條件不滿足爲止。

  二.函數

   1.定義;

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

   2.函數的格式:

   修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,..)

        {

          執行語句;

          return 返回值;

        } 


          返回值類型:函數運行的結果的數據類型。
          形式參數:是變量,用於存儲調用函數傳遞給函數的實際參數。
          參數類型:是形式參數的數據類型。
          return :結束函數,
          返回值:將值返回給調用者。

 

  函數的特點:
  (1)定義函數可以將功能代碼進行封裝
  (2)便於對該功能進行復用
  (3)函數只有被調用纔會被執行
  (4)函數的出現提高了代碼的複用性

  (5)對於函數沒有具體返回值的情況,返回值類型用關鍵 字void表示,那麼該函數中的return語句如果在最後一     行可以省略不寫。、

 

  重載:
  (1)重載的概念: 
  在同一個類中,允許存在一個以上的同名函數,只要它們的參數個數或者參數類型不同即可。
  (2)重載的特點:與返回值類型無關,只看參數列表。
  (3)重載的好處:方便於閱讀,優化程序設計。
  (4)什麼時候用重載?
  當定義的功能相同,但參與運算的未知內容不同,那麼這時就定義一個函數名稱以表示其功能,

  方便閱讀,而通過參數列表的不同來區分多個同名函數。

 

三.數組

 格式:
   格式1:元素類型[] 數組名 = new 元素類型[元素個數或數組長度];
   示例:int[] arr = new int[5];

 格式2:元素類型[] 數組名 = new 元素類型[]{元素,元素......};
   示例:int[] arr = new int[]{3,5,7,8};           int[] arr = {3,8,4,9};

 數組的常見操作:
 (1)遍歷:
  int[] arr = {4,58,7,9};
  for(int x=0;x<arr.length;x++)
  {
   System.out.println("arr[" + x + "]=" + arr[x] + ",");
  }
  (2)求最大值:
  需求:給定一個數組{5,1,6,4,2,8,9};獲取粗數組中的最大值,以及最小值。

  

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

 

(3)選擇排序:

 

 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;
      }
     }
    }
   }
 

 

  

  (4)冒泡排序與功能抽取:
 

 //定義一個功能,對數組進行冒泡排序
  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[y] > arr[y+1])
     {
      swap(arr,y,y+1);
     }
    }
   }
  }
//定義功能,抽取位置置換這部分相同的代碼,
  public static void swap(int[] arr,int a, int b)
  {
   int temp = arr[a];
   arr[a] = arr[b];
   arr[b] = temp;
  }       
 

 

 

 (5)折半查找:
 

 public satic void halfSearch(int[] arr,int key)
  {
   int min=0,max=arr.length-1,mid;
   while(min<=max)
   {
    mid = (max+min)>>1;
    if(key>arr[mid])
     min = mid + 1;
    else if(key<arr[mid]);
     max=mid-1;
    else
     return mid;
    
   }
   return -1;
  }           
 
 
 十進制--->十六進制
  public static void toHex(int num)
  {
   for(int x=0;x<8;x++)
   {
    int temp = num&15;
    if(temp>9)
     System.out.println((char)(temp-10+'A'));
    else
     System.out.println(temp);
    num = num >>> 4;
   }
  }
 

 

  二維數組;
  (1)格式1:int[][] arr = new int[3][2];
  
   二維數組中有3個一維數組,每個數組中有2個元素。
   給第一個一維數組1角標位賦值:arr[0][1] = 78;

  (2)格式2:int[][] arr = new int[3][];
   二維數組中有3個一維數組,每個一維數組都是默認初始化值null,
   對這三個一維數組分別進行初始化:
   arr[0] = new int[3];
   arr[1] = new int[1];
   arr[2] = new int[2];

 

  java中的內存結構:
  java在啓動時,在內存中劃分了五個區域,每個區域都有特定的處理數據方式和內存管理方式。

  (1)棧內存
  用於存儲局部變量,當數據使用完,所佔空間會自動釋放。對象的引用也存放在棧內存。
  (2)堆內存
  數組和對象,通過new建立的實例都存放在堆內存中
  每一個實體都有內存地址值(即存放位置)
  實體中的變量都有默認初始化值(實體是用來封裝數據的)
  實體不再被使用,會在不確定的時間內被垃圾回收器回收
  (3)方法區.
  (4)本地方法區,
  (5)寄存器。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章