学习内容
- 类与包装
- 异常
- I/O流
- 继承
- 抽象类与接口
- 泛型
一些问题
静态变量与静态方法
- public 都能访问
- protected 仅限子类访问
- private 自身访问
声明成static的方法
- 仅能调用其他static方法
- 只能访问static数据
- 不能以任何方式引用this或super
泛型
public class Point < T >
set X (T X)
* 不能是原生类型,需要是包装类
* int -> Integer
* double -> Double
继承
- 在构造函数中用super()
ConcurrentHashMap
- 尽量尝试用CuncurrentHashMap替代HashMap
- 支持多线程操作
类
- 抽象类: 实现了一部分,避免重复实现
- 接口: 无实现,但允许多继承
异常
常见异常:
- ArithmeticException:表现为除0等数学计算的异常
- NullPointerException:空指针,常见于变量未指向就引用
- ArrayIndexOutofBoundException:越界
- IllegalAccessException:通常见于不同类访问private
自定义异常
- 类丢异常用throws,而代码内丢异常用throw
- e.printStackTrace()打印异常
- throw new Exception….
- 注意抛出异常的位置
I/O Stream
- 字节流
- InputStream
- In.read!=-1
- 字符流
- FileReader
- FileWriter
- System.in 和 Scan.in的区别
- Scan以空格回车作为终止
- 如有空格回车用System.in
反射
- Class < ? > parentClass = Class.forName(“…”);
- Objet.getClass(): 获取类
- class.getDeclaredFields() 获取声明的所有类,包括Private
- import java.lang.reflect
- 注意,比较字符串用equals(),且常量在前避免空指针
- field.setAccessible(true):可以修改private
- 注意:获得私有属性时,要使用try-catch语句,哪怕没有异常!
引用大佬原话:Java是一门严谨的高级语言