1 几个人的面试题
2 其它人大厂面试题
3 视频课程(源码学院+哔哩哔哩+mysql+spring cloud)
4 源码、实践
以下为几个人面试整理,但不全,应地毯式覆盖
1.并发编程主要考虑哪些问题,怎么样避免线程安全问题?threadlocal变量怎么样实现线程封闭,
2.java1.8的hashmap有哪些改动? 红黑树是怎么保持自平衡的
3.怎么实现一个线程安全的map,
4.说一个你印象最深的项目,并画出项目的架构图
5.不借助外部组件怎么实现一个分布式的锁?
6.说一下threadpoolexecutor各个参数的含义,以及各个参数的相互影响
7.采用加锁来保持线程安全有哪几种方式? 内置的可重入锁与synchronized的关键字有什么区别?内置的可重入锁内部是怎么实现的?
8.哪些场景会导致数据库索引失效?数据库索引是怎么实现范围索引的?
9.要将1000万数据量的表中的数据写到文件中,该怎么实现并保持顺序?
10.有哪些方法可以避免超售?
11.分布式编程需要考虑哪几个点,分布式事物的处理方法
12.选一个自己做过的最复杂的业务,并说一下,你怎么实现它?
13.设计一个高并发的聊天室系统,你该怎么做?
14.什么是aba问题?怎么解决这个问题?
15.有没有用过分库分表?分表有哪些策略?对于分表的分页,且排序的查询,有哪些方案?
16.Mq的原理是什么?用过哪些mq,Mq主要用于哪些场景?
直接集:
【done】二叉树红黑树B+树的意义 mysql 索引底层
【done】树深度广度遍历,用栈、队列 二叉树深度遍历和广度遍历
redis底层数据结构——数据结构
zk分布式锁、watcher原理
ES体验(es为什么那么快)
大文件读取
chm 1.7 1.8原理,Chm可见性 数组可见性
【done】redis mysql参数(超时等)tomcat jdbc 各种超时归纳整理
短期集:
【done】mysql事务隔离底层原理、MVCC底层原理、Redolog、undulog、readview mysql隔离级别 mvcc next-key undolog(15)
mysql分表分库分页、一致性hash、分布式id、雪花、分布式hashmap,分表分库,冷热分离,历史分离
【done】hashmap扩容、分表分库扩容 为什么hashmap以2的倍数作为桶的长度,同时以2作为扩容倍数
【done】动态代理底层:jdk动态代理源码底层(jdk生成字节码及5种字节码生产方式比较)
【放弃】B+实践
【done】线程池底层 线程池的原理,future原理 模拟future 、Completeablefuture原理Java回调机制解读
synchronized synchroned原理与对象头、lock、AQS、轻量级锁,偏向锁,重入
超时trylock,超时connect原理,超时wait 的原理、线程模型
反射原理、注解底层
分布式事务(多数据源)、分布式记账、分布式共识
对象头里什么东西 java object多大 java对象内存模型 数组有多长 synchroned原理与对象头,结合锁的实现原理aqs,与偏向锁
局部变量表、操作数栈、虚拟机栈动态链接
【放弃】最大k元素
【放弃】kmp算法
短期书:
netty实战、netty进阶
wareshark书
【放弃】数据结构与算法、剑指offer、程序员代码面试指南-左程云
TCP/IP
【放弃】redis实战(redis集群可用、redis为什么那么快)
java高并发程序设计(多线程性能)
java性能权威指南(GC、内存泄漏等)
深入分布式缓存
【放弃】高性能mysql
深入分析java web技术内幕(淘宝)
大型网站技术架构-核心原理与案例分析。 李智慧 大牛的书 大型分布式网站架构-设计与实践。作者:陈康贤 大型网站系统与java中间件实践。作者: 曾宪杰(原淘宝技术,现在蘑菇街)
源码集:
局部1级:chm、aps、disruptor、threadpool、synchronize&lock、countdown,局部关键技术点文章+源码学习巩固
全局1级:tomcat、jetty、jboss、netty 视频+文章+源码
全局3级:arthas、jmx-exporter、jvm-sandbox、cat、zipkin 有空的时候源码扫一扫
全局1级:mybatis、spring、guice 视频+文章+源码
全局2级:dubbo+zk,nettyrpc+zk,spring cloud 视频+文章+周边
局部2级:kafka rabbitmq zk shardingjdbc es hbase
优先级:
netty(结合nio、随笔里面众多yet)、tomcat(io 类加载 动态jmx mbean war中jar与springboot)
disruptor(局部)、dubbo+zk(看看视频了解即可)、springboot(jar类加载https://www.cnblogs.com/silyvin/articles/12178528.html);
Spring(b视频教程)、mybatis(b视频教程)、spring cloud(160讲)、mq
netty 写一个tomcat【优先】
抓包、解析redis协议,netty写一个异步redis client【优先】,基于disruptor构建连接池
netty 模仿dubbo zk,写服务注册发现【优先】
模拟dubbo写rpc【优先】
netty 配置中心
netty 写分布式缓存服务器,像redis server
自己写线上反编译,像arthas,运行期改变类字节码
0拷贝文件传输系统
【done】netty模拟nginx 24netty(二十)http代理服务器【重点】 netty(二十一)http代理服务器(二)简书
【done】自己的简单持久层orm框架 work log 2020.2.27
战略:链接:https://pan.baidu.com/s/1J_eNXvfH2X0OlSybrhuOjg 提取码:r6xd
1)去大厂,找一个开源组件,通读源码,debug 并优化
2)学开源,不要学公司,除很核心部门,都是业务
3)后台没难度,足够耐心,读文档,debug
4)不用学太多,一两个研究透
5)微服务=服务注册发现+rpc
战术
方向:
1)各种常用协议(如http redis mysql),抓包wireshark
2)硬件、串口
3)tcp
工作: