本站的博文都会采用目前统一格式进行整理:
- 思维导图
- 知识点及实践
- 相关扩展
- 存在疑问
- 参考资料
一、思维导图
二、知识点及实践
1、基础知识
1.1、计算机基础
1.2、编译原理
1.3、操作系统
1.3.1、Linux系统
- Linux安装与配置
- 系统管理与目录管理
- 用户与用户组管理
- Shell编程
- 服务器配置
1.4、计算机网络与协议
- 相关书籍: TCPIP详解_卷1_协议 TCPIP详解_卷2_实现 TCPIP详解_卷3_TCP事务协议_HTTP_NNTP和UNIX域协议 HTTP权威指南
1.5、数据结构及算法
2、Java基础
2.1、JVM
- 知识大纲
- 运行时数据区
- 垃圾回收机制
- 性能调优
- 类文件结构
- 字节码执行引擎
- 类加载机制
- 虚拟机优化
- 内存模型
- 锁机制
- 知识点
- JVM内存结构:堆、栈、方法区、直接内存、堆和栈区别
- Java内存模型:内存可见性、重排序、顺序一致性、volatile、锁、final
- 垃圾回收:内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定
- JVM参数及调优:Java对象模型、oop-klass、对象头
- HotSpot:即时编译器、编译优化
- 类加载机制:classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化(jboss modules、osgi、jigsaw)
- 虚拟机性能监控与故障处理工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler
- 编译与反编译:javac 、javap 、jad 、CRF
2.2、JAVA
- 知识大纲
- java整体架构
- 语法
- 基本特性
- 常用API
- 数据结构
- 集合框架
- IO流
- 多线程并发
- Java网络编程
- Java高级特性
- 反射
- 泛型
- 枚举及注解
- 异常
- 知识点
- 阅读源代码 : String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、 HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap、HashSet & LinkedHashSet & TreeSet
- Java中各种变量类型:熟悉Java String的使用,熟悉String的各种函数、JDK 8中substring的原理及区别、replaceFirst、replaceAll、replace区别、String对“+”的重载、String.valueOf和Integer.toString的区别、字符串的不可变性
- 熟悉Java中各种关键字:transient、instanceof、volatile、synchronized、final、static、const 原理及用法
- 自动拆装箱:Integer的缓存机制
- 集合类:常用集合类的使用、ArrayList和LinkedList和Vector的区别 、SynchronizedList和Vector的区别、HashMap、HashTable、ConcurrentHashMap区别、Java 8中stream相关用法、apache集合处理工具类的使用、不同版本的JDK中HashMap的实现的区别以及原因
- 枚举:枚举的用法、枚举与单例、Enum类
- Java IO&Java NIO,并学会使用,bio、nio和aio的区别、三种IO的用法与原理
- Java反射与javassist,反射与工厂模式、 java.lang.reflect.*
- Java序列化,什么是序列化与反序列化、为什么序列化、序列化底层原理、序列化与单例模式、protobuf、为什么说序列化并不安全
- 注解:元注解、自定义注解、Java中常用注解使用、注解与反射的结合
- JMS:什么是Java消息服务、JMS消息传送模型
- JMX:java.lang.management.、 javax.management.
- 泛型:泛型与继承、类型擦除、泛型中K T V E ? object等的含义、泛型各种用法
- 单元测试:junit、mock、mockito、内存数据库(h2)
- 正则表达式:java.lang.util.regex.*
- 常用的Java工具库:commons.lang, commons.*... guava-libraries netty
- 什么是API&SPI:异常、异常类型、正确处理异常、自定义异常
- 时间处理:时区、时令、Java中时间API
- 编码方式:解决乱码问题、常用编码方式
- 语法糖:Java中语法糖原理、解语法糖
- Java并发编程:Thread、Runnable、Callable、ReentrantLock、ReentrantReadWriteLock、Atomic*、Semaphore、CountDownLatch、、ConcurrentHashMap、Executors
- 线程安全 : 死锁、死锁如何排查、Java线程调度、线程安全和内存模型的关系
- 锁 : CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、monitor、锁优化、锁消除、锁粗化、自旋锁、可重入锁、阻塞锁、死锁、volatile、happens-before、编译器指令重排和CPU指令重 synchronized、synchronized是如何实现的?synchronized和lock之间关系、不使用synchronized如何实现一个线程安全的单例
- 相关书籍 Java核心技术 卷1 基础知识 Java核心技术 卷II 高级特性 Java编程思想
3、Java进阶
3.1设计模式
3.1.1、六大原则
3.1.2、创建型
- 单例模式
- 工厂模式
- 建造者模式
- 原型模式
3.1.3、结构型
- 代理模式
- 桥接模式
- 适配器模式
- 外观模式
- 享元模式
- 装饰模式
- 组合模式
3.1.4、行为型
备忘录模式
策略模式
观察者模式
模板方法模式
责任链模式
中介者模式
状态模式
4、Java应用开发扩展
4.1、Javaweb
4.1.1、Servlet规范
- 概述
- Servlet技术
- servlet技术实现http协议过程
- 主要API
- Servlet响应请求后3种结果导航
- 存放数据的四个web域对象
- 工作流程及生命周期
- web项目资源路径问题
- jsp/el隐含对象(内置对象说明)
- Jsp
- el表达式
- JSTL和自定义标签
- filter过滤器
- listen监听器
- 总结及组件设计思想
4.1.2、Tomcat
4.2、数据库
1、SQL
2、mysql
3、mongodb
4.3、框架
4.3.1、Spring
- Spring简介和Spring 4的变化
- 框架原理介绍
- 框架环境搭建
- IOC思想与DI相关概念
- Spring父子容器
- POJO编程模型
- 使用Spring MVC构建Web应用程序
- 使用Spring进行JDBC数据访问
- 通过Spring使用JPA进行数据访问
- 使用Spring管理事务
- Spring MVC的高级技术
- 使用NoSQL数据库
- Spring Boot简化Spring开发
4.3.2、SpringMVC
4.3.3、Springboot
4.3.4、MyBatis
- MyBaits入门
- 基础模块及其生命周期
- MyBatis配置介绍
- 映射器的主要元素及其使用方法
- 动态SQL
- MyBatis的解析和运行原理
- 插件设计与开发
- Spring项目中集成MyBatis
- MyBatis的实用场景
4.4、缓存
- redis
4.5、中间件
5、Java安全基础
6、Java性能基础
7、架构
7.1、微服务
- springCloud
- dubbo
- zookeeper
三、参考资料 http://www.hollischuang.com/archives/489
本文由博客一文多发平台 OpenWrite 发布!