本文转载于本人个人博客
并发
- Runnale 可以说是一个没有返回值的回调接口,这个回调传给Thread类或者线程池执行
- Callable 可以看作一个有返回值的回调接口,这个回调传给线程池执行,callable怎么与Future、futureTsak、线程池等实现有返回结果的线程创建
- Thread类:重要方法:start,sleep,join,yield,最好看下源码了解下怎么实现的(结合Object类的wait,notify,notifyAll,也看看Object源码)
- synchronized 用法和原理(涉及到对象在虚拟机中的内存布局)
- 线程池的创建以及使用,线程池的分类,线程池的怎么实现,创建线程池时各个参数的作用
- java.util.concurrent 并发包的原子类
- 并发包的常见并发的数据结构如阻塞队列、concurrentHashMap(怎么实现分段锁的)、CopyOnWriteArrayList
- 并发包的常见显式锁(这个可以放后面看)
- java虚拟机是怎么实现锁的(偏向锁、轻量级锁,自旋锁,重量级锁———也就是互斥锁)
- 总结Java的线程安全的实现方法(内置锁,显示锁,原子类,同步容器以及并发容器)
数据库
- mysql 隔离级别 (四种),和并发控制、锁的关系
- mysql 并发控制
- msql的锁的实现(行锁/表锁)
- mysql的索引,索引与锁的关系。各个索引的区别
- sql语法
- 主从复制
- 分布式数据库(待学习)
- Redis(待学习)
网络
- 如何使用java net创建socket并传输与接受数据
- 如何使用NIO
- 如何使用netty
- netty和NIO的关系
- NIO的channel、bytebuff、selector
- netty的bootstrap、EventLoop、EventLoopGroup是什么?EventLoop和selector的关系是什么?
- netty的Future、回调有什么作用?netty的Future和java JUC中的Future有什么区别?
- netty的ChannelHandler、Channel、ChannelPipeLine、ChannelHandlerContext是什么?他们之间是什么关系?
- netty的channelHandler和decoder、encoder
- netty的ByteBuf和NIO的ByteBuff
Java Web
- spring 依赖注入和控制反转,有什么用,如何实现?怎么进行依赖注入(xml、java代码、通过标注实现自动注入?)Bean的scope有哪些,怎么实现不同scope之间的bean的注入?
- spring AOP,有哪些概念,有什么作用,怎么使用AOP?原理是什么(动态代理)?
- Spring MVC,servlet生命周期?请求的流程控制?dispatchServlet是什么?controller是什么?怎么写Controller?
- HTTP协议结构、Cokies和session,重定向
- mybatis使用?mybatis原理(动态代理)?持久层框架有哪些?为什恶魔选择使用mybatis而不是Hibernate
- jsp与servlet?
- filter与inceptor?shiro与filter
- jdbc与datasource以及mybatis
Java虚拟机
- Java虚拟机的堆与栈是什么,它们的结构,它们有什么作用?
- 堆与垃圾收集器,列举垃圾收集器的分类与收集方法,如何进行垃圾收集(引用计数与可达性)?
- Minor GC与Full GC
- 类的加载与初始化、加载过程,类加载器分类及其作用?
- 对象的内存布局,对象头结构与锁
- Java内存模型,堆、栈、计算机的高速缓存与寄存器在Java在Java内存模型中的角色
- java内存模型与可见性
- 内置锁(syncronized触发,也叫重量级锁)、轻量级锁、偏向锁以及自旋锁如何发挥作用
- 字节码结构与对象内存布局的关系
- 继承和多态在Java虚拟机中的体现
Java语言基础
- Java语言Object类,有哪些方法
- Java语言的基本类型与其包装类
- Java语言的“==”和equals方法,基本类型和包装类的比较
- Java语言的运算符
- Java语言的集合类和对应类的常用方法
- Java语言常用工具类(Math、Date、Calendar等,主要包含java.util包下的集合类以外的常用类)
- Java的接口,接口的default和static方法,接口中的域
- Java的抽象类,抽象类的构造函数
- Java的继承与实现,组合与继承(has a和 is a关系)
- Java的多态(主要体现在继承关系上)
- Java的Lambda表达式与函数式接口
- 有哪些常见的函数式接口(Runnable, Callable, Comparable, InvocationHandler),如何使用lambda快速实现Comparator?
- Java Stream与函数式接口
- 反射与动态代理,Class类的方法,Method类的方法,类和Class类的关系?
- GCLib和Java提供的动态代理的区别
- 动态代理的应用
- 回调,有哪些常见的回调接口(和函数式接口类似)
设计模式
- 列举目前所知道的设计模式
- 设计模式的六大原则(单一职责、里氏替换、依赖倒置、狄米特法则、开闭原则以及接口隔离)
- 设计模式分类(创建型、结构型和行为型)
- 了解每种设计模式的作用
欢迎大家评论建议
如有兴趣请访问本人本人个人博客