一、基础篇
JVM
JVM存储器结构
堆栈、堆栈、方法区域、直接内存、堆栈和堆栈之间的差异
Java内存模型
内存可见性、排序、顺序一致性、volatile、锁定、final
回收垃圾
存储器分配策略、垃圾收集器( G1 )、GC算法、GC参数、对象生存判定
JVM参数和调整
Java对象模型
oop-klass,对象磁头
HotSpot市
即时编译器,优化编译
类装载机构
类加载器、类加载过程、父代委托(破坏父代委托)、模块( jboss modules、osgi、jigsaw )
虚拟机性能监控和故障处理工具
jps,jstack,jmap,jstat,jconsole,jinfo,jat,javap,btrace,TProfiler
编译和反编译
javac,javap,jad,CRF
Java基础知识
阅读源代码
字符串、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、hashmap & linked hashmap & treemap & gt
Java的各种变量类型
熟悉Java String的使用,熟悉String的函数
JDK 6和JDK 7中substring的原理不同之处在于,
replaceFirst、replaceAll和replace之间的区别在于,
String对" + "的重负荷,
String.valueOf和Integer.toString之间的区别在于,
字符串偏差
自动拆装盒
Integer缓存机制
熟悉Java的各种关键词
transient、instanceof、volatile、synchronized、final、static和const的原理和用法。
集合类
使用常用的收藏类
ArrayList、LinkedList和Vector之间的区别
同步列表与Vector之间的区别
HashMap、HashTable和ConcurrentHashMap之间的区别
Java 8中与stream相关的使用方法
使用apache集合处理工具类
HashMap在不同版本JDK中的实现差异及原因
列举
枚举用法,枚举和单个实例,Enum类
Java IO&Java NIO,掌握使用方法
bIO、nio和aio的区别、三个io的使用方法和原理、netty
Java反射和javassist
反射和工厂模式,java.lang.reflect.*
Java序列化
序列化和反序列化,为什么要序列化?
序列化基础原理
序列化和单实例模式
prototbuf
为什么序列化不安全?
注释
元注释、自定义注释、使用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-librariesnetty
什么是API&SPI
异常
正确处理异常类型、异常、自定义异常
时间处理
时区,季节,Java中间时间API
编码方式
解决乱码问题的常用编码方法
语法糖
Java中语法糖的原理、解语法糖
Java并发编程
线程与进程之间的区别
阅读源代码,学会使用
Thread,Runnable,Callable,ReentrantLock,ReentrantReadWriteLock,Atomic*,Semaphore,CountDownLatch,,ConcurrentHashMap,Executors
线程池
独立设计线程池、submit ( )和execute ( )
线程安全
死锁、死锁故障排除、Java线程计划、线程安全与内存型号之间的关系
锁
CAS、乐观和悲观锁定、数据库相关锁定机制、分布式锁定、偏转锁定、轻量锁定、重量锁定、监视器、锁定优化、解锁、锁定粗糙化、旋转锁定、可重新锁定、阻塞锁定、死锁定
死锁
volatile
处理前、编译器指令的重新配置、CPU指令的重新配置
已同步化
synchronized是如何实现的?
同步与锁定的关系
不使用synchronized实现线程安全性的示例
sleep和wait
wait和notify
通告和通告全部
地理位置
写死锁的程序
编写解决生产者消费者问题的代码
守护进程线程
守护进程线程和非守护进程线程的区别和使用方法
二、进阶篇
Java基础知识
字节代码,类文件格式
CPU缓存、L1、L2、L3和虚拟共享
递归递归
位运算
通过位运算实现加法、减法、乘法、除法、馀数
设计模式
理解23种设计模式
将使用一般的设计模式
单例、战略、工厂、适配器、责任链。
实现AOP
实现IOC
不使用synchronized和lock实现线程安全的单实例模式
nio和reactor设计模式
网络程序设计
一般协议,如tcp、udp、http和https
3次握手和4次关闭、流量控制和拥塞控制、OSI层模型、tcp包和开箱
http/1.0 http/1.1 http/2之前的差异
Java RMI,套接字,http客户端
cookie和session
如何禁用cookie并实现会话
在Java中创建简单静态文件的HTTP服务器
满足“打开/关闭原则”,以实现客户端高速缓存功能,支持返回304,并实现上述功能,该功能支持使用线程池处理客户端请求并使用nio处理客户端请求的简单重写规则,该线程池可以同时下载文件
用Java实现FTP、SMTP协议
进程间通信的方式
什么是CDN? 如果实现了呢?
什么是DNS?
反向代理服务器
框架知识
servlet线程安全问题
servlet过滤器和监听器
Hibernate缓存机制
Hiberate懒惰之路
初始化Spring Bean
Spring的AOP原理
实现Spring的IOC
Spring MVC
Spring Boot2.0
Spring Boot的starter原理是自己实现starter
Spring Security
应用程序服务器
JBoss
tomcat
jetty
Weblogic
工具
git & svn
maven & gradle
三、高级篇
新技术
Java 8
lambda表达式、流API、
Java 9战斗机
Jigsaw、j shell、Reactive Streams
Java 10
局部变量型估计,G1的并行Full GC,ThreadLocal握手机构
Spring 5
响应编程
Spring Boot 2.0
优化性能
使用单个案例、使用Future模式、使用线程池、选择就绪、减少上下文交换机、减少锁定粒度、数据压缩、结果缓存
网络问题分析
取得dump
线程Dump、存储器Dump、gc时
dump分析
死锁分析,内存泄漏分析
自己编写各种outofmemory、stackoverflow程序
记忆体开启,记忆体开启,记忆体开启,记忆体开启,记忆体停止,记忆体开启,直接记忆体开启,记忆体停止
常见问题解决的思考
内存溢出、线程死锁和类加载违规
试着用工具解决下面的问题,写个总结吧
如何在Java程序响应较慢时确定问题,
如何在Java程序频繁完整GC时解决问题?
如何查看垃圾回收日志?
如果Java应用程序出现OutOfMemory,则为、
是否发生死锁,
判断有无内存泄漏的方法
编译原理知识
编译和反编译
编译和反编译Java代码
Java的反编译工具
词法分析,语法分析( LL算法,递归降算法,LR算法),语义分析,运行时环境,中间代码,代码生成,代码优化
操作系统知识
Linux常用命令
同步进程
缓冲区溢出
分隔符和分页符
虚拟内存和主内存
数据库知识
MySql执行引擎
MySQL执行计划
如何查看解释计划并根据解释计划优化SQL
SQL调整
事务
事务隔离级别,事务能否实现锁定的功能
数据库锁定
使用行锁、表锁和数据库锁的乐观锁、
构建数据库主数据库
冰箱log
内存数据库
h2
常用nosql数据库
redis,memcached
分别使用数据库锁和NoSql实现分布式锁
性能优良
数据结构和算法知识
简单的数据结构
堆栈、队列、链表、数组、散列表、
树
二叉树、辞典树、平衡树、排序树、b树、B+树、r树、多重树、红黑树
排序算法
各种排序算法和时间复杂度的深度优先和广度优先检索全排列、贪婪算法、KMP算法、hash算法、大量数据处理
大数据知识
Zookeeper
基本概念,一般用法
Solr,Lucene,elastic搜索
在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是什么
SSL,TLS,HTTPS
基于Hash冲突的DOS攻击方法
将openssl签署的证书部署到apache或nginx
四、框架篇
分布式
数据完整性、服务管理和服务降级
分布式事务处理
2PC、3PC、CAP、BASE、信任信件的最终完整性、最大努力通知、TCC
Dubbo
服务注册、服务发现和服务管理
分布式数据库
如何构建分布式数据库,何时需要分布式数据库,mycat、otter、HBase
分布式文件系统
mfs、fastdfs
分布式高速缓存
缓存一致性、缓存命中率和缓存冗馀
微型服务
SOA,康威定律
ServiceMesh
Docker & Kubernets
Spring Boot
spring云
高同时性
分析表
CDN技术
消息队列
activeemq
监视
监视什么?
CPU、存储器、磁盘I/O、网络I/O等
监视单元
过程监视、语义监视、机械资源监视、数据变动
监视数据收集
日志,嵌入点
Dapper
负载平衡
tomcat负载平衡、Nginx负载平衡
DNS
DNS原理,DNS的设计
CDN公司
数据完整性
五、扩张篇
云计算技术
IaaS、SaaS、PaaS、虚拟化技术、openstack、Serverlsess
搜索引擎
Solr、Lucene、Nutch和elastic搜索
权限管理
夏洛
块链条
哈希算法、Merkle树、公钥加密算法、协议算法、Raft协议、Paxos和Raft算法、签证问题和算法、消息认证码和数字签名
比特币
开采、协议机制、闪电网络、侧链、热点问题、分支
以太网坊
超级帐目
人工智能
一般框架
TensorFlow,DeepLearning4J
其他语言
Groovy、Python、Go、NodeJs、Swift、Rust
上诉中提到的技术知识点小编已经整理了Ximd形式的图像,同时小编也特意收集了关于这些技术知识点的学习资料,如果有想要得到的朋友,我可以在后台免费分享“框架资料”。