String字符串StringBuilder、StringBuffer

  1. String类:数据+相关的操作,即char[ ]+操作
    ■ char数组只是数据,没有操作
    ■ 一串字符就是字符串:char[]、String、StringBuilder
    ■ 字符串的”字面量“(也叫直接量),都是String类型实例
    ■ “字符串常量”: static final修饰的变量
    public static final String TYPE = “car” //TYPE被称为常量,“car”是字面量
    ■ String在Java内部就是一个char[]

  2. String API 有一个实现原则:对象内容永远不变(意思是,只能被销毁,不能被改变。虽然看起来,它的值改变了,但改变的方式是销毁了原先的空间,创立了新的空间),也就是说String对象永远不变,这样的规定使字符串使用起来和基本类型相同,因些多个字符串相连接最好不要用+号;

  3. String字面量相同时,会替换为同一个String对象的引用,常量连接的结果也被优化为一个字符串,用new String(“abc”);会开辟一块新内存;

  4. String 的比较,使用equals.

  5. String API(字符串的常用方法)
    ■ 字符串覆盖了equals(), hashCode() ,toString()
    ■ String字符串中的字符是有序号的,从0开始
    ■ 这些方法如果字符串有变化就返回新的String对象, 不变化就返回原字符串. 如: trim()

String常用方法
◆ charAt() ◆ length() ◆ trim()
◆ toLowerCase() ◆ toUpperCase()
◆ indexOf() ◆ lastIndexOf()
◆ endsWith() ◆ startsWith()
◆ substring(int start, int end)
◆ substring(int start)
◆ toCharArray() 字符串和字符可以相互转换
String str = new String(new char[]{‘1’,‘2’,‘3’});
char[] chs = str.toCharArray();

没有字符串,使用char[]程序开发也是可以的,但是通过使用字符串在程序开发过程中会方便很多;
当多个字符串进行相互连接时用StringBuffer或者StringBuilder

没有字符串,使用char[]程序开发也是可以的,但是通过使用字符串在程序开发过程中会方便很多;
当多个字符串进行相互连接时用StringBuffer
或者StringBuilder

. append()方法,表示“追加”,该方法反复操作的始终是1 个对象
. insert()方法,表示“插入”
. delete()方法,表示“删除”

StringBuilder
1) StringBuilder 是变长字符序列
2) StringBuilder 方法:append,insert … 都返回当前 StringBuilder 对象本身的引用
3) 如果软件需要大量字符串处理时候建议使用StringBuilder
4) String s = s1+s2; Java 实际上是如下代码运行:
String s=new StringBuilder(s1).append(s2).toString();
5) String s = s1+s2+s3+s4; 被优化为 String s = new
StringBuilder(s1).append(s2).append(s3).append(s4).toString();
6) s += "a"会产生两个新对象(StringBuilder, String)(笔试题)
StringBuilder buf=new StringBuilder();
buf.append(“a”);
buf.toString();
7) StringBuffer 和 StringBuilder API 几乎一样!
StringBuffer 是java 早期提供的(JDK1.0),速度稍慢,线程安全
StringBuilder 是Java5 以后提供的(JDK5.0),速度快,非线程安全
. s += “A”;相当于s = new StringBuilder(s).append(“A”).toString,每当做一次字符串拼接,就会创建一个StringBuilder 新对象,同时JVM 在适时回收这些对象,如此会严重影响性能
结论:当处理少量字符串拼接时使用String s = “a”+“b”,大量字符串拼接操作时StringBuilder,
如果对字符串性能有极高要求,则直接操作char[]数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值