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 最值
最大值
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;}
最小值
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 0
- Java基础知识: 数组和函数
- 黑马程序员--------java基础知识 函数、数组
- 黑马程序员 Java基础知识(二)语法结构、函数和数组
- Java函数和数组
- JAVA函数和数组
- 函数与数组基础知识
- PHP数组函数基础知识
- java数组基础知识
- Java基础知识(数组
- java基础知识8-数组
- Java基础知识--数组
- java基础知识-数组
- Java SE基础知识:数组
- java 基础知识五 数组
- Java基础知识-数组
- java 基础知识2 --数组
- 【java 基础知识复习】数组
- Java基础知识之数组
- HDU1003 Max Sum(最大连续子序和、贪心、DP)
- Python实现欧拉计划27题
- 在SuperMap DeskPro 6R(2012)中如何批量重新指定数据源?
- 矩阵快速幂
- 工具类系列-RequestRedirectUtil
- Java基础知识: 数组和函数
- Zookeeper集群安装
- JSON数据处理及与echarts结合使用时所需要的问题
- 使用XML布局文件和java代码共同控制UI界面做一个简易图片浏览器
- 使用hibernate获取自增主键的id值
- SSH框架开发流程步骤
- 第十三周--形状类族的中的纯虚函数
- 泛型委托Action与func
- 《图解HTTP》学习笔记(四)-返回结果的HTTP状态码