String、StingBuffer、StringBuilder

文章目录

一、String的使用

二、 String、StingBuffer、StringBuilder三者异同

一、String的使用

  • 1、String声明为final的,不可继承
  • 2、String实现了Serializable接口:表示字符串是支持序列化的
    实现了Comparalbe接口:表示String可以比较大小
  • 3、String内部定义了final char[] value 用于存储字符串数据
  • 4、String:不可变的字符序列
  • 5、字面量的方式赋值,声明在字符串常量池中
String的实例化方式:
  • 方式一:字面量定义
  • 方式二:new+构造器
提问:String s = new String("abc");方式创建对象,在内存中创建了几个对象?
  • 两个:一个是堆空间中new结构,另一个是char[]对应常量池中的数据“abc”;
String 与 char[]之间的转换
  • String -->char[] : 调用String的toCharArray()
  • char[ ] -->String : 调用String的构造器
String 与 byte[]之间的转换
  • 编码:String -->byte[]:调用String的getBytes()
  • 解码:byte[] -->String:调用String的构造器
字符串--->字节(字符集必须一致)
  • 1、常量与常量的拼接结果在常量池、
  • 2、只要其中一个是变量,结果就在堆中
  • 3、拼接结果调用intern()方法,返回值在常量池中
    在这里插入图片描述

二、String、StingBuffer、StringBuilder三者异同

  • String:不可变,底层用char[ ]存储
  • StringBuffer:可变,线程安全,效率低初始容量为16的缓冲区,底层用char[ ]存储
  • StringBuilder:可变,jdk5新增的,线程不安全,效率高,底层用char[ ]存储
总结:
  • 增:append(XXX)
  • 删:delete(int start,int end)
  • 改:setCharAt(int n,char ch)/replace(int start,int end,String str)
  • 查:charAt(int n)
  • 插:insert(int offset,XXX)
  • 长度:Length();
  • 遍历:for()+charAt()/toString()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值