一:一维数组的声明与内存分配
数据类型 数组名称[] = null; //声明数组,分配栈内存(用于指向实际地址)
数组名称 = new 数据类型[长度] //分配内存给数组 分配堆内存
注意:数组变量名所保存的不是数组实体,而是数组堆内存的参考地址.
二:二维数组
二维数组 int arr[][] = new int[10][9];i
可以通过arr.length获取arr数组的行数
arr[0].length 获取arr数组的列数
注意:java中的二维数组可以不是矩阵,即每一行需要用arr[i].length来取得当前行的列数.
三:方法的声明及使用
1.方法的定义格式
public (static) 返回值类型 方法名称(类型 参数1,类型 参数2......){
//统称为方法主体
程序语句
return 表达式;
}
同类中由主方法调用的方法需要有public static修饰,或者在主函数中new 一个当前类来调用函数
方法中定义的变量都是局部变量,离开方法后消失.
2.方法的重载,在同一个类中定义同名函数但参数类型或者个数不同,即为方法的重载.
常见的输出函数 System.out.println(); 也是方法的重载
注意:重载的方法可以返回值不相同,但权限必须相同.
3.所有引用数据类型传入方法中进行都修改都会改变其本身
数组就是一种引用数据类型
4.引用数据传入方法中,实际上就是将它的堆内存空间交给了方法.即两个栈内存指向同一个堆内存.
5.数组排序
java类库中自带有数组排序
需要引入java.util包 通过Arrays.sort(数组);调用 默认的排序方式是升序
6.数组复制
java中也有类库支持数组复制
直接调用 System.arraycopy(源组名,源组起点,目标组名,目标开始起点,长度);
7.可变参数
public static void fun(int ...arg){ for (int i = 0; i <arg.length ; i++) { System.out.println(arg[i]); } }
8.foreach输出
public static void fun(int ...arg){ for (int x:arg ) { System.out.println(x); } }
9.数组传递实际上传递的是堆内存的使用权.一个数组可以有多个名称指向同一个堆内存.每个名称都可以改变堆内存中的内容
原文:https://www.cnblogs.com/syjavaweb/p/13634723.html