函数及其数组的知识:
1.函数的定义:
函数定义在类中,具有特定功能的小程序。
格式:
修饰符 返回值类型 函数名(参数类型1, 形式参数1,....可以是多个....)
{
执行语句;
return 返回值;
}
参数:
参数类型:就是基本数据类型和引用数据类型
形式参数:就是接收实际参数的变量
实际参数:实际参与运算的那个变量
注意事项:没有返回值类型就是void,就不用return,也可以带上return如果不带上有默认的加上,如果带上void就必须有返回值并且带上return
函数与函数是平级关系,不能嵌套定义
函数只有被调用才被执行
函数的调用:具有明确返回值的函数调用
单独调用:一般没有实际的意义,如果没有返回值类型就直接调用函数即可
输出调用:有一定的弊端
赋值调用:定义一个与返回值类型相同的变量(不要忽略隐式转换的问题)
函数是怎么结束:
函数其实就是由关键字return让其结束的,在return后面的语句就不在执行
2.函数的重载:
由于函数名字的见名知意的要求java提供一种机制就是函数重载
特点:
函数名相同,参数列表不同(个数不同是,类型不同)
与返回值类型无关
注意事项:实际类型是小的,形式类型是大的是可以的,反之则不行。(基本数据类型转换的注意事项)
3.数组的概述:
数组就是存储多个同一种数据类型元素的容器。
好处:就是给数组标号,即就是索引,从0开始,索引的格式:数组名[索引下标];
格式1:
元素类型[] 数组名=new 元素类型[元素的个数或者长度];
例子:int[] arr=new int[5];
数组的长度可以为0即 int[] arr=new int[0];
改变格式: int arr[]=new int[5];
错误格式:int[] arr=new int[];没有数组的维数
格式2:
数据类型[] 变量名=new 数据类型[]{0,0,0};
例子:int[] arr=new int[]{1,3,5};
int[] arr=new int[]{};长度为0,编译可以通过。
改变格式:int[] arr={1,2,3};
注意事项:数组越界异常 索引找不到
空指针异常 arr=null;null是引用数据类型的常量
特点:
1.可以存储基本数据类型,也可以存储引用数据类型
2.一个只能存放同一种数据类型
3.数组的长度是不可以变化的
字节打印数组:看到数组在内存中的地址值的十六进制的表现形式
4.java的内存:
栈:变量,或者方法的执行
栈区的数据使用完毕就自动消失
堆:所有new出来的
每一个new出来的都有地址值
每一个实例都有默认值
整型:0
浮点型:0.0
字符型:'' '\u0000'
字符串:null
boolean: false
会在不确定的时间被垃圾回收器回收
方法区:方法 String常量池 静态区(面向对象)
本地方法区:就是跟系统相关的方法
寄存器:由CPU执行
5.两个引用变量指向同一个内存空间:
多个引用指向同一个对象(数组之间的赋值就是赋值地址值)
6.数组的遍历:
记住:arr.length;
数组求最大值
基本查找法:
7.二维数组:
二维数组的每一个元素其实就是一个一维数组
格式一:
int[][] arr=new int[3][2];
解释:
二维数组中有三个一维数组
每一个一维数组有二个元素
二维数组中一维数组存储是地址值,没有初始化就是null
格式二:
int[][] arr=new int[2][];
错误格式:int[][] arr=new int[][3];
格式三:
int[][] arr={{2,3},{1,2,3},{2,5}};
8.二维数组的遍历:
注意:arr.length获取二维数组的长度就是获取一维数组的个数
arr[x].length就是获取一维数组的长度
|
|