Java基础
Programmie
这个作者很懒,什么都没留下…
展开
-
Spring Boot 纯注解实现Bean的生命周期
最近在准备面试,有关Bean的生命周期被问到了,下来巩固一下,之前都是针对Spring在回答Bean的各项注意事项,由于现在Spring Boot用的更多,因此找了一些如何用纯注解实现的方式。 首先是Bean的完整加载流程: 接下来是代码实现(已经按照顺序): @Component public class Person implements BeanNameAware, BeanFactoryAware, ApplicationContextAware, InitializingBean原创 2020-09-15 16:21:12 · 388 阅读 · 0 评论 -
HashMap:学习总结
首先是HashMap的整体结构: 主体采用数组进行存储。 当数组处的节点产生碰撞,会向下延伸,生成一条链表 当超过成树阈值(8)且数组长度大于64后,采用红黑树进行存储(红黑树的结构复杂,但是查找效率高) HashTable的创建 jdk8以前:在创建的时候就会有一个Entry[] table来存储 jdk8以后:会在第一次put方法被调用的时候创建Entry[] 数组 数据的存储 通过Key的hashCode方法计算出值,再通过某种算法计算出数组中存储数据的空间的索引值,如果没有数据原创 2020-07-14 21:01:10 · 2909 阅读 · 5 评论 -
ConcurrentHashMap:学习总结
ConcurrentHashMap JDK 1.7 JDK 1.7 是一个Segment数组 总览: Segment内部有一个HashEntry[] table 的字段 Segment数组大小默认是16 Segment由DEFAULT_CONCURRENT_LEVEL决定,去找比DEFAULT_CONCURRENT_LEVEL大的2次幂 HashEntry由DEFAULT_CONCURRENT_LEVEL和initialCapacity决定。通过两者相除后再向上取整 每个Segment对象内原创 2020-07-30 11:43:11 · 343 阅读 · 1 评论 -
面向对象思想:学习总结
面向对象的设计思想 封装 封装的是数据和基于数据的操作 – 构成不可分割的实体 隐藏内部细节,只**暴露对外的接口(方法)**使其与外部发生联系 优点 减少耦合:各个模块相互独立 提升代码重用性 降低程序风险:整个系统不可用,但是单个模块是可用的 易于维护和性能分析 典型例子:Java Bean (POJO) 继承 对象之间的is-A的关系。 继承需要遵循里氏替换原则:子类对象可以完全替换父类 多态 编译时多态:方法的重载 运行时多态:类型只有在真正运行的时候才会最终确认 条件: 继承:声原创 2020-07-28 17:06:35 · 137 阅读 · 0 评论