Day1

作者: 大海孤了岛 | 来源:发表于2017-04-19 23:50 被阅读2次
1. final、finally和finalize的区别
  • final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
  • finally是异常处理语句结构的一部分,表示总是执行。
  • finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖方法提供垃圾收集时的其他资源的回收,比如关闭文件等。
2. 关于序列化
  • 对象序列化的所属类需要实现Serializable接口
  • 使用ObjectOutputStream和ObjectInputStream可以将对象进行传输
  • 声明为static和transient类型的成员不能被串行化。因为static代表类的状态,transient代表对象的临时数据。
3. CollectionCollections的区别:
  • Collection是java.util下的接口,它是各种集合结构的父接口。
  • Collections是java.util下的类,它包含各种有关集合操作的静态方法。
4.关于构造方法的几点注意事项
5. 关于类的名字的获取:
package test;
import java.util.Date;
public class SuperTest extends Date {
    private void test(){
        System.out.println(getClass().getName());
        System.out.println(super.getClass().getName());
    }

    public static void main(String[] args){
        new SuperTest().test();
    }
}

输出结果:
extend.SuperTest
extend.SuperTest

TestSuper和Date的getClass都没有重写,因此调用的是Object的getClass,而Object的getClass作用是返回运行时类的名字。

6. static的初始化:
public class Test {
    static int cnt = 6;
    static {
        cnt += 9;
    }
    public static void main(String[] args){
        System.out.println("cnt= " + cnt);
    }
    static {
        cnt /= 3;
    }
}
输出结果:
cnt= 5

初始化顺序:
1.先父类,后子类
2.先属性,后构造函数
3.先静态,后非静态
4.先静态属性,后静态代码块
5.同一类型(非数据类型,指以上),按代码先后顺序

7. 接口的变量定义:
public interface IService { String NAME = "default"; }

接口中的变量默认为public static final的,方法默认为public abstract的

8. 访问修饰符作用范围:
Paste_Image.png

网友评论

      本文标题:Day1

      本文链接:https://www.haomeiwen.com/subject/ayhkzttx.html