新技术
- Java 8
- lambda表达式、Stream API、
- Java 9
- Jigsaw、Jshell、Reactive Streams
- Java 10
- 局部变量类型推断、G1的并行Full GC、ThreadLocal握手机制
- Spring 5
- 响应式编程
-
性能优化
使用单例、使用Future模式、使用线程池、选择就绪、减少上下文切换、减少锁粒度、数据压缩、结果缓存
线上问题分析
dump获取
- 线程Dump、内存Dump、gc情况
- dump分析
- 分析死锁、分析内存泄露
- 自己编写各种outofmemory,stackoverflow程序
- HeapOutOfMemory、 Young OutOfMemory、MethodArea OutOfMemory、ConstantPool OutOfMemory、DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow
- 常见问题解决思路
- 内存溢出、线程死锁、类加载冲突
- 使用工具尝试解决以下问题,并写下总结
- 当一个Java程序响应很慢时如何查找问题、
- 当一个Java程序频繁FullGC时如何解决问题、
- 如何查看垃圾回收日志、
- 当一个Java应用发生OutOfMemory时该如何解决、
- 如何判断是否出现死锁、
- 如何判断是否存在内存泄露
操作系统知识
- Linux的常用命令
- 进程同步
- 缓冲区溢出
- 分段和分页
-
数据库知识
MySql 执行引擎
- MySQL 执行计划
- 如何查看执行计划,如何根据执行计划进行SQL优化
- SQL优化
- 事务
- 事务的隔离级别、事务能不能实现锁的功能
- 数据库锁
- 行锁、表锁、使用数据库锁实现乐观锁、
- 数据库主备搭建
- binlog
- 内存数据库
- h2
- 常用的nosql数据库
- redis、memcached
- 分别使用数据库锁、NoSql实现分布式锁
-
数据结构与算法知识
简单的数据结构
- 栈、队列、链表、数组、哈希表、
- 树
- 二叉树、字典树、平衡树、排序树、B树、B+树、R树、多路树、红黑树
排序算法
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
-
网络安全知识
什么是XSS
- XSS的防御
- 什么是CSRF
- 什么是注入攻击
- SQL注入、XML注入、CRLF注入
- 什么是文件上传漏洞
- 加密与解密
- MD5,SHA1、DES、AES、RSA、DSA
- 什么是DOS攻击和DDOS攻击
- memcached为什么可以导致DDos攻击、什么是反射型DDoS
- SSL、TLS,HTTPS
- 如何通过Hash碰撞进行DOS攻击
- 用openssl签一个证书部署到apache或nginx