1.数组
1.数据可以存储一组连续的元素,数据长度确定后不可以改变。
数组常见的两种声明方式:
type[] arrName; //推荐使用
type arrName[]; //从c语言中继承,尽量不要使用
2.数组直接定义后无法直接使用,必须初始化后才可以使用。
数组初始化的方式:
静态初始化:
type[] arrName = new type element[]{element1,element2,element3...};
//简化的形式:
type[] arrName = {element1,element2,element3...};
动态初始化:
type[] arrName = new type[arr.length];
3.数组的操作
1.数组的长度:
arr.length
2.访问数组中存储的数据:
arrName[i]
3.数组的遍历方法:
a.普通循环
for(i = 0, i < arr.length, i++)
b.增强for循环
for(type element: array) //快捷键iter
c.Arrays.toString()
4.
2.可变参数
1.可变参数的是指就是数组,所以可以当作数组处理。
可变参数的语法:
[修饰符列表] 返回值类型 方法名 (形式参数列表,数据类型... 变量名){
//方法体
}
可变参数的操作参照数组使用。
3.数组中常见的两个异常
1.数组下标越界异常(ArrayIndexOutOfBoundsException)
当数组的下标指向一个越界的下表时所报的错误。
2.空指针异常(NullPointerExceptionE)
空指针异常针对所有引用数据类型,避免空指针异常可以用if判断。
4.Java方法中的传参问题
Java方法中只存在值传递,不存在引用传递,所以方法无法修改基本数据类型的值,在方法中传入引用数据类型时,传入的是引用的地址的拷贝,指向同一个对象,传入基本数据类型时,传入的是值的拷贝,在方法出栈后,就被销毁了。
以上建议结合Java的内存结构分析。
5.二维数组
数据类型[][] 二维数组名;
递归
递归主要需要了解的是递归的思想,递归本质上是方法调用自己,需要设置递归出口,否则会栈溢出,有递归出口时,递归深度过大也会使栈溢出,使用递归需要非常小心。
\