Java基础深入浅出

Vector,ArrayList, LinkedList

  1. Vector、ArrayList类似数组存储在内存,LinkedList以链表。
  2. List元素有序、允许有重复的元素,Set元素无序、不允许有重复元素。
  3. Vector线程同步,ArrayList、LinkedList不同步
  4. LinkedList适合指定位置插入、删除操作,不适合查找;ArrayList、Vector适合查找,不适合指定位置的插入、删除操作
  5. ArrayList元素填满容器时自动扩充容器大小的50%,Vector则是100% ArrayList更节省空间

HashTable, HashMap,TreeMap

hashTable线程同步,不能空值,使用enumeration,默认hash数组大小11,增加old*2+1

hashMap默认16,2的指数倍

treeMap键升序排序

class.forName与classLoader

forName类class加载jvm,解释类 执行类中的static块

classLoader加载到jvm,newInstance执行static块

 Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序_java 父子类静态非静态加载顺序-CSDN博客

hashMap的put

key哈希算法与 与运算得出数组下标   为空key/value封装为entry对象/node对象

 不为空:

   jdk要扩容 扩容,不生成entry对象,头插法添加到当前位置的链表中

  8 先判断node类型,红黑树 封装节点到红黑树中 

     链表 封装node尾插插入到最后位置,遍历链表 是否存在key 更新否新增,新增完链表节点是否大于8,是转成红黑树

    key和value封装node插入到链表 红黑树 是否需要扩容

扩容

   新数组,遍历老数组每个位置上链表的每个元素,取key 基于新数组长度 计算每个元素新数组下标,元素添加到新数组中去,all元素转移完 新数组赋值给hashMap的table属性

1.8的话

 新数组 遍历老数组每个位置上的链表/红黑树

  链表,将链表每个元素重新计算下标,添加到新数组中去

  红黑树,先遍历红黑树,计算出红黑树中每个元素对应在新数组中下标位置

  统计下标位置元素个数,超过6红黑树否链表,转移完 新数组赋值给hashMap的table

copyOnWriteArrayList 底层原理

  添加元素时,复制一个新的数组,写操作在新数组上进行,读操作原数组进行

  写操作加锁,结束后把原数组指向新数组

ae_readable

spring

容器启动

扫描得到BeanDefinition存到map中,选出非懒加载单例Bean

BeanDefinition创建Bean

    合并BeanDefinition 推断构造方法 实例化 属性填充 初始化前 初始化 后

容器启动事件 

bean基础

推断构造方法 / 实例化 / 填充属性(依赖注入)

处理aware回调  /   postConstruct注解   /   初始化 InitializingBean接口 /  aop

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《洛谷深入浅出程序设计竞赛(基础篇) pdf》是一本关于程序设计竞赛基础知识的书籍,主要面向初学者。本书作者通过深入浅出的方式,以简洁清晰的语言讲解了程序设计竞赛中常见的基础知识和技巧。 该书首先介绍了算法和数据结构的基本概念,包括常见的排序算法、栈、队列、链表、树等数据结构。然后,详细讲解了常用的算法设计技巧,如贪心算法、动态规划、递归等,并通过大量的例题进行了实践演练,使读者能更好地理解和掌握这些技巧。 此外,本书还介绍了常见的编程语言开发环境,如C++、Python和Java等,并提供了一些常用的程序调试技巧和工具,帮助读者解决实际编程过程中可能遇到的问题。 《洛谷深入浅出程序设计竞赛(基础篇) pdf》还包含了大量的习题和实例,供读者进行练习和巩固所学知识。同时,书中还提供了一些实战经验和竞赛技巧,帮助读者提高在程序设计竞赛中的表现。 总的来说,《洛谷深入浅出程序设计竞赛(基础篇) pdf》适合初学者入门,内容全面、易懂,对于想要了解程序设计竞赛基础知识和提升编程能力的人来说是一本很好的参考书。 ### 回答2: 《洛谷深入浅出程序设计竞赛(基础篇) pdf》是一本内容丰富、有助于初学者提高编程能力的书籍。该书主要介绍了洛谷这个在线判题系统的使用方法以及一些常见的算法和数据结构知识。 首先,书中详细介绍了洛谷这个在线判题系统的功能和使用方法。洛谷是一个非常受欢迎的在线编程平台,它提供了丰富的题目和在线编译环境,使得用户可以更加方便地练习和学习编程。书中通过简单明了的语言和图文并茂的示例,向读者介绍了洛谷的登录、题目搜索、代码提交等基本操作,帮助读者迅速上手这个平台。 其次,书中系统地介绍了一些常见的算法和数据结构知识。这对于初学者来说,是非常重要的一部分。书中通过具体的例子和详细的讲解,向读者介绍了一些常见的算法,如搜索、排序和动态规划等。同时,书中还提供了一些实操编程题目,使得读者可以通过练习加深对这些算法的理解和掌握。 总的来说,《洛谷深入浅出程序设计竞赛(基础篇) pdf》是一本对于初学者来说非常有价值的书籍。它通过详细的介绍洛谷系统的使用方法和常见算法的讲解,帮助读者快速入门,并且提高编程能力。阅读这本书,不仅可以帮助初学者更好地了解和使用洛谷系统,还可以提供一些常见算法的思路和实践经验,对于参加编程竞赛和提升编程能力有着积极的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值