JAVASE

基础

  • Java 的特性
  • jdk1.8 / java8 的新特性
    • 箭头函数
    • stream流
    • string stringbuffer stringbuilder
  • 语法
    • == equals hashCode
    • 访问修饰符
  • 数据类型
    • 基本据类型
      • 普通类
      • 包装类
      • 转换:自动、强制
    • 引用数据类型:string、数组、类/对象
  • 变量
    • static变量
  • 方法
    • static方法
    • 重载和重写
    • 可变长参数

面向对象

  • 面向对象
    • 面向过程
    • 性能区别
  • 对象
    • 类加载机制
    • 创建对象的方式Java中创建对象5种方式
    • 深浅拷贝
      • 值传递、引用传递
      • 引用拷贝、零拷贝
      • 如何实现嵌套集合的深拷贝
    • 四种引用:强软弱虚 是否会被GC回收
  • 构造方法:不能被重写,可以被重载
  • 三大特征
  • 接口和抽象类
    • 共同点、区别
    • 接口的实现
  • Object类
    • 常用方法
    • equals
    • hashCode
  • String类
    • String、StringBuffer、StringBuilder区别
    • 不可变原因/常量池 & 创建对象的数量
    • 转成Integer的原理:parseInt
    • equals和Object的区别
    • intern

高级

  • 异常
    • 常见的异常类、异常分类
    • try() finally final
  • 序列化
    • 序列化 反序列化
    • Java常见序列化:Java自带、ProtoBuf、JSON、XML
  • 泛型
    • 如何理解 / <> / 泛型擦除
    • 通配符
  • 反射
    • 使用方法、使用场景、作用、优缺点、底层实现、权限检查
    • 代理
      • 静态代理
      • 动态代理
        • JDK动态代理:反射机制
        • CGlib动态代理:继承机制,实现:AOP切面编程 注解 事务,日志
        • 区别:接口和抽象类
  • 注解:底层实现
  • SPI
  • IO流
    两种IO流存在的原因
  • 语法糖  ‍

Java集合

  • 定义:原生数组和容器类应用场景
  • 两个接口
    • Collection
      • Arraylist / linkedlist
      • collections​​
    • Map​
      HashMap
      ConcurrentHashMap
      TreeMap
  • 自动扩容
    • ArrayList:满 1.5 拷贝新数组
    • HashMap:负载因子0.75 -> rehash
      哈希冲突:开放寻址法、链式寻址法
      转化:6链表 8红黑树

数据结构


JVM入门:

笔记参考:JVM学习笔记JVM思维导图

JVM.png