java 基础知识考点

sancaiodm Java 2021-12-17 1189 0

[1] 局部变量不允许定义为static。

[2] 局部变量必须要初始化,

答:成员变量会被jvm虚拟机默认初始化,局部变量没这功能,所以必须自己初始化,//当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。

编译器当然可以为局部变量附一个默认值,但是未初始化的局部变量更有可能是程序员的疏忽,所以采用默认值范围会掩盖这种失误。因此强制程序员提供一个初始值,往往能够帮助找出程序里的缺陷。

[3]局部变量除了使用final不能使用其它修饰符

答:java局部变量只能用final修饰(only final is permitted)(或者不加修饰),局部变量的生命周期就在方法内,使用public,private,static等修饰词去修饰方法内部变量是毫无意义的。

[4]接口的变量为什么都是public static final?

答:java是单继承多实现的,假如有多个接口内的变量命名一样,那就会造成分不清具体是哪个接口的变量,为了避免各个接口的变量不冲突,使用static关键字,用接口名.变量名使用。

[5]静态成员变量也没系统默认初始化,必须在初始化块或者定义时或者构造函数里进行手动初始化

[6]java内部类访问局部变量或是形参时局部变量与形参必须声明为final。

[7]static能不能被重写?

重写方法的目的是为了多态,或者说:重写是实现多态的前提,即重写是发生在继承中且是针对非Static方法的,

语法上子类允许出现和父类只有方法体不一样的其他都一样的static方法,但是在父类引用指向子类对象时,通过父类引用调用的依然是父类的static方法,而不是子类的static方法,

  即:语法上static支持重写,但运行效果上达不到多态目的

评论