自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 StringBuilder类的数据结构和扩容方式的解读

(3):当你要给你原来定义的字符串中添加新的字符串时,会调用append()方法,而在StringBuilder中的该方法也使用了父类的append()方法,在父类的append()方法中,他首先会获取你添加字符串的长度,然后通过ensureCapacityInternal(count + len)这个方法来判断是否需要扩容,如果需要扩容,将会在原数组的长度的基础上扩容2倍+2。因为StringBuilder中的无参构造方法中调用了父类 的有参构造方法,并且将数组都长度定义成了16。

2025-03-08 16:15:28 302

原创 String类的equals()的作用和 源代码解读

(4):当长度一样时,用两个char类型的数组来分别保存原有字符串和传进来的字符串,这里定义的整形变量i是为了保存字符数组的下标,然后通过while循环分别遍历两个字符数组,将相同位置的字符进行比较,要是一样,就比下一个,直到把整个数组遍历完,要是遇到不一样的直接返回false,不用在继续比下去。(1):继续沿用Object类中的equals()方法的逻辑,先判断地址是否相同,如果地址不同,值基本不可能相同。(2):当地址一样的时候,会先判断传进来的类型是否是String类型,如果不是,肯定不一样。

2025-01-20 19:18:11 221

原创 String为什么不可变

(2):在String类中,提供的所有方法都会创建一个新的String对象,这就导致你在调用String类的方法时。当使用"=="来将字符串前后进行比对发现,得到的结果为false,这是因为String为引用数据类型,当使用“==”来判断时。3:证明:当给定一个字符串,然后调用String类中提供的toUpperCase()方法,该方法可以让字符串中的小写字母变为大写字母。

2025-01-20 10:09:43 372

空空如也

空空如也

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

TA关注的人

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