注:该文章仅供本人学习使用,所有内容仅供参考,欢迎大佬点评,手下留情
JVM中的内存区域:
1.方法区
线程共享的内存区域,方法区用来存储类信息,常量,静态常量和编译器编译后的部分代码块.该区域的资源回收主要是常量池的回收和类型的卸载
2.栈
存储方法的空间,每个方法在执行时都会创建一个栈帧用于存储该方法的局部变量和操作栈、动态链接、方法出口等信息。
3.堆
存储数组,所有对象实例的地方,
4.GC(垃圾回收器)
垃圾回收器,当jvm内存不够的时候就会自动清理没有被引用到的对象(即无用对象)
数组的作用
- 在学习数组之前,我们通过一个变量来存储一个值,假设此时我们需要存储100个学生的姓名,n那么我们难道需要定义100个变量来接收吗,这样显然太麻烦,所以我们用到了数组。
- 定义:数组就是将多个相同类型的数据有序结合起来的一种数据形式
- 特点:有序、元素可重复、通过索引操作数据,索引从0开始
数组的定义语法
元素类型[] 变量名;
元素类型 变量名[];(不推荐)
int[] nums = new int[]{};
数组的初始化
静态初始化:当明确添加到数组的元素时
//定义
int[] nums;
//初始化
nums = new int[]{1,2,3,4,5,6,7,7};
动态初始化:当明确数组元素的个数,但是不明确具体的元素时
//动态初始化
int[] nums = new int[4];
//打印数组长度
System.out.println(nums.length);
//重新初始化
nums = new int[9];
引用数据类型(默认NULL)和基本数据类型动态初始化默认值
若动态初始化一个对象数组,需要创建对象赋给该数组,直接调用会NullPointException
数组的元素的操作
如何获取元素的个数
int[] nums = {1,2,3,4,5,6,7,8,9};
int size = nums.length;
如何获取数组中的元素
int[] nums = {1,2,3,4,5,6,7,8,9};
int size = nums.length;
System.out.println(nums[3]);
nums[3] = 99;
System.out.println(nums[3]);
注意事项: 索引越界
如何为数组中的指定索引位置设值
int[] nums = {1,2,3,4,5,6,7,8,9};
nums[2] = 1;
操作数组过程中可能存在的问题和原因
数组索引越界异常:ArrayOutOfBoundsExcption
空指针异常: 当访问一个空引用变量中的成员时会发生空指针异常NullPointerExcption
int[] nums = null;//null表示空引用 int size = nums.length;//发生空指针异常 //排除空指针异常的最好的方式,做非空判断 if(nums != null) { int size = nums.length; }