Java基础知识: 数组和函数

来源:互联网 发布:mac怎么下photoshop 编辑:程序博客网 时间:2024/05/17 22:34

数组和函数


一、数组

1. 数组基本概念

  • 一维数组

    元素类型[] 数组名 = new 元素类型[元素个数或数组长度];元素类型[] 变量名 = {元素1,元素2...};元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};
  • 二维数组

    元素类型[][] 数组名 = new 元素类型[第一维长度][第二维长度];
  • 数组常见异常

    • 数组脚标越界异常(ArrayIndexOutofBoundsException):访问到了数组中不存在的脚标时发生
    • 空指针异常(NullPointerException):当引用没有指向实体却在操作实体中的元素时发生

2. 数组常见操作

2.1 遍历

  • 遍历所有数组元素然后输出

    public static void printArray(int[] arr) {    System.out.print("[");    for(int x=0; x<arr.length; x++) {        if(x == arr.length-1) {            System.out.println(arr[x]+"]");        }else {            System.out.println(arr[x]+", ");        }    }}

2.2 最值

  1. 最大值

    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;}
  2. 最小值

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

2.3 逆序

  • 把数组元素反转后输出

    public static void reverse(int[] arr) {    for(int x=0; x<arr.length/2; x++) {        int temp = arr[x];        arr[x] = arr[arr.length-1-x];        arr[arr.length-1-x] = temp;    }}

2.4 二分查找法

  • 使用二分法查找数组元素,查找前数组一定是有序的

    public 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(key>arr[mid]){        min = mid + 1;    }    else if(key<arr[mid])        max = mid - 1;    if(max<min)        return -1;    mid = (max+min)/2;  }return mid;

    }


二、函数

1. 函数基本概念

  • 格式

    修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…){    执行语句;    return 返回值;}
  • 修饰符

    • static – 静态的
    • final – 最终的
    • abstract – 抽象的
    • synchronized – 同步的
    • native – 本地的
  • 当函数运算后,没有具体的返回值时,这时返回值类型用一个关键字void来表示

  • void:代表函数没有具体具体返回值的情况。当函数的返回值类型是void时,函数中的return语句可以省略不写

  • 如何定义一个函数?

    • 明确函数返回值类型
    • 明确参数类型和个数

2. 函数重载

  • 重载条件

    • 方法名相同
    • 返回值可以相同也可以不同
    • 参数列表不同,可以是参数个数不不同,参数类型不同
  • 什么时候用重载?

    • 当定义的功能相同,但参与运算的未知内容不用,这时就定义一个函数名称来表示该功能,且通过参数列表的不同来区分多个同名函数。重载与返回类型无关

3. 函数调用

  • 一个类内部方法调用
    • 非静态方法内部调用非静态方法
    • 非静态方法内部调用静态方法
    • 静态方法内部调用非静态方法
    • 静态方法内部调用静态方法
  • 不同类内部方法调用
    • 不同类之间调用方法需要创建对象导包

4. 参数传递

  • 值传递
    • 参数原始值是不改变的
  • 地址传递
    • 在方法内部修改参数的值时,参数原始的值是改变的
  • 应用场景
    • 值传递
      • 8中基本数据类型和String类型
    • 地址传递
      • 除了String类以外的所有复合型数据类型,包括引用类型。


三、Java内存

  1. 寄存器
  2. 本地方法区
  3. 方法区
  4. 栈:存储的都是局部变量,只要数据完成运算就会被释放
  5. 堆:用于存储数组和对象,也就是实体
1 0
原创粉丝点击