1、静态内部类
1、静态内部类和费静态内部类一样,在被调用的时候才被加载
2、调用外部类的静态变量,静态方法可以让外部类得到加载,不过这里静态内部类没有被加载
3、我们其实加载静态内部类的时候,其实还会先加载外部类,才加载静态内部类
参考资料:https://blog.csdn.net/zhang_yanye/article/details/50344447
2、匿名内部类
我一直以为我懂匿名内部类了,后来看我们公司的源代码,看到这一行有点蒙
private ThreadLocal<SimpleDateFormat> format2 = new ThreadLocal<SimpleDateFormat>(){
protected SimpleDateFormat initialValue() {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return f;
}
};
找了一顿 发现这个就是匿名内部类
匿名内部类有一个前提条件:必须继承一个父类或实现一个接口
当你需要重写一个类或者接口中的某个方法的时候,可以使用这种方式
匿名内部类,就是没有名字的内部类。故没有构造器,必须调用基类的构造器,或者是实现接口的方法
格式如下
new 类名或接口名(){
重写方法;
}; //注意分号
//以上就是内部类的格式,其实这整体就相当于是new出来的一个对象