多线程
核心点:线程安全
- 创建线程的两种方式
- 线程生命周期
- 获取、修改线程名
- 获取当前线程对象
- 静态方法 sleep()
- 通过异常终止线程的睡眠 interrupt()
- 强行终止线程
- 合理终止线程的方式
- 了解(静态方法,让位 yield();实例方法 join(),合并线程)
- 线程安全
- 同步异步
- 线程安全之账户取款
- 同步代码块
- 守护线程
- 定时器
- 实现线程的第三种方式:FutureTask 方式,实现 Callable 接口(JDK8 新特性)
- 关于 Object 类中的 wait() 和 notify(),生产者和消费者模式
反射
核心点:怎么通过反射获取修改类的属性以及调用方法
- 获取 Class 的三种方式【掌握】
- 利用反射机制通过配置文件实例化对象(不创建流和获取绝对路径,直接以流的形式返回,进行 load(流))
- Class.forName(完整类名) 会导致类加载,实现只让静态代码块执行(jdbc 中会用到)
- 获取类路径(项目 src 下文件夹)下文件的绝对路径通用方式
- 使用资源绑定器代替 IO+Properties 获取属性配置文件
反射机制必须掌握:Method > Field > Constructor
- 通过反射机制调用对象的方法【必须掌握 must be !】
- 通过反射机制获取和修改对象的属性
- 通过反射机制调用对象的构造方法创建对象
- 通过反射获取指定类的父类以及实现的接口
- 获取Class的三种方式
注解
- 官方的两个注解:@Deprecated (已过时的),@Override(监测是否是重写父类的方法)
- 元注解:注解注解的注解(用在注解的上面)
需掌握的四个注解:(两个官方注解,两个元注解)
- @Override 监测是否是重写父类的方法
- @Deprecated 已过时的;不建议使用的
- @Targer 元注解,用来标注”被标注的注解“可以出现的位置,如方法、类、属性上等...
- @Retention 元注解,用来标注”被标注的注解“最终保存的位置,如源文件、字节码文件中等...
自定义注解:
- 自定义属性时,没赋默认值的话,使用的时候必须手动给属性进行赋值
- 赋默认值的属性,使用的时候可以不写
- 如果一个注解的属性名是value,并且只有一个属性的话,使用的时候,value可省略不写
- 注解当中的类型可以有哪些?
byte、short、int、long、float、double、boolean、char、String、Class、枚举类型
以及以上所列的每一种的数组形式。 - 使用时,如果某属性是一个数组,并且数组中只有一个元素,则 {} 可以省略
- 通过反射机制读取类上面的注解对象以及属性值
JDBC
- jdbc 本质理解:针对 msql 的一套接口实现类库,实现 java 连接数据库;需要手动添加进项目进行使用(mysql、oracle,sql server 都有自己的一套类库,可在各自的官网下载)
- jdbc 编程六步【掌握】
- 类加载方式注册驱动
- 属性文件中读取配置信息 Driver、url、username、password
- PowerDesigher 设计表以及导出表
- 了解并解决 SQL注入现象
- Statement 和 PreparedStatement 实现数据库数据增删改查【核心】
- jdbc 中事务控制
- 了解悲观锁/行级锁和乐观锁(了解行级锁的使用)
- jdbc 工具类封装(获取连接和释放资源)