![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日一问
文章平均质量分 80
Stringzhua
java盖浇饭java炒面java烤面筋
展开
-
ArrayList扩容机制
增长因子:每次扩容时,ArrayList会根据增长因子来计算新的容量。默认情况下,增长因子为1.5,即每次扩容后容量变为原来的1.5倍。扩容策略:ArrayList在扩容时,会创建一个新的更大容量的数组,并将原有元素复制到新数组中。扩容触发条件:当ArrayList的size超过当前容量时,就会触发扩容操作。初始容量:创建ArrayList对象时,会分配一个初始容量,默认为10。扩容时,根据增长因子计算新的容量,并创建一个新的数组。存储,适用于频繁的查找工作,线程不安全。将原有数组中的元素复制到新数组中。原创 2024-07-15 08:53:43 · 175 阅读 · 0 评论 -
LinkedList源码解析
所以当你想要使用栈或者队列的时候,可以考虑使用LinkedList(Java官方已经声明不建议使用Stack类,甚至Java里面根本就没有队列Queue这个类),但是其实关于栈和队列现在首选还是ArrayDeque,当作栈和队列使用时,ArrayDeque比LinkedList性能更好。同时实现了List接口和Deque接口,因此它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)如果 succ 的前驱不为空,则将 succ 前驱的后继引用指向新节点。原创 2024-07-15 08:57:46 · 86 阅读 · 0 评论 -
SiringBuilder可变字符操作
当对字符串进行操作时,就需要使用StringBuffer和StringBuilder类。而为什么不使用String类?是因为String类在使用的时候,因为它具有不可变性,每次通过new String()创建都会在堆中开辟一片空间,会造成资源的浪费。String底层是被final修饰的char[] valueString类所提供的所有的方法,new String()为了解决这个问题,Java提供了StringBuilder类,是一个可变的字符串操作类,允许我们对字符串进行高效的操作。原创 2024-07-07 22:28:07 · 246 阅读 · 0 评论 -
StringBuilder扩容机制解析
1.无参数构造方法:创建一个初始容量为16的 StringBuilder 对象。2.指定容量构造方法:创建一个具有指定初始容量的 StringBuilder 对象。3.指定初始内容构造方法:创建一个初始内容为指定字符串且容量为字符串长度加16的 StringBuilder 对象。在进行字符串拼接时,如果当前容量不足,StringBuilder 会通过 ensureCapacityInternal 方法进行扩容。扩容时,新的容量是当前容量的两倍加二,并且保证新容量至少等于所需的最小容量。原创 2024-07-07 22:37:47 · 939 阅读 · 0 评论 -
StringBulider和StringBuffer的底层源码剖析
要深入了解 StringBuffer 和 StringBuilder 的区别,从底层源码的角度来解析,包括它们的创建、扩容机制等,可以参考 JDK 1.8 的源码。StringBuilder 和 StringBuffer 都继承自 AbstractStringBuilder,并共享其核心实现,包括初始容量和扩容机制。扩容机制:扩容策略是原数组长度的两倍加2,当容量不足时扩容,并通过 Arrays.copyOf 方法复制原数组内容。如果新容量小于所需的最小容量,则将新容量设置为最小容量。原创 2024-07-07 22:46:03 · 144 阅读 · 0 评论