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)寄存器。

 

 

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