随着Java学习的不断深入,发现很多知识在脑海里都是一个个碎片,建此仓库的目的希望把零碎的知识点都整合起来,提高自己的学习效率。欢迎志同道合的朋友,一起来维护该仓库
-
30道题中包含很多容易在日常开发中日益被忽视的细节
-
负载因子(load factor)在hashmap中起什么作用?超过它会怎么样?
答:超过阙值(
++size > loadFactor * capacity
, loadFactor默认0.75)会进行扩容操作,概括的讲就是扩容后的数组大小是原数组的2倍,将原来的元素重新hashing放入到新的散列表中去 -
hashmap中indexFor方法,将hash & length-1有什么优点?
-
多线程下,hashmap的resize()方法为什么容易出现死循环?
-
其他面试题?
- Java中的锁分类
- ListenalbeFuture的使用总结](https://juejin.im/post/5cb48bcd6fb9a0687015c9c7)
- ⭐⭐Java虚拟机
- Lamda表达式与Stream流 《Java Functional Programming Internals》
- spring是如何解决循环依赖的?
- 惊人!Spring5 AOP 默认使用Cglib ?从现象到源码深度分析
- Spring 5.x 中 AOP 默认依旧使用 JDK 动态代理。
- SpringBoot 2.x 开始,为了解决使用 JDK 动态代理可能导致的类型转化异常而默认使用 CGLIB。
- 在 SpringBoot 2.x 中,如果需要默认使用 JDK 动态代理可以通过配置项
spring.aop.proxy-target-class=false
来进行修改,proxyTargetClass
配置已无效。
- ⭐ZooKeeper 相关概念总结【入门】(Snailclimb-JavaGuide)
- ⭐ZooKeeper 相关概念总结【进阶】(Snailclimb-JavaGuide)
- ⭐ZooKeeper 实战
- 使用消息队列的好处
- 解耦:允许我们独立的扩展或修改队列两边的处理过程;
- 可恢复性:即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理;
- 缓冲:有助于解决生产消息和消费消息的处理速度不一致的情况;
- 削峰:不会因为突发的超负荷的请求而完全崩溃,消息队列能够使关键组件顶住突发的访问压力;
- 异步通信:消息队列允许用户把消息放入队列但不立即处理它。
- ZooKeeper 主要为 Kafka 提供 Broker 和 Topic 的注册以及多个 Partition 的负载均衡等功能。
- 在 Kafka 0.9 版本之前消费者偏移量默认被保存在 zookeeper 中,但在 0.9 版本开始 consumer 将位移提交到 Kafka 的一个内部topic(该topic默认有 50 个分区,每个分区 3 个副本)。
去哪儿和携程内部使用的消息队列
参考es.md
- Redis
- https://mrdear.cn/2018/08/19/middleware/redis--study_guide/
- Redis设计与实现
- Redis之IO线程、IO多路复用,BIO、NIO和AIO区别
- 《Hbase 技术细节笔记(上)》
- 《Hbase 技术细节笔记(下)》
- 《Hbase RowKey设计》
- rowkey 按照字典顺序排列,便于批量扫描。
- 通过散列可以避免热点。
- 《HBase性能优化方法总结》
-
限流算法:
-
计数器限流:
原理:计数器限流的本质是单位时间内,访问量到达设置的限制后,在这个时间段没有过去之前,超过阈值的访问量拒绝处理。
缺点:限流容易造成热点,某个时间段内(非单位时间内)来看会超过阈值
-
令牌桶限流
原理:每隔一定的时间往桶内放入固定数量的定牌,当请求到来时去容器内先获取令牌,拿到了,开始处理,拿不到拒绝处理或者短暂的等待
-
漏斗限流
-
- ⭐⭐分布式
- 微服务的4个设计原则和19个解决方案
微服务的4个设计原则:
- AKF拆分原则
- 前后端分离
- 无状态服务
- Restful通信风格
- ⭐⭐《写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP》
- 《Java面试通关要点汇总集》
- 《Java Web架构知识整理——记一次阿里面试经历》
- 《蚂蚁金服面试题及答案之一面(持续更新)》
- 一个学渣的阿里之路
- 《深入理解 Java 虚拟机》
- 《clean code》
- 《Redis设计与实现》
- architecture.of.internet-product 互联网公司技术架构,微信/淘宝/微博/腾讯/阿里/美团点评/百度/Google/Facebook/Amazon/eBay的架构
- ⭐⭐📚 CyC Computer Science Learning Notes (技术面试需要掌握的基础知识整理)
- 😮 advanced-java 互联网 Java 工程师进阶知识完全扫盲
- technology-talk 汇总java生态圈常用技术框架、开源中间件,系统架构、项目管理、经典架构案例、数据库、常用三方库、线上运维等知识
- architect-awesome 《后端架构师技术图谱》
- To Be Top Javaer - Java工程师成神之路
- miaosha 😮😮秒杀系统设计与实现.互联网工程师进阶与分析🙋🐓
- interviews 软件工程技术面试个人指南
- JavaGuide 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识
- 🎓 Java Core Sprout : basic, concurrent, algorithm
- j360-tools Java底层知识点、技术栈相关原理知识点、工具最佳实践
- java-knowledge-mind-map
- technology-talk汇总java生态圈常用技术框架
- JCSprout
- 3y