关键字final:
final变量的定义本身并不复杂,就是变量一经初始化就不能再指向其它对象(并不是不可以改变值)。(原文链接)
model证明被final修饰可以改变值;
因为String是常量,不可以改变值,调用replace()方法后,返回一个新引用,于是str1指向新引用;
str2被final修饰后,不能改变引用地址,所以重新指向时报错了。
关键字static:
被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。
实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。(原文链接)
关键字instanceof:
A instanceof B: 用instancof来测试A是否是B(类/接口)的一个实例。(原文链接)
关键字synchronized:
synchronized锁住的是括号里的对象,而不是代码。(原文链接)
Java泛型:
泛型的使用介绍及格式总结。(原文链接)
Java枚举:
枚举类型Enum的含义分析和使用方法。(原文链接)
Java转型:
向上转型:提高了代码的可扩展性,但是父类的引用会舍弃一些子类的方法。(转型对象优先调用子类方法)
向下转型:提高代码的可扩展性之后,继续能用子类舍弃的方法。(原文链接)
Java权限:
private 本类friendly 本包
proteced 本包、子类
public 所有
接口:
抽象方法全局变量
抽象类:
抽象方法:无方法体,用abstract修饰包含一个抽象方法的类/属性的类必须是抽象类
抽象方法只能声明,不能被实例化
如果继承抽象类(子类不是抽象类),必须实现其所有抽象方法
包含:抽象方法、全局变量、普通方法、普通变量