高级篇
新技术
Java 8
- lambda表达式、Stream API、
Java 9
- Jigsaw、Jshell、Reactive Streams
Java 10
- 局部变量类型推断、G1的并行Full GC、ThreadLocal握手机制
Spring 5
- 响应式编程
Spring Boot 2.0
性能优化
- 使用单例、使用Future模式、使用线程池、选择就绪、减少上下文切换、减少锁粒度、数据压缩、结果缓存
线上问题分析
dump获取
- 线程Dump、内存Dump、gc情况
dump分析
- 分析死锁、分析内存泄露
自己编写各种outofmemory,*程序
- HeapOutOfMemory、 Young OutOfMemory、MethodArea OutOfMemory、ConstantPool OutOfMemory、DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow
常见问题解决思路
- 内存溢出、线程死锁、类加载冲突
使用工具尝试解决以下问题,并写下总结
当一个Java程序响应很慢时如何查找问题、
当一个Java程序频繁FullGC时如何解决问题、
如何查看垃圾回收日志、
当一个Java应用发生OutOfMemory时该如何解决、
如何判断是否出现死锁、
如何判断是否存在内存泄露
编译原理知识
编译与反编译
Java代码的编译与反编译
Java的反编译工具
词法分析,语法分析(LL算法,递归下降算法,LR算法),语义分析,运行时环境,中间代码,代码生成,代码优化
操作系统知识
Linux的常用命令
进程同步
缓冲区溢出
分段和分页
虚拟内存与主存
数据库知识
MySql 执行引擎
MySQL 执行计划
- 如何查看执行计划,如何根据执行计划进行SQL优化
SQL优化
事务
- 事务的隔离级别、事务能不能实现锁的功能
数据库锁
- 行锁、表锁、使用数据库锁实现乐观锁、
数据库主备搭建
binlog
内存数据库
- h2
常用的nosql数据库
- redis、memcached
分别使用数据库锁、NoSql实现分布式锁
性能调优
数据结构与算法知识
简单的数据结构
- 栈、队列、链表、数组、哈希表、
树
- 二叉树、字典树、平衡树、排序树、B树、B+树、R树、多路树、红黑树
排序算法
- 各种排序算法和时间复杂度 深度优先和广度优先搜索 全排列、贪心算法、KMP算法、hash算法、海量数据处理
大数据知识
Zookeeper
- 基本概念、常见用法
Solr,Lucene,ElasticSearch
- 在linux上部署solr,solrcloud,,新增、删除、查询索引
Storm,流式计算,了解Spark,S4
- 在linux上部署storm,用zookeeper做协调,运行storm hello world,local和remote模式运行调试storm topology。
Hadoop,离线计算
- HDFS、MapReduce
分布式日志收集flume,kafka,logstash
数据挖掘,mahout
网络安全知识
什么是XSS
- XSS的防御
什么是CSRF
什么是注入攻击
- SQL注入、XML注入、CRLF注入
什么是文件上传漏洞
加密与解密
- MD5,SHA1、DES、AES、RSA、DSA
什么是DOS攻击和DDOS攻击
- memcached为什么可以导致DDos攻击、什么是反射型DDoS