内部类
- 静态内部类
- 静态内部类本身可以访问外部的静态资源,包括静态私有资源。但是不能
访问非静态资源,可以不依赖外部类实例而实例化。
- 静态内部类本身可以访问外部的静态资源,包括静态私有资源。但是不能
- 成员内部类
- 成员内部类本身可以访问外部的所有资源,但是自身不能定义静态资源,因
为其实例化本身就还依赖着外部类。
- 成员内部类本身可以访问外部的所有资源,但是自身不能定义静态资源,因
- 局部内部类
- 局部内部类就像一个局部方法,不能被访问修饰符修饰,也不能被static修饰
- 局部内部类只能访问所在代码块或者方法中被定义为final的局部变量
- 匿名内部类
- 没有类名的内部类,不能使用class,extends和implements,没有构造方法
- 多用于GUI中的事件处理
- 不能定义静态资源
- 只能创建一个匿名内部类实例
- 一个匿名内部类一定是在new后面的,这个匿名类必须继承一个父类或者实现一
个接口 - 匿名内部类是局部内部类的特殊形式,所以局部内部类的所有限制对匿名内部类
也有效
抽象类和接口
- 一个子类只能继承一个抽象类,但能实现多个接口
- 抽象类可以有构造方法,接口没有构造方法
- 抽象类可以有普通成员变量,接口没有普通成员变量
- 抽象类和接口都可有静态成员变量,抽象类中静态成员变量访问类型任意,接口只能
public static final(默认) - 抽象类中可以没有抽象方法,抽象类可以有普通方法,接口中都是抽象方法
- 抽象类可以有静态方法,接口不能有静态方法
- 抽象类中的方法可以是 public、protected;接口方法只要public
Map
1.线程安全的map Hash Table,SynchronizedMap,ConcurrentHashMap
单例
- 线程安全
- 饿汉式
- 懒汉式
- 枚举
- 静态内部类
- 双检锁模式
线程对象
- 创建
- 继承Thread类,重载run方法
- 实现Runnable接口,实现run方法