int[] nums = null; // 声明了一个整型数组
num[0] =5; //语法上没错误了,但赋值不了
//java.lang.NullPointerException
//异常-空指针异常-没有空间
int num; //这个是没问题的 因为java在处理基本类型时:在栈内存中直接分配了空间,是直接!(不需要手动分配空间)
num = 5; //栈(傀儡 虚拟)和堆(真人 真实)栈内存改变会引起堆内存改变,有点像指针,双向的
Scanner input = new Scanner(System.in);// new:手动在堆内存中分配了空间
input.next();
所以正确的应该是 int[] nums = new int[5];//nums这个变量是在栈内存的,右边的是在堆内存手动分配了5个int类型空间
//然后个这些空间地址赋给了nums这个变量 即nums指向了这个内存
//即数组名是这块新分配空间的首地址
第一句是数组的声明,右边的第二句话十位数组分配空间
所以要声明数组,在为这个数组分配空间
一维数组的初始化:
//错误:声明并初始化数组是不需要指定数组的大小
int years[6] = {2015,2016,2017,2018,2019,2020};
//错误:不管中括号在前还是在后,初始化了都不要指定数组大小
int[12] months = {1,2,3,4,5,6,7,8};
//正确:元素个数为2(days.length == 2)
int days[] = {1,15};
语法正确:但不能为数组元素赋值,因为数组大小一旦定义了,不允许再去修改
int array[] ={};
关于数组大小的默认值:
1、创建数组后就不能再修改数组的大小
2、基本数据类型数组的默认值为0
3、char类型数组元素的默认值为\u0000 // \u是unicode的编码是四个0,相等于\0
4、布尔类型的默认值是false
*/
/**
52.3for (int i : nums) { //我想遍历nums这个数组,而且是nums数组里的i
if(searchNum == nums[i]){ //纯洁一些 一个循环只做一件事,就不要在打印了
//System.out.println("找到了!下标为:" + i);
searchIndex = i;
//找到后,记录下要查找元素的下标
break;
}
}
效果和 for (int i = 0; i < nums.length; i++) { 一样的
Java数组的基础知识
猜你喜欢
转载自blog.csdn.net/w15977858408/article/details/89191569
今日推荐
周排行