有关String、StringBuffer、StringBuilder三种字符串的类

本文详细探讨了Java中的String、StringBuffer和StringBuilder类的特性与使用。String是不可变对象,每次修改都会生成新对象,而StringBuffer和StringBuilder在修改时不会创建新对象,适合字符串频繁变动的情况。在多线程环境下推荐使用线程安全的StringBuffer,单线程环境下StringBuilder效率更高。此外,文章还分析了三种字符串拼接方法:+、concat()和append()的性能差异。
摘要由CSDN通过智能技术生成

JAVA中针对,字符串的创建,修改,有着一种非常特殊的规定.下面就来看看:

一、String:

String并不是基本数据类型,而是一个被final修饰的不可变对象。通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象

字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下null、””、new String()三者的区别。null 表示string还没有new,也就是说对象的引用还没有创建,也没有分配内存空间给他,而””、new String()则说明了已经new了,只不过内部为空,但是它创建了对象的引用,是已经分配内存空间的。打个比方:一个空玻璃杯,你不能说它里面什么都没有,因为里面有空气,当然也可以把它弄成真空,null与" "、new String()的区别就象真空与空气一样。

每当我们创建一个字符串对象时,首先就会检查字符串池中是否存在面值相等的字符串,如果有,则不再创建,直接放回字符串池中对该对象的引用,若没有则创建然后放入到字符串池中并且返回新建对象的引用。这个机制是非常有用的,因为可以提高效率,减少了内存空间的占用。所以在使用字符串的过程中,推荐使用直接赋值(即String s=”aa”),除非有必要才会新建一个String对象(即String s = new String(”aa”))。

1、字符串比较:

  • ==:判断内容与地址是否相同。
  • equals() :判断内容是否相同。
  • equalsIgnoreCase():忽略大小写的情况下判断内容是否相同。
  • compareTo() :判断字符串的大小关系。
  • compareToIgnoreCase(String int) :在比较时忽略字母大小写。
  • reagionMatches():对字符串中的部分内容是否相同进行比较。

2、字符串查找:

  • charAt(int index):返回指定索引index位置上的字符,索引范围从0开始。
  • indexOf(String str):从字符串开始检索str,并返回第一次出现的位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值