1.如何理解基本数据类型和引用数据类型
基本数据类型:数值型(int、long等)、字符型(char)、布尔型(boolean)
引用数据类型:数组(array)、类(class)、接口(interface)
基本数据类型的变量名对应的就是该变量本身。
引用数据类型中的引用是一个地址,该地址指向它的实例对象。
2.如何理解引用和对象
对于下面的代码:
public class Student{
public static void main(String[] args){
//看下面这句代码
Student s = new Student();
}
}
在这句代码中,s
就是是一个引用,new Student()
就是创建一个实例对象的操作,那么s
这个引用中存储的就是一个地址,该地址指向它的对象Student
。
看下图:
3.如何理解局部变量,成员变量,静态变量
public class Student {
//s2是成员变量,它存储在堆中
Student s2 = new Student();
//s3是静态变量,也叫类变量,它存储在方法区
static Student s3 = new Student();
public static void main(String[] args) {
//s1是局部变量,它存储在栈中
Student s1 = new Student();
}
}
局部变量存储在栈上(s1为局部变量):
成员变量存储在堆上(s2为成员变量):
静态变量存储在方法区(s3为静态变量):
4.递归方法的执行过程
图中的递归函数为求n的阶乘,我们设n为5,那么就是求5的阶乘,结果为120。
蓝色箭头表示往下“递”的过程,红色箭头表示往回“归”的过程。
5.static方法和普通方法的区别
普通方法也叫实例方法,有this,和实例相关。
static方法也叫类方法,没有this,和实例无关。
也就是说,静态方法在创建对象前就可以通过类本身使用了,而普通方法必须通过new出来的对象调用。
静态方法通过类直接调用:
public class Student {
public static void read(){
System.out.println("读这句话");
}
}
public class Test {
public static void main(String[] args) {
//通过类直接调用
Student.read();
}
}
普通方法必须通过先创建类的实例对象才能调用
public class Student {
public void read(){
System.out.println("写这句话");
}
}
public class Test {
public static void main(String[] args) {
Student student = new Student();
//创建实例后才能调用
student.read();
}
}