java学习要点(一)

1.static 初始化

    static成员变量与static语句块在该类对应的class字节码被加载的时候按顺序执行。如:

    Class.forName("test.StaticTest");

    此时,StaticTest类中的static成员变量将会被初始化,static语句块将被执行。

2.protected 访问权限

    protected对应的属性与方法可以被在同一个包中的类访问,子类可以通过子类的引用访问protected属性与方法,

  其实质为:子类可以继承父类的protected属性与方法,子类通过自身的引用访问父类的protected属性与方法时,其实是访问

  子类自己继承的属性与方法。因而,子类不可以通过父类的引用访问protected属性与方法。如:

    package father;

    public Class Father{

      protected void run(){

      }

    }

    package son;

    public Class Son extends Father{

      public static void main(String[] args){

        Father f = new Father();

        f.run();//编译报错,不能通过父类的引用调用父类的protected方法

 

        Son s = new Son();

        s.run();//编译成功,可以通过子类的引用调用父类的protected方法

      }

    }

 

3.finalize研究

    当对象不能被访问时,系统将判断该对象的finalize方法是否被执行过,如果已经被执行,系统将回收该对象;如果没有被执行,该

  对象将被放入F-Queue队列中等待执行finalize方法。方法被执行后,系统将判断该对象是否可以被访问,如果能,则该对象复活,否则

  将被回收。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。