目录
1、static
1、实例变量、实例方法和静态变量、静态方法的区别
静态变量、静态方法使用static关键字修饰,是与类相关的,使用时用“类名.”方式去调用。
实例变量、实例方法是没有使用static关键字修饰的,是与对象相关的,使用时需要先创建对象,通过使用去调用。
notes:静态的没有空指针异常。
变量的分类
-
局部变量:在方法内部的变量
-
成员变量
-
实例变量:没有用static修饰的变量
-
静态变量:使用static修饰的变量
-
2、使用static修饰的变量(静态变量),在类加载的时候初始化。在JVM中,存储在方法区。
3、什么时候使用静态变量
当所有的对象都有且一样时。
4、实例相关的只能使用“引用.”的方式来使用。但静态相关的可以使用“引用.”的方式来使用,并且不会出现空指针异常。但是建议使用“类名.”的方式使用。
5、怎样判断是使用静态方法,还是使用实例方法?
当方法中直接使用了实例变量时,用实例方法。
工具类中,一般都是静态方法。
notes:静态方法是不可以使用实例变量的。
6、static静态代码块
-
语法格式
-
static{
-
Java语法;
}
-
static静态代码块在类加载的时候执行,且只执行一次,先于main方法。
-
静态代码块遵循自上而下的顺序执行。
作用:可以在类加载的时候做一些操作。
7、实例语句块
语法格式:
{
Java代码;
}
实例语句块在创建对象时执行,且在构造方法之前执行。
8、Java语言中,那些是有顺序的?
-
在方法中,代码自上而下执行。
-
静态代码自上而下
-
静态代码块是自上而下执行
-
静态代码块和静态变量也是自上而下执行
-
-
实例语句块先于构造方法执行。
9、只要是被static修饰就是在类加载的时候执行。
2、this
1、this在JVM中的结构图
notes:
this是一个关键字,是一个引用,存储当前对象的内存地址,代表当前对象。
this存储在堆内存中。
this只能在实例方法或构造方法中使用,静态方法中不能使用。
2、什么时候必须使用this
这样赋不上值
原因:Java语言是一种就近原则的语言。这两个this都是setNo方法中的局部变量
解决方案
3、this的作用
-
在实例方法或构造方法中,区分局部变量和实例变量。
4、怎么在一个构造方法中调用本类的另一个构造方法?
语法:
this(实际参数列表);
注意:this()只能写在构造方法的第一行。不然会报错。
例子:
5、this和类名什么时候可以省略?
当在同一个类中时,可以省略。