作者 | Hollis
本文转载自公众号Hollis(ID:hollischuang)
基础篇
01 面向对象
→ 什么是面向对象
面向对象、面向过程面向对象的三大基本特征和五大基本原则
→ 平台无关性
Java 如何实现的平台无关JVM 还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)
→ 值传递
值传递、引用传递为什么说 Java 中只有值传递
→ 封装、继承、多态
什么是多态、方法重写与重载Java 的继承与实现构造函数与默认构造函数类变量、成员变量和局部变量成员变量和方法作用域
02 Java 基础知识
→ 基本数据类型
7 种基本数据类型:整型、浮点型、布尔型、字符型整型中 byte、short、int、long 的取值范围什么是浮点型?什么是单精度和双精度?为什么不能用浮点型表示金额?
→ 自动拆装箱
什么是包装类型、什么是基本类型、什么是自动拆装箱Integer 的缓存机制
→ String
字符串的不可变性JDK 6 和 JDK 7 中 substring 的原理及区别、replaceFirst、replaceAll、replace 区别、String 对“+”的重载、字符串拼接的几种方式和区别String.valueOf 和 Integer.toString 的区别、switch 对 String 的支持字符串池、常量池(运行时常量池、Class 常量池)、intern
→ 熟悉 Java 中各种关键字
transient、instanceof、final、static、volatile、synchronized、const 原理及用法
→ 集合类
常用集合类的使用、ArrayList 和 LinkedList 和 Vector 的区别 、SynchronizedList 和 Vector 的区别、HashMap、HashTable、ConcurrentHashMap 区别Set 和 List 区别?Set 如何保证元素不重复?Java 8 中 stream 相关用法、apache 集合处理工具类的使用、不同版本的 JDK 中 HashMap 的实现的区别以及原因Collection 和 Collections 区别Arrays.asList 获得的 List 使用时需要注意什么Enumeration 和 Iterator 区别fail-fast 和 fail-safeCopyOnWriteArrayList、ConcurrentSkipListMap
→ 枚举
枚举的用法、枚举的实现、枚举与单例、Enum 类Java 枚举如何比较switch 对枚举的支持枚举的序列化如何实现枚举的线程安全性问题
→ IO
字符流、字节流、输入流、输出流、同步、异步、阻塞、非阻塞、Linux 5 种 IO 模型BIO、NIO 和 AIO 的区别、三种 IO 的用法与原理、netty
→ 反射
反射与工厂模式、反射有什么用Class 类、java.lang.reflect.*
→ 动态代理
静态代理、动态代理动态代理和反射的关系动态代理的几种实现方式AOP
→ 序列化
什么是序列化与反序列化、为什么序列化、序列化底层原理、序列化与单例模式、protobuf、为什么说序列化并不安全
→ 注解
元注解、自定义注解、Java 中常用注解使用、注解与反射的结合Spring 常用注解
→ JMS
什么是 Java 消息服务、JMS 消息传送模型
→ JMX
java.lang.management.*、 j
avax.management.*
→ 泛型
泛型与继承、类型擦除、泛型中 KTVE? object 等的含义、泛型各种用法限定通配符和非限定通配符、上下界限定符 extends 和 superList