一、对象数组的内存解析
1、数组和对象都是引用类型的数据,所以变量值只可能是 null 或者 地址值 。
如有一个对象为学生(Student)
Student[] stus = new Student[5];
Stus[0] = new Student;
此时 stus 存放一个地址,指向 5 个空值,执行第二行代码后第一个空值存放一个地址指向Student的初始对象。
借一张Super若离风大佬的图片。
2、举例
sout(Stus[0].number);
sout(Stus[1]);
sout(Stus[1].number);
输出第一行时,输出对象number的初始值;
输出第二行时,因为没有地址值,此时输出null;
输出第三行时,因为没有地址,此时找不到number会报出异常错误。
二、方法的重载
1、规则
在一个类中,允许存在多个同名方法,只要他们的方法参数个数不同或类型不同。
即同一类、同一方法名,不同参数列表。
此时对方法的覆写存在疑问。
三、递归方法
递归方法是函数的一种自调用
题目理解
1、什么是方法的重载
在同一个类,同一个方法名有不同的个参数列表即为方法的重载。
2、说明Java方法中的参数传递机制的具体表现
具体通过 值类型参数 和 引用类型参数 分为两种参数传递方法,值类型参数 传递参数的值, 引用类型参数 传递参数的地址。
3、成员变量和局部变量在声明的位置上、是否有默认初始值上、是否能有权限修饰符修饰上、内存分布的位置上有何不同
成员变量:
声明在类中,方法体外
默认初始值:具有
可以使用权限修饰符修饰
单独分配内存
局部变量:
声明在方法体内
无默认初始值
不可以使用权限修饰符修饰
单独分配内存
4、谈谈return关键字的使用
① 结束方法
② 返回参数