diff --git a/README.md b/README.md index 7ffb863..43b08d7 100644 --- a/README.md +++ b/README.md @@ -1,300 +1,382 @@ -## java interview +# java 面试集锦 +## 姊妹项目:[java强化基本功必备(code better than 逼逼)](http://nivelle.me/javaGuides/) + +--- + ## 算法数据结构 + #### 海量数据如何去重? -- ([海量数据去重](https://blog.csdn.net/paul_wei2008/article/details/21170999)) -- ([大数据排序](https://blog.csdn.net/michellechouu/article/details/27230451)) -- ([海量数据找topK](https://www.cnblogs.com/DarrenChan/p/8796749.html)) +- [海量数据去重](https://blog.csdn.net/paul_wei2008/article/details/21170999) +- [大数据排序](https://blog.csdn.net/michellechouu/article/details/27230451) +- [海量数据找topK](https://www.cnblogs.com/DarrenChan/p/8796749.html) + #### 算法 -- ([堆排序](https://blog.csdn.net/Sun_Ru/article/details/52004044)) -- ([**冒泡排序**](https://blog.csdn.net/IT_ZJYANG/article/details/51010651) -- ([**快速排序**](https://blog.csdn.net/IT_ZJYANG/article/details/53406764)) -- ([排序算法](https://juejin.im/post/5a96d6b15188255efc5f8bbd#heading-22)) -- ([Java中ArrayList循环遍历并删除元素的陷阱](https://blog.csdn.net/L_kanglin/article/details/70148043)) +- [堆排序](https://blog.csdn.net/Sun_Ru/article/details/52004044) +- [冒泡排序](https://blog.csdn.net/IT_ZJYANG/article/details/51010651) +- [快速排序](https://blog.csdn.net/IT_ZJYANG/article/details/53406764) +- [排序算法](https://juejin.im/post/5a96d6b15188255efc5f8bbd#heading-22) +- [Java中ArrayList循环遍历并删除元素的陷阱](https://blog.csdn.net/L_kanglin/article/details/70148043) +- [树相关的算法](https://juejin.im/post/5cb6ca9fe51d456e8b07dd4f?utm_source=gold_browser_extension) #### 常见数据结构 -- ([常见数据结构](https://blog.csdn.net/zxt0601/article/category/6697194)) -- ([hashMap比较](https://juejin.im/post/5aa5d8d26fb9a028d2079264)) -- ([**arrayList线程不安全分析**](https://www.jianshu.com/p/41be1efe5d65)) -- ([**moudCount的作用**](https://blog.csdn.net/qq_24235325/article/details/52450331)) -- ([**CopyOnWriteArrayList**](https://blog.csdn.net/linsongbin1/article/details/54581787)) -- ([**hashtable和hashMap**](https://blog.csdn.net/tgxblue/article/details/8479147)) -- ([**hashMap非线程安全分析**](http://www.importnew.com/22011.html)) -- ([**hashMap key==null 分析**](https://blog.csdn.net/glory1234work2115/article/details/50825503)) -- ([**String**](https://blog.csdn.net/justloveyou_/article/details/52556427)) -- ([**hashMap分析**](http://note.youdao.com/noteshare?id=e5a60b1100b28bb62c7b9a101efe477c)) -- ([**hashMap分析2**](https://blog.csdn.net/tuke_tuke/article/details/51588156)) -- ([**ConcurrentHashMap分析**](http://www.importnew.com/28263.html)) -- ([stack实现](https://blog.csdn.net/javazejian/article/details/53362993)) -- ([树结构](https://blog.csdn.net/DouBoomFly/article/details/70171410)) -- ([**二叉树**](https://blog.csdn.net/xiaoquantouer/article/details/65631708?utm_source=blogxgwz0)) -- ([**B树**](https://blog.csdn.net/guoziqing506/article/details/64122287?utm_source=blogxgwz8)) -- ([阻塞队列](https://javadoop.com/post/java-concurrent-queue)) -- ([红黑树](http://daoluan.net/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E7%AE%97%E6%B3%95/2013/09/25/rbtree-is-not-difficult.html)) +- [常见数据结构](https://blog.csdn.net/zxt0601/article/category/6697194) +- [hashMap比较](https://juejin.im/post/5aa5d8d26fb9a028d2079264) +- [arrayList线程不安全分析](https://www.jianshu.com/p/41be1efe5d65) +- [moudCount的作用](https://blog.csdn.net/qq_24235325/article/details/52450331) +- [CopyOnWriteArrayList](https://blog.csdn.net/linsongbin1/article/details/54581787) +- [hashtable和hashMap](https://blog.csdn.net/tgxblue/article/details/8479147) +- [hashMap非线程安全分析](http://www.importnew.com/22011.html) +- [hashMap key==null 分析](https://blog.csdn.net/glory1234work2115/article/details/50825503) +- [String](https://blog.csdn.net/justloveyou_/article/details/52556427) +- [hashMap分析](http://note.youdao.com/noteshare?id=e5a60b1100b28bb62c7b9a101efe477c) +- [hashMap分析2](https://blog.csdn.net/tuke_tuke/article/details/51588156) +- [ConcurrentHashMap分析](http://www.importnew.com/28263.html) +- [stack实现](https://blog.csdn.net/javazejian/article/details/53362993) +- [树结构](https://blog.csdn.net/DouBoomFly/article/details/70171410) +- [二叉树](https://blog.csdn.net/xiaoquantouer/article/details/65631708?utm_source=blogxgwz0) +- [B树](https://blog.csdn.net/guoziqing506/article/details/64122287?utm_source=blogxgwz8) +- [阻塞队列](https://javadoop.com/post/java-concurrent-queue) +- [红黑树](http://daoluan.net/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E7%AE%97%E6%B3%95/2013/09/25/rbtree-is-not-difficult.html) ---- ## java基础相关 -#### hashcode相等两个类一定相等吗? equals 呢 相反呢? -- ([**hashCode()和equals()**](https://www.cnblogs.com/skywang12345/p/3324958.html)) + +#### hashcode相等两个类一定相等吗equals 呢 相反呢 +- [hashCode()和equals()](https://www.cnblogs.com/skywang12345/p/3324958.html) + #### 线程池用过么?都有哪些参数? 底层如何实现? -- ([多线程面试](https://www.cnblogs.com/aspirant/category/1017858.html)) -- ([juc总结](https://www.cnblogs.com/chenpi/p/5614290.html#_label3)) -- ([**任务的抽象**](https://blog.csdn.net/justloveyou_/article/details/79846241)) -- ([AQS源码](https://mp.weixin.qq.com/s/LYm1AkS74fDWeUqhfCGaKQ)) -- ([**线程池源码**](https://javadoop.com/post/java-thread-pool)) -#### synchized和lock什么区别? 底层细节 -- ([**Synchronized**](https://juejin.im/post/5b4eec7df265da0fa00a118f)) -- ([**内存可见性**](https://javadoop.com/post/java-memory-model)) -- ([**java锁保证内存可见性**](http://ifeve.com/java%E9%94%81%E6%98%AF%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%81%E6%80%A7%E7%9A%84/)) +- [多线程面试](https://www.cnblogs.com/aspirant/category/1017858.html) +- [juc总结](https://www.cnblogs.com/chenpi/p/5614290.html#_label3) +- [任务的抽象](https://blog.csdn.net/justloveyou_/article/details/79846241) +- [AQS源码](https://mp.weixin.qq.com/s/LYm1AkS74fDWeUqhfCGaKQ) +- [线程池源码](https://javadoop.com/post/java-thread-pool) + +#### Synchronized 和lock什么区别? 底层细节 +- [Synchronized](https://juejin.im/post/5b4eec7df265da0fa00a118f) +- [内存可见性](https://javadoop.com/post/java-memory-model) +- [java锁保证内存可见性](http://ifeve.com/java%E9%94%81%E6%98%AF%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%81%E6%80%A7%E7%9A%84/) + #### threadLocal是什么?底层如何实现?写一个例子 -- ([**threadLocal基本原理**](https://juejin.im/post/5a0e985df265da430e4ebb92)) -#### volitile的工作原理 -- ([**volitile基本原理**](http://www.hollischuang.com/archives/2673)) -- ([**深入理解volatile**](http://www.hollischuang.com/archives/2648)) +- [threadLocal基本原理](https://juejin.im/post/5a0e985df265da430e4ebb92) + +#### volidate的工作原理 +- [volidate基本原理](http://www.hollischuang.com/archives/2673) +- [深入理解volidate](http://www.hollischuang.com/archives/2648) + #### Thread and lock -- ([**thread and lock**](https://javadoop.com/post/Threads-And-Locks-md#17.5.%20final%20属性的语义(final%20Field%20Semantics))) +- [thread and lock](https://javadoop.com/post/Threads-And-Locks-md#17.5.%20final%20属性的语义(final%20Field%20Semantics)) + #### cas知道吗?如何实现? -- ([**cas**](http://zl198751.iteye.com/blog/1848575)) -- ([notify丢失虚假唤醒](http://www.cnblogs.com/lnlvinso/p/4753554.html)) +- [cas](http://zl198751.iteye.com/blog/1848575) +- [notify丢失虚假唤醒](http://www.cnblogs.com/lnlvinso/p/4753554.html) #### 四种写法,写一个单例模式 -- ([**彻底理解单例模式**](https://blog.csdn.net/justloveyou_/article/details/64127789)) -- ([设计模式](https://blog.csdn.net/carson_ho/article/category/6365482)) -- ([适配器装饰器模式](https://blog.csdn.net/uniquewonderq/article/details/79873251)) +- [彻底理解单例模式](https://blog.csdn.net/justloveyou_/article/details/64127789) +- [设计模式](https://blog.csdn.net/carson_ho/article/category/6365482) +- [适配器装饰器模式](https://blog.csdn.net/uniquewonderq/article/details/79873251) + #### Integer x= 5, int y=5 比较x==y有哪些步骤 -- ([**原生类型和包装器类型**](https://juejin.im/post/5ad158d2f265da2381560d83)) +- [原生类型和包装器类型**](https://juejin.im/post/5ad158d2f265da2381560d83) + #### javaCore -- ([**序列化**](https://juejin.im/post/5b4c69dcf265da0fa959aa06)) -- ([位运算](https://blog.csdn.net/xiaopihaierletian/article/details/78162863)) +- [序列化](https://juejin.im/post/5b4c69dcf265da0fa959aa06) +- [位运算](https://blog.csdn.net/xiaopihaierletian/article/details/78162863) + #### 动态代理 -- ([**基于CGLIB**](https://juejin.im/post/5b3e05caf265da0f652364ce)) -- ([**基于JDK**](https://juejin.im/post/5b39dee0e51d4558cc35e3a5)) -- ([**代码实现**](https://my.oschina.net/hosee/blog/656945)) +- [基于CGLIB](https://juejin.im/post/5b3e05caf265da0f652364ce) +- [基于JDK](https://juejin.im/post/5b39dee0e51d4558cc35e3a5) +- [代码实现](https://my.oschina.net/hosee/blog/656945) + #### NIO -- ([javaNIO](https://juejin.im/post/5b21d775e51d4506b53ec412)) -- ([NIO细节](https://javadoop.com/post/java-nio)) -- ([**Java 非阻塞 IO 和异步 IO**](https://javadoop.com/post/nio-and-aio)) -- ([tomcat中的应用](https://javadoop.com/post/tomcat-nio)) +- [javaNIO](https://juejin.im/post/5b21d775e51d4506b53ec412) +- [NIO细节](https://javadoop.com/post/java-nio) +- [Java 非阻塞 IO 和异步 IO](https://javadoop.com/post/nio-and-aio) +- [tomcat中的应用](https://javadoop.com/post/tomcat-nio) + #### 基于socket的网络编程 -- ([socket](https://blog.csdn.net/zhangchenghaopeng/article/details/50571079)) +- [socket](https://blog.csdn.net/zhangchenghaopeng/article/details/50571079) + #### jMM -- ([jmm](https://www.cnblogs.com/jiangds/p/6510583.html?from=groupmessage&isappinstalled=0)) +- [jmm](https://www.cnblogs.com/jiangds/p/6510583.html?from=groupmessage&isappinstalled=0) + #### 注解原理 -- ([**注解原理**](https://blog.csdn.net/zhang0558/article/details/52643016)) -- ([快速失败,安全失败](https://blog.csdn.net/ch717828/article/details/46892051)) +- [注解原理](https://blog.csdn.net/zhang0558/article/details/52643016) +- [快速失败,安全失败](https://blog.csdn.net/ch717828/article/details/46892051) + +#### 设计模式 +- [设计模式](https://java-design-patterns.com/patterns/) ### 数据库相关 + #### 使用mysql索引都有哪些原则?索引有什么数据结构? B+tree 和 B tree 什么区别 -- ([mysql索引实现](https://www.cnblogs.com/zlcxbb/p/5757245.html)) -- ([索引使用](https://juejin.im/post/5b14e0fd6fb9a01e8c5fc663)) +- [mysql索引实现](https://www.cnblogs.com/zlcxbb/p/5757245.html) +- [索引使用](https://juejin.im/post/5b14e0fd6fb9a01e8c5fc663) #### mysql 有哪些存储引擎?有什么区别? -- ([**mysql索引类型比较**](https://www.cnblogs.com/changna1314/p/6878900.html)) -- ([**mysqlAUTO_INCREMENT**](https://blog.csdn.net/iamczb/article/details/43112689)) -- ([mysql优化原理](https://www.jianshu.com/p/d7665192aaaf)) -- ([**索引使用B+tree树的原因**](https://juejin.im/post/5b25bc1051882574b00fb7da)) +- [mysql索引类型比较](https://www.cnblogs.com/changna1314/p/6878900.html) +- [mysqlAUTO_INCREMENT](https://blog.csdn.net/iamczb/article/details/43112689) +- [mysql优化原理](https://www.jianshu.com/p/d7665192aaaf) +- [索引使用B+tree树的原因](https://juejin.im/post/5b25bc1051882574b00fb7da) +- [执行计划分析](https://www.cnblogs.com/yycc/p/7338894.html) + #### 设计高并发系统数据库层面应该怎么设计? 数据库锁有哪些类型?如何实现 -- ([高并发系统设计-数据层](https://blog.csdn.net/chenpeng19910926/article/details/51789934)) -- ([架构设计 数据库方案](https://www.w3cschool.cn/architectroad/architectroad-arv823bf.html)) +- [高并发系统设计-数据层](https://blog.csdn.net/chenpeng19910926/article/details/51789934) +- [架构设计 数据库方案](https://www.w3cschool.cn/architectroad/architectroad-arv823bf.html) #### 数据库事物有哪些? -- ([**数据库锁**](https://mp.weixin.qq.com/s/tmkRAmc1M_Y23ynduBeP3Q)) -- ([**mysql日志类型**](https://www.cnblogs.com/wy123/p/8365234.html)) +- [数据库锁](https://mp.weixin.qq.com/s/tmkRAmc1M_Y23ynduBeP3Q) +- [mysql日志类型](https://www.cnblogs.com/wy123/p/8365234.html) + #### 如何设计可以动态扩容的分库分表方案? 以及底层原理?常见的分库分表中间件?优缺点? 如何让未分库分表的数据动态切换到分库分表的系统上?分库分表解决主键问题? -- ([**分库分表方案以及问题**](https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994413&idx=1&sn=24a01089ee47793b5d82381b04a34499&chksm=bdbf0ebe8ac887a8a75a0cd9226bb7e0427f1a77c43323d14dc6932c7dc77555531bce5dce0f&scene=0)) -- ([**跨库分页**](https://www.jianshu.com/p/198ee07ddd7c)) -- ([mysql实践](http://dataunion.org/14895.html)) +- [分库分表方案以及问题](https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994413&idx=1&sn=24a01089ee47793b5d82381b04a34499&chksm=bdbf0ebe8ac887a8a75a0cd9226bb7e0427f1a77c43323d14dc6932c7dc77555531bce5dce0f&scene=0) +- [跨库分页](https://www.jianshu.com/p/198ee07ddd7c) +- [mysql实践](http://dataunion.org/14895.html) + #### 分布式事物?如何实现?TCC? 网络出现问题,如何容错? -- ([**2pc和3pc**](https://www.jianshu.com/p/6fb2c5b1b664)) -- ([**分布式系统事务一致性解决方案**](http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency#)) -- ([TCC](https://juejin.im/post/5a74f3bc6fb9a0633f0df127)) -- ([**分布式锁实现**](https://blog.csdn.net/tzs_1041218129/article/details/80086991)) +- [2pc和3pc](https://www.jianshu.com/p/6fb2c5b1b664) +- [分布式系统事务一致性解决方案](http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency#) +- [TCC](https://juejin.im/post/5a74f3bc6fb9a0633f0df127) +- [分布式锁实现](https://blog.csdn.net/tzs_1041218129/article/details/80086991) + #### 分布式寻址方式方式有哪些算法? 一致性hash算法 -- ([**一致性hash算法**](http://www.zsythink.net/archives/1182)) -- ([**递归算法**](https://blog.csdn.net/justloveyou_/article/details/71787149)) +- [一致性hash算法](http://www.zsythink.net/archives/1182) +- [递归算法](https://blog.csdn.net/justloveyou_/article/details/71787149) + +#### mysql面试实战 + +- [知识点过一遍](https://juejin.im/post/5cb6c4ef51882532b70e6ff0?utm_source=gold_browser_extension#heading-36) +- [数据库规范](https://www.biaodianfu.com/mysql-best-practices.html) ---- ## 缓存相关 #### redis和 memcheched什么区别?为什么单线程的redis比多线程的memched效率高? -- ([**redis的特点和原理**](https://juejin.im/post/5ad6e4066fb9a028d82c4b66)) -- ([**redis和memcheched的比较**](https://www.imooc.com/article/23549)) +- [redis的特点和原理](https://juejin.im/post/5ad6e4066fb9a028d82c4b66) +- [redis和memcheched的比较](https://www.imooc.com/article/23549) + #### redis主要数据类型?分别那种场景下使用? -- ([**redis实战**](http://nivelle.me/2018/09/29/redis%E5%AE%9E%E6%88%98/)) +- [redis实战](http://nivelle.me/2018/09/29/redis%E5%AE%9E%E6%88%98/) + #### redis的主从复制怎么实现的?redis集群模式是如何实现的? redis的key是如何寻址的? -- ([**redis主从复制**](https://my.oschina.net/zhaolin/blog/752520)) -- ([**redis集群和哨兵模式配置**](https://www.cnblogs.com/jaycekon/p/6237562.html)) -- ([集群原理](http://shift-alt-ctrl.iteye.com/blog/2285470)) -- ([集群配置](http://www.cnblogs.com/hjwublog/p/5681700.html)) -- ([高级应用](https://www.cnblogs.com/hjwublog/category/848303.html)) -- ([redis原理](http://nivelle.me/category/#noSQL)) +- [redis主从复制](https://my.oschina.net/zhaolin/blog/752520) +- [redis集群和哨兵模式配置](https://www.cnblogs.com/jaycekon/p/6237562.html) +- [集群原理](http://shift-alt-ctrl.iteye.com/blog/2285470) +- [集群配置](http://www.cnblogs.com/hjwublog/p/5681700.html) +- [高级应用](https://www.cnblogs.com/hjwublog/category/848303.html) +- [redis原理](http://nivelle.me/category/#noSQL) + #### redis基本知识 -- ([**redis基本知识**](http://nivelle.me/category/#noSQL)) -- ([**redis单线程**](https://mp.weixin.qq.com/s?__biz=MzUxNTU4NjAwMw==&mid=2247483725&idx=1&sn=e6c8a304d1618b63bf04a264ba604585&chksm=f9b523f1cec2aae7c771af0e157f819d88abdf8bdfa483838279b51fbb0f23ab2fdd32c5ae50&mpshare=1&scene=1&srcid=1009czaemdDdwr7Y04gSPbaj#rd)) -- ([**缓存概念**](https://blog.csdn.net/xlgen157387/article/details/79530877)) +- [redis基本知识](http://nivelle.me/category/#noSQL) +- [redis单线程](https://mp.weixin.qq.com/s?__biz=MzUxNTU4NjAwMw==&mid=2247483725&idx=1&sn=e6c8a304d1618b63bf04a264ba604585&chksm=f9b523f1cec2aae7c771af0e157f819d88abdf8bdfa483838279b51fbb0f23ab2fdd32c5ae50&mpshare=1&scene=1&srcid=1009czaemdDdwr7Y04gSPbaj#rd) +- [缓存概念](https://blog.csdn.net/xlgen157387/article/details/79530877) + #### 缓存如何使用?缓存使用不当带来什么问题 -- ([**缓存界的三大问题**](https://juejin.im/post/5aa8d3d9f265da2392360a37)) +- [缓存界的三大问题](https://juejin.im/post/5aa8d3d9f265da2392360a37) #### 热点数据处理 -- ([**热点数据处理**](https://mp.weixin.qq.com/s/1KJasUM5UcJ_WL_LzLtfrw)) +- [热点数据处理](https://mp.weixin.qq.com/s/1KJasUM5UcJ_WL_LzLtfrw) + + ---- ## 分布式架构相关 + #### zk原理? zk的应用? paxos算法? -- ([**zk原理**](http://nivelle.me/2016/04/12/Zookeeper%E5%AD%A6%E4%B9%A0-%E4%BA%8C-%E4%B9%8Bzk%E5%9F%BA%E7%A1%80/)) -- ([**paxos算法**](https://www.cnblogs.com/linbingdong/p/6253479.html)) -- ([zk概述](https://www.cnblogs.com/felixzh/p/5869212.html)) -- ([**zk启动过程分析**](http://shift-alt-ctrl.iteye.com/blog/1846507)) -- ([zk选举过程分析](http://shift-alt-ctrl.iteye.com/blog/1846562)) -- ([zkWatcher机制分析](http://shift-alt-ctrl.iteye.com/blog/1847320)) -- ([集群节点个数](https://blog.csdn.net/u010476994/article/details/79806041)) +- [zk原理](http://nivelle.me/2016/04/12/Zookeeper%E5%AD%A6%E4%B9%A0-%E4%BA%8C-%E4%B9%8Bzk%E5%9F%BA%E7%A1%80/) +- [paxos算法](https://www.cnblogs.com/linbingdong/p/6253479.html) +- [zk概述](https://www.cnblogs.com/felixzh/p/5869212.html) +- [zk启动过程分析](http://shift-alt-ctrl.iteye.com/blog/1846507) +- [zk选举过程分析](http://shift-alt-ctrl.iteye.com/blog/1846562) +- [zkWatcher机制分析](http://shift-alt-ctrl.iteye.com/blog/1847320) +- [集群节点个数](https://blog.csdn.net/u010476994/article/details/79806041) + +#### 分布式事物 + +- [分布式事物解决方案](https://juejin.im/post/5cb967cbe51d456e403772b5?utm_source=gold_browser_extension) + #### dubbo的实现过程?注册中心挂了可以继续通信么?dubbo常见配置有哪些 -- ([**dubbo常见配置**](http://www.cnblogs.com/yxh1008/p/9251693.html)) +- [dubbo常见配置](http://www.cnblogs.com/yxh1008/p/9251693.html) + #### dubbo支持哪些序列化协议?hession?hession数据结构? pb知道么?为啥PB的效率是最高的? -- ([**dubbo学习**](https://www.cnblogs.com/aspirant/p/9002631.html)) -- ([**xstream、protobuf、protostuff**](https://www.cnblogs.com/xiaoMzjm/p/4555209.html)) +- [dubbo学习](https://www.cnblogs.com/aspirant/p/9002631.html) +- [xstream、protobuf、protostuff](https://www.cnblogs.com/xiaoMzjm/p/4555209.html) + #### dubbo负载均衡策略和高可用策略有哪些?动态代理策略呢?为什么要进行系统拆分啊? 拆分不用dubbo可以么? dubbo和thirft什么区别? -- ([**rpc框架**](http://www.cnblogs.com/aspnet2008/p/?page=1)) -- ([**dubbo的负载均衡**](https://www.cnblogs.com/aspirant/p/8994227.html)) -- ([**dubbo知识点**](https://mp.weixin.qq.com/s/PdWRHgm83XwPYP08KnkIsw)) -- ([**dubbo实现**](https://blog.csdn.net/Revivedsun/article/details/74514078)) -- ([dubbo服务注册和发现](https://my.oschina.net/u/661116/blog/704985)) +- [rpc框架](http://www.cnblogs.com/aspnet2008/p/?page=1) +- [dubbo的负载均衡](https://www.cnblogs.com/aspirant/p/8994227.html) +- [dubbo知识点](https://mp.weixin.qq.com/s/PdWRHgm83XwPYP08KnkIsw) +- [dubbo实现](https://blog.csdn.net/Revivedsun/article/details/74514078) +- [dubbo服务注册和发现](https://my.oschina.net/u/661116/blog/704985) + #### 不用应用环境下的会话保持 -- ([会话保持](http://blog.51cto.com/virtualadc/592454)) +- [会话保持](http://blog.51cto.com/virtualadc/592454) + #### 自己实现RPC -- ([**Dubbo原理简介**](http://www.cnblogs.com/LBSer/p/4853234.html)) -- ([**轻量级分布式 RPC 框架**](https://my.oschina.net/huangyong/blog/361751)) -- ([**简单rpc**](http://www.cnblogs.com/codingexperience/p/5930752.html)) -- ([dubbo源码](https://my.oschina.net/ywbrj042?tab=popular)) -- ([dubbo调用链](https://blog.csdn.net/icool_ali/article/details/80985130)) +- [Dubbo原理简介](http://www.cnblogs.com/LBSer/p/4853234.html) +- [轻量级分布式 RPC 框架](https://my.oschina.net/huangyong/blog/361751) +- [简单rpc](http://www.cnblogs.com/codingexperience/p/5930752.html) +- [dubbo源码](https://my.oschina.net/ywbrj042?tab=popular) +- [dubbo调用链](https://blog.csdn.net/icool_ali/article/details/80985130) + #### 如何设计一个高并发高可用系统? -- ([**高并发**](https://www.w3cschool.cn/architectroad/architectroad-high-concurrent.html)) -- ([**高可用**](https://www.w3cschool.cn/architectroad/architectroad-high-availability.html)) -- ([**大型网站架构演化历程**](http://www.hollischuang.com/archives/728)) +- [高并发](https://www.w3cschool.cn/architectroad/architectroad-high-concurrent.html) +- [高可用](https://www.w3cschool.cn/architectroad/architectroad-high-availability.html) +- [大型网站架构演化历程](http://www.hollischuang.com/archives/728) + #### 如何限流?工程中怎么做的?说下具体实现? -- ([**限流**](https://www.w3cschool.cn/architectroad/architectroad-optimization-of-seckilling-system.html)) -- ([**常见限流方案**](http://manzhizhen.iteye.com/blog/2311691)) +- [限流](https://www.w3cschool.cn/architectroad/architectroad-optimization-of-seckilling-system.html) +- [常见限流方案](http://manzhizhen.iteye.com/blog/2311691) + #### 负载均衡 -- ([**六大负载均衡原理**](https://www.cnblogs.com/aspirant/p/9087716.html)) -- ([**lvs**](https://www.cnblogs.com/aspirant/p/9084740.html)) +- [六大负载均衡原理](https://www.cnblogs.com/aspirant/p/9087716.html) +- [lvs](https://www.cnblogs.com/aspirant/p/9084740.html) + #### 如何降级?如何进行系统拆分,如何进行数据库拆分 -- ([**服务降级**](http://jinnianshilongnian.iteye.com/blog/2306477)) +- [服务降级](http://jinnianshilongnian.iteye.com/blog/2306477) + ----- ## 消息相关 + #### netty 可以干什么? NIO,BIO ,AIO 都是什么? 有什么区别 -- ([**NIO,BIO,AIO**](https://www.cnblogs.com/aspirant/p/6877350.html)) +- [NIO,BIO,AIO](https://www.cnblogs.com/aspirant/p/6877350.html) + #### 为什么使用消息队列?消息队列的优点和缺点? -- ([消息队列的意义](https://www.w3cschool.cn/architectroad/architectroad-message-queue.html)) +- [消息队列的意义](https://www.w3cschool.cn/architectroad/architectroad-message-queue.html) + #### 如何保证消息队列的高可用?如何保证消息不被重复消费? -- ([**消息队列的幂等**](https://www.w3cschool.cn/architectroad/architectroad-message-idempotence.html)) -- ([**消息队列的高可用**](https://www.w3cschool.cn/architectroad/architectroad-message-delivery.html)) +- [消息队列的幂等](https://www.w3cschool.cn/architectroad/architectroad-message-idempotence.html) +- [消息队列的高可用](https://www.w3cschool.cn/architectroad/architectroad-message-delivery.html) + #### kafka,activemq,rabbitmq,rocketmq 都有什么优点和缺点?如何自己设计一个消息队列,该如何进行架构设计 -- ([消息队列对比](https://juejin.im/post/5b32044ef265da59654c3027)) -- ([消息队列大全](https://www.cnblogs.com/aspirant/category/1195858.html)) -- ([消息队列细节学习](https://blog.csdn.net/u013256816)) -- ([kafka数据一致性和zk的比较](https://www.cnblogs.com/aspirant/p/9179045.html)) -- ([kafka原理学习](https://mp.weixin.qq.com/s/NZpWoDZ92wCHLaOrTPLb8w)) +- [消息队列对比](https://juejin.im/post/5b32044ef265da59654c3027) +- [消息队列大全](https://www.cnblogs.com/aspirant/category/1195858.html) +- [消息队列细节学习](https://blog.csdn.net/u013256816) +- [kafka数据一致性和zk的比较](https://www.cnblogs.com/aspirant/p/9179045.html) +- [kafka原理学习](https://mp.weixin.qq.com/s/NZpWoDZ92wCHLaOrTPLb8w) + #### rabbitMQ基础 -- ([**rabbitMQ**](https://www.kancloud.cn/longxuan/rabbitmq-arron/117513)) -- ([知识点](https://blog.csdn.net/qq_30764991/article/details/80573352)) +- [rabbitMQ](https://www.kancloud.cn/longxuan/rabbitmq-arron/117513) +- [知识点](https://blog.csdn.net/qq_30764991/article/details/80573352) + ---- ## jvm相关 + #### jvm内存模型?用过哪些垃圾回收器?说说 -- ([**java内存模型**](https://juejin.im/post/5b7d69e4e51d4538ca5730cb)) -- ([**Java8内存模型—永久代(PermGen)和元空间(Metaspace)**](http://www.cnblogs.com/paddix/p/5309550.html)) -- ([**常量区**](https://blog.csdn.net/qq_26222859/article/details/73135660)) -- ([jvm常见配置](https://www.cnblogs.com/parryyang/p/5750146.html)) +- [java内存模型](https://juejin.im/post/5b7d69e4e51d4538ca5730cb) +- [Java8内存模型—永久代(PermGen)和元空间(Metaspace)](http://www.cnblogs.com/paddix/p/5309550.html) +- [常量区](https://blog.csdn.net/qq_26222859/article/details/73135660) +- [jvm常见配置](https://www.cnblogs.com/parryyang/p/5750146.html) + #### 线上频繁发生fullGC 如何处理? CPU使用频率过高怎么办? -- ([**Java GC是在什么时候,对什么东西,做了什么事情**](https://my.oschina.net/hosee/blog/674314)) -- ([**什么时候会发生FullGC**](https://my.oschina.net/hosee/blog/674261)) -- ([**使用CMS垃圾收集器产生的问题和解决方案**](https://my.oschina.net/hosee/blog/674181)) -- ([**垃圾回收机制**](https://javadoop.com/post/jvm-memory-management)) -- ([**G1收集器**](http://ifeve.com/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3g1%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8/)) -- ([经典回答](https://www.zhihu.com/question/53613423)) +- [Java GC是在什么时候,对什么东西,做了什么事情](https://my.oschina.net/hosee/blog/674314) +- [什么时候会发生FullGC](https://my.oschina.net/hosee/blog/674261) +- [使用CMS垃圾收集器产生的问题和解决方案](https://my.oschina.net/hosee/blog/674181) +- [垃圾回收机制](https://javadoop.com/post/jvm-memory-management) +- [G1收集器](http://ifeve.com/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3g1%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8/) +- [经典回答](https://www.zhihu.com/question/53613423) + #### 类加载机制? 类加载器?分别加载哪些文件?手写一个 -- ([**加载器原理**](https://blog.csdn.net/justloveyou_/article/details/72217806)) -- ([图解tomcat类加载](https://www.cnblogs.com/aspirant/p/8991830.html)) -- ([**类加载时机和过程**](https://blog.csdn.net/justloveyou_/article/details/72466105)) -- ([**对象初始化**](https://blog.csdn.net/justloveyou_/article/details/72466416)) +- [加载器原理](https://blog.csdn.net/justloveyou_/article/details/72217806) +- [图解tomcat类加载](https://www.cnblogs.com/aspirant/p/8991830.html) +- [类加载时机和过程](https://blog.csdn.net/justloveyou_/article/details/72466105) +- [对象初始化](https://blog.csdn.net/justloveyou_/article/details/72466416) + #### jvm优化?使用什么方法?达到什么效果** -- ([jvm](https://www.cnblogs.com/aspirant/category/1195271.html)) -- ([java调优](https://my.oschina.net/feichexia/blog/196575)) -- ([java常见调优](http://unixboy.iteye.com/blog/174173/)) +- [jvm](https://www.cnblogs.com/aspirant/category/1195271.html) +- [java调优](https://my.oschina.net/feichexia/blog/196575) +- [java常见调优](http://unixboy.iteye.com/blog/174173/) + #### 排查过程 +- [死循环](https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247487380&idx=1&sn=e8c350a946696940dc4c13b0b7fcfcd3&chksm=e9c5f625deb27f331eefc431a10d7c90bef50a2afd2c4f9299d2eb514982c6623b0569cf0e19&mpshare=1&scene=1&srcid=#rd) + -- ([死循环](https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247487380&idx=1&sn=e8c350a946696940dc4c13b0b7fcfcd3&chksm=e9c5f625deb27f331eefc431a10d7c90bef50a2afd2c4f9299d2eb514982c6623b0569cf0e19&mpshare=1&scene=1&srcid=#rd)) ---- ## 框架相关 + #### spring 哪些机制?aop如何实现?IOC如何实现 -- ([**自己实现AOP和IOC**](https://www.cnblogs.com/aspirant/p/9187973.html)) -- ([**IOC原理**](https://blog.csdn.net/it_man/article/details/4402245)) -- ([**IOC源码分析**](https://javadoop.com/post/spring-ioc)) -- ([AOP源码分析](https://javadoop.com/post/spring-aop-source)) -- ([**spring头文件原理**](https://www.cnblogs.com/mesopotamia/p/4948861.html)) -- ([面试top](http://www.importnew.com/15851.html)) -- ([spring考点细节](https://blog.csdn.net/congcong68/article/category/2650725)) -- ([spring事务失效原因和解决办法](https://blog.csdn.net/dream_broken/article/details/72911148)) -- ([spring常见扩展点](https://blog.csdn.net/qq_38182963/article/details/78795058)) -- ([FactoryBean和beanFactory](https://juejin.im/entry/59e3662ef265da43283fe441)) -- ([dispatcher](http://jinnianshilongnian.iteye.com/blog/1602617)) -- ([sipring面试关注点](https://github.com/Homiss/Java-interview-questions/blob/master/%E6%A1%86%E6%9E%B6/Spring%20%E9%9D%A2%E8%AF%95%E9%A2%98.md)) -- ([初始化和生命周期](https://github.com/upcAutoLang/SpringBeanLIfeCycleDemo)) +- [自己实现AOP和IOC](https://www.cnblogs.com/aspirant/p/9187973.html) +- [IOC原理](https://blog.csdn.net/it_man/article/details/4402245) +- [IOC源码分析](https://javadoop.com/post/spring-ioc) +- [AOP源码分析](https://javadoop.com/post/spring-aop-source) +- [spring头文件原理](https://www.cnblogs.com/mesopotamia/p/4948861.html) +- [面试top](http://www.importnew.com/15851.html) +- [spring考点细节](https://blog.csdn.net/congcong68/article/category/2650725) +- [spring事务失效原因和解决办法](https://blog.csdn.net/dream_broken/article/details/72911148) +- [spring常见扩展点](https://blog.csdn.net/qq_38182963/article/details/78795058) +- [FactoryBean和beanFactory](https://juejin.im/entry/59e3662ef265da43283fe441) +- [dispatcher](http://jinnianshilongnian.iteye.com/blog/1602617) +- [sipring面试关注点](https://github.com/Homiss/Java-interview-questions/blob/master/%E6%A1%86%E6%9E%B6/Spring%20%E9%9D%A2%E8%AF%95%E9%A2%98.md) +- [初始化和生命周期](https://github.com/upcAutoLang/SpringBeanLIfeCycleDemo) #### springboot -- ([**springboot原理**](https://blog.csdn.net/hengyunabc/article/details/50120001)) -- ([**springboot源码**](http://fangjian0423.github.io/categories/springboot/)) -- ([starter编写](https://www.cnblogs.com/yuansc/p/9088212.html)) +- [springboot原理](https://blog.csdn.net/hengyunabc/article/details/50120001) +- [springboot源码](http://fangjian0423.github.io/categories/springboot/) +- [starter编写](https://www.cnblogs.com/yuansc/p/9088212.html) + +#### springMVC +- [springMVC原理](https://www.cnblogs.com/fangjian0423/p/springMVC-directory-summary.html) +- [springMVC核心原理分享](https://my.oschina.net/lichhao?tab=newest&catalogId=285356) + ---- ## 网络相关 + #### https -- ([**https原理**](https://juejin.im/post/5a2ff29c6fb9a045132aac5a)) +- [https原理](https://juejin.im/post/5a2ff29c6fb9a045132aac5a) + #### http的工作流程?越细节越好。 http1.0 1.1 1.2有哪些区别 -- ([**一次url请求**](https://github.com/skyline75489/what-happens-when-zh_CN)) +- [一次url请求](https://github.com/skyline75489/what-happens-when-zh_CN) + #### tcp 三次握手,四层分手的工作流程〉为什么不是其他次数? -- ([**计算机网络面试常见**](https://www.jianshu.com/p/d0dd47afabad)) +- [计算机网络面试常见](https://www.jianshu.com/p/d0dd47afabad) + #### get/post区别 -- ([**get/post**](https://juejin.im/entry/599eb96ef265da24722fc15b)) +- [get/post](https://juejin.im/entry/599eb96ef265da24722fc15b) + #### cookie 和 session -- ([**安全性**](https://segmentfault.com/q/1010000007347730)) -- ([session实现](https://blog.csdn.net/qq_15096707/article/details/74012116)) +- [安全性](https://segmentfault.com/q/1010000007347730) +- [session实现](https://blog.csdn.net/qq_15096707/article/details/74012116) #### OAuth2.0 -- ([OAuth2.0原理](https://my.oschina.net/wangzhenchao/blog/851773)) +- [OAuth2.0原理](https://my.oschina.net/wangzhenchao/blog/851773) + #### 子网掩码 -- ([**子网掩码的原理和应用**](https://blog.csdn.net/faker_wang/article/details/80747407)) +- [子网掩码的原理和应用](https://blog.csdn.net/faker_wang/article/details/80747407) + #### dump -- ([dump使用](https://www.cnblogs.com/aspirant/p/8881047.html)) +- [dump使用](https://www.cnblogs.com/aspirant/p/8881047.html) ---- ## 其他 #### git原理 -- ([git原理](https://juejin.im/post/5a65ac67f265da3e330473f7)) +- [git原理](https://juejin.im/post/5a65ac67f265da3e330473f7) + #### maven --([maven](https://blog.csdn.net/u012225679/article/details/73740785)) +- [maven](https://blog.csdn.net/u012225679/article/details/73740785) +- [理论教程](https://juejin.im/post/5cb967cbe51d456e403772b5?utm_source=gold_browser_extension) + #### 常见加解密算法 -- ([**加解密**](https://blog.csdn.net/u013565368/article/details/53081195)) +- [加解密](https://blog.csdn.net/u013565368/article/details/53081195) + +#### docker理解 +- [docker](https://blog.csdn.net/wo18237095579/article/details/80540571#workdir-%E6%8C%87%E5%AE%9A%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95) + ## 系统设计 -- ([秒杀设计一](https://juejin.im/entry/59c34acef265da066d33456c)) -- ([秒杀设计二](https://www.ibm.com/developerworks/cn/web/wa-design-small-and-good-kill-system/index.html)) -- ([秒杀设计三](https://www.zhihu.com/question/54895548)) + - [秒杀设计一](https://juejin.im/entry/59c34acef265da066d33456c) + - [秒杀设计二](https://www.ibm.com/developerworks/cn/web/wa-design-small-and-good-kill-system/index.html) + - [秒杀设计三](https://www.zhihu.com/question/54895548) + - [秒杀设计](https://github.com/qiurunze123/miaosha) ---- ### 链接收集 -- ([大厂面试集锦](https://www.cnblogs.com/aspirant/p/8575628.html)) -- ([备战阿里](http://www.cnblogs.com/zhengbin/category/787240.html)) -- ([java core](https://www.cnblogs.com/skywang12345/archive/2013/06/14/index.html)) -- ([经典面试](https://juejin.im/entry/58f2e3bf0ce463006baf31a1)) -- ([面试大纲](https://www.jianshu.com/p/a07d1d4004b0)) -- ([面试大纲答案](https://www.cnblogs.com/xyang/tag/%E9%9D%A2%E8%AF%95/)) + + - [大厂面试集锦](https://www.cnblogs.com/aspirant/p/8575628.html) + - [备战阿里](http://www.cnblogs.com/zhengbin/category/787240.html) + - [java core](https://www.cnblogs.com/skywang12345/archive/2013/06/14/index.html) + - [经典面试](https://juejin.im/entry/58f2e3bf0ce463006baf31a1) + - [面试大纲](https://www.jianshu.com/p/a07d1d4004b0) + - [面试大纲答案](https://www.cnblogs.com/xyang/tag/%E9%9D%A2%E8%AF%95/) + diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..259a24e --- /dev/null +++ b/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-tactile \ No newline at end of file