java快速打System.out.println()
在idea中直接sout加回车即可
java的数组
有两种
一种是 int [] arr
表示定义一个int类型的数组,数组名字为arr
一种是int arr []
表示定义一个int类型的变量,变量名是arr数组
所以使用第一种比较好
java的数组必须先初始化,才能使用
java的数组初始化是为数组分配内存空间,并且为每个数组元素赋值
分为动态初始化和静态初始化
动态初始化:初始化只指定数组长度,由系统为数组分配初始值
eg: int [] arr=new int [n](n为你new的数组长度)
如果直接System.out.println(arr),则会直接输出你为数组申请的内存空间的地址值
输出数组中的元素:System.out.println(arr[x]),就是和c中的一样方法
循环输出java的数组
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.println(arr[i][j]);
}
}
因为在java中,我们循环输出数组都是靠arr.length,但是在二维数组中,直接arr.length是代表有几行,而arr[i].length代表的是具体的第几行代表的有几列
java中的内存分配
你用new时候,new会开辟新的内存空间
且数组在初始化时,会为存储空间添加默认值,和c一样的默认值
eg:
内存分为栈内存和堆内存
多个数组指向相同
eg:int [] arr=new int [3];
int [] arr2=arr;//在这里我们的arr申请了new的内存空间,也就是堆内存,然后arr2指向了arr所申请的内存空间,所以arr2和arr的地址值是相同的,并且,如果我们对arr2的值进行修改,堆内存中的new的值也会发生改变,并且arr的值也会发生改变,因为arr和arr2所指向的内存是一样的,都是我们new出来的,就是类似c的指针
静态初始化内存
初始化时指定每个数组元素的初始值,由系统决定数组长度
eg:int [] arr=new int [] {1,2,3};
简化格式:int [] arr={1,2,3};//建议用这个
数组操作的异常
数组越界
空指针异常:数组指向了null这个空指针,会报错
获取数组元素数量
格式:数组名.length