《Java核心技术 卷1》 - 20240711

2024-07-10  本文已影响0人  转岗做JAVA
1. 编译器编译的时候不检查目录结构,但虚拟机会检查;

如果不依赖其他包,即使目录结构和包名不匹配也可以编译成功,但如果不匹配的话,虚拟机会找不到这些类,导致无法运行;

2. 不显示声明访问修饰符(public、private)的类和成员变量是包可访问的(默认包可访问);
3.如果将一个类声明为final,只有其中的方法自动地成为final,而不包括字段;
4. super并非和this引用是类似的概念;
5. 最好通过调用getClass().getName()获得类名的字符串,不要将类名硬编码;
6. 可以使用sealed class(密封类)控制哪些类可以继承它。
public abstract sealed class JSONValue permits JSONArray, JSONNumber, JSONString, 
JSONBoolean, JSONObject, JSONNull {
// ...
}
7. 接口中的所有方法都自动是public的;

所以在实现接口方法时需要显示声明为public,否则就会编译报错:试图提供更严格的访问权限;

8. 使用default修饰符标记接口提供的默认实现;
public interface Collection {
    int size(); //an abstract method
    default boolean isEmpty() { return size() == 0; }
    ...
}
9. Object.clone提供的是浅拷贝,要想深拷贝,需要重新实现clone方法将子引用的可变对象也clone;
上一篇 下一篇

猜你喜欢

热点阅读