Java基础知识: 数组和函数
2016-05-24 20:11
363 查看
数组和函数
一、数组
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内存
寄存器本地方法区
方法区
栈:存储的都是局部变量,只要数据完成运算就会被释放
堆:用于存储数组和对象,也就是实体
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 在命令行用 sort 进行排序
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序