1、JDK、JRE、JVM
JAVAC 编译程序,生成java.class文件
JAVA 运行java.class
JAVAP 反编译java.class程序
JAVADOC 生成javadoc文档
2、java数据类型
基本数据类型、引用数据类型
数据类型转换
char byte short 计算会转换为 int
同一种会有向下转型
3、运算符
4、全局变量、局部变量
全局变量没有赋值可以直接使用,有默认值
局部变量要先赋值再使用,没有默认值
5、this关键字
6、访问修饰符
7、重写与重载
8、继承、封装、多态
9、重写equals
10、类什么时候被加载
- 创建对象实例
- 创建子类对象实例,父类也会被加载
- 使用类的静态成员
对于final static的访问不会进行类加载
11、单例模式
12、代码块
13、类加载过程
构造方法
优先级
具体过程
14、抽象类
- 抽象类本身也是类
- 有抽象方法,该类必须是抽象类,且该方法不能有方法体
- 继承抽象类要实现抽象方法,否则还是抽象类
- 抽象类不能实例化
15、接口
16、类的五大成员
17、内部类
局部内部类
匿名内部类
成员内部类
静态内部类
18、枚举类
隐式继承Enum类,可以实现接口
19、注解、元注解
元注解 | 含义 |
---|---|
@Retention | //指定注解的作用范围 SOURCE,CLASS,RUNTIME |
@Target | //指定注解可以在哪些地方使用 |
@Documented | //注解是否在javadoc体现 |
@Inherited | //子类会继承父类注解 |
20、异常
子类重写父类方法时,对抛出异常规定
子类所抛出的异常要么和父类抛出的异常一致,要么是其子类异常
自定义异常
使用自定义异常
throws和throw区别
抛出 | 意义 | 位置 | 后面跟着 |
---|---|---|---|
throws | 异常处理的一种方式 | 方法声明处 | 异常类型 |
throw | 手动生成异常对象的关键字 | 方法体中 | 异常对象 |
21、包装类
拆箱/装箱
底层还是手动
Integer的valueOf的源码
注意范围,不在范围才会new
22、String
String有属性private final char value[];用于存放字符串内容
final限制地址
string的 compareTo 方法
StringBuffer
StringBuilder
String、StringBuffer、StringBuilder比较
- String: 不可变字符序列,效率低,但是复用率高。
- StringBuffer:可变字符序列、效率较高(增删)、线程安全
- StringBuilder:可变字符序列、效率最高、线程不安全
String使用注意说明:
string s=“a”; //创建了一个字符串
串s+ “b” (也就是" ab")。如果多次执行这些改变串内容的操作,会导致大量副串s+ “b” (也就是" ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能=>结论:如果我们对String做大量修改,不要使用String
23、Arrays
asList 运行类型java. util. Arrays#ArrayList, 是Arrays类的静态内部类