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