Java数组的基础知识

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数组的基础知识)