自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 HashMap的底层实现原理

首先当它进行put操作时会计算key所在类的hashcode方法,计算key的哈希值,经过某种算法时,他会将key放在entry数组的某一个位置,如果这个位置上是空的,就添加成功,如果这个地方不是空的,就要比较这个位置上所有值的哈希值这里用的是链表结构,可以存放多个元素,如果哈希值不相同,则添加成功,如果相同,就会调用equals方法,来比较上面元素和添加元素的内容是否相同,如果不相同,添加成功,如果相同,就会将值进行替换,所以为了保证键唯一在添加元素时一定重写equals方法和hashcode方法。

2024-03-26 06:55:56 221 1

原创 ArraysList的扩容机制

1.它的初始容量是0,当你添加元素的时候他会给你的长度增加到1,在Java中,它以当前容量的一定增量进行扩容,默认情况下增量为当前容量的一半。ArrayList的底层是一个动态数组,当数组容量不够时它能够自动的进行扩容。以下就是他的扩容原理(源码)。当需要扩容时,ArrayList会创建一个更大的内部数组,并将所有的元素从旧。下面代码简单的展示了ArrayList的扩容机制。以上就是ArraysList的扩容机制。

2024-03-26 06:35:50 102

原创 JAVA中的Stringbuilder和Stringbuffer的扩容机制

一次追加长度不仅超过初始容量,而且按照 当前容量*2+2 扩容一次也不够,其容量会直接扩容到与所添加的。StringBuffer 的有参构造初始容量为:字符串参数的长度+16。一次追加长度超过当前容量,则会按照 当前容量*2+2 扩容一次。之后再追加的话,还会按照 当前容量*2+2进行扩容。有参和无参扩容方法都一样的。都是从当前容量开始扩容。

2024-03-17 23:10:33 513

原创 在Java中如何实现两个数组内容的比较。

第三步,equals方法的重写:因为Java库中equals的方法是比较两个对象它们在内存中的地址是否相同。这里用this是因为你有参构造方法里的参数名字和你的成员变量名字一样所以用this含义是当前对象。第一步,创建一个名为Brothers的类,为了安全起见,类型设置为私有,不能被其他类访问。第四步,利用setter和getter方法可以让外部的代码修改你的私有成员的值。这里将数组中的第二个元素和第三个元素进行比较结果返回一个boolean类型的值。这里再将数组中第二个元素与数组中第四个元素进行比较。

2024-01-23 18:22:38 899 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除