当前位置: 首页 > news >正文

受欢迎的网站建设公司徐州做网站的培训机构

受欢迎的网站建设公司,徐州做网站的培训机构,站长之家音效素材,网站开发个人感想文章目录 StringBuffer与StringBuilder的理解StringBuilder、StringBuffer的API StringBuffer与StringBuilder的理解 因为String对象是不可变对象,虽然可以共享常量对象,但是对于频繁字符串的修改和拼接操作,效率极低,空间消耗也…

文章目录

  • StringBuffer与StringBuilder的理解
  • StringBuilder、StringBuffer的API

StringBuffer与StringBuilder的理解

因为String对象是不可变对象,虽然可以共享常量对象,但是对于频繁字符串的修改和拼接操作,效率极低,空间消耗也比较高。因此,JDK又在java.lang包提供了可变字符序列StringBuffer和StringBuilder类型。

java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符串内容进行增删,此时不会产生新的对象。比如:

StringBuffer与StringBuilder StringBuffer 不会出现线程不安全,而StringBuilder 会出现但是它的效率会高很多。

//情况1:
String s = new String("我喜欢学习"); 
//情况2:
StringBuffer buffer = new StringBuffer("我喜欢学习"); 
buffer.append("数学"); 

在这里插入图片描述
在这里插入图片描述

  • StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且提供相关功能的方法也一样。
  • 区分String、StringBuffer、StringBuilder
    • String:不可变的字符序列; 底层使用char[]数组存储(JDK8.0中)
    • StringBuffer:可变的字符序列;线程安全(方法有synchronized修饰),效率低;底层使用char[]数组存储 (JDK8.0中)
    • StringBuilder:可变的字符序列; jdk1.5引入,线程不安全的,效率高;底层使用char[]数组存储(JDK8.0中)

StringBuilder、StringBuffer的API

StringBuilder、StringBuffer的API是完全一致的,并且很多方法与String相同。

(1)StringBuffer append(xx):提供了很多的append()方法,用于进行字符串追加的方式拼接
(2)StringBuffer delete(int start, int end):删除[start,end)之间字符
(3)StringBuffer deleteCharAt(int index):删除[index]位置字符
(4)StringBuffer replace(int start, int end, String str):替换[start,end)范围的字符序列为str
(5)void setCharAt(int index, char c):替换[index]位置字符
(6)char charAt(int index):查找指定index位置上的字符
(7)StringBuffer insert(int index, xx):在[index]位置插入xx
(8)int length():返回存储的字符数据的长度
(9)StringBuffer reverse():反转

  • 当append和insert时,如果原来value数组长度不够,可扩容。

  • 如上(1)(2)(3)(4)(9)这些方法支持方法链操作。原理:在这里插入图片描述

2、其它API
(1)int indexOf(String str):在当前字符序列中查询str的第一次出现下标
(2)int indexOf(String str, int fromIndex):在当前字符序列[fromIndex,最后]中查询str的第一次出现下标
(3)int lastIndexOf(String str):在当前字符序列中查询str的最后一次出现下标
(4)int lastIndexOf(String str, int fromIndex):在当前字符序列[fromIndex,最后]中查询str的最后一次出现下标
(5)String substring(int start):截取当前字符序列[start,最后]
(6)String substring(int start, int end):截取当前字符序列[start,end)
(7)String toString():返回此序列中数据的字符串表示形式
(8)void setLength(int newLength) :设置当前字符序列长度为newLength

@Test
public void test1(){StringBuilder s = new StringBuilder();s.append("hello").append(true).append('a').append(12).append("atguigu");System.out.println(s);System.out.println(s.length());
}@Test
public void test2(){StringBuilder s = new StringBuilder("helloworld");s.insert(5, "java");s.insert(5, "chailinyan");System.out.println(s);
}@Test
public void test3(){StringBuilder s = new StringBuilder("helloworld");s.delete(1, 3);s.deleteCharAt(4);System.out.println(s);
}
@Test
public void test4(){StringBuilder s = new StringBuilder("helloworld");s.reverse();System.out.println(s);
}@Test
public void test5(){StringBuilder s = new StringBuilder("helloworld");s.setCharAt(2, 'a');System.out.println(s);
}@Test
public void test6(){StringBuilder s = new StringBuilder("helloworld");s.setLength(30);Syst
http://www.yayakq.cn/news/726544/

相关文章:

  • 域名 备案 网站网站开发科普书
  • asp伪静态网站如何做筛选自己创建网站
  • 西安网站建设培训高级网页设计师
  • 怎么写网站建设维护推广合同网站制作长春
  • 怎么建设一个开源平台网站网站域名的用处
  • 宁波建设工程主管部门网站前端开发需要学什么语言
  • 网站添加背景音乐网站排名有什么用
  • 天津网站建设品牌推广水利建设管理司网站
  • 网站开发销售话术电商平面ui设计是什么
  • 北京网站建设方案wordpress 焦点图大小
  • 南沙手机网站建设久久建筑网怎么不好用
  • 微信公众号和wordpress护肤品网站优化案例
  • 怎样优古网络公司网站后台有没有做试题的网站
  • 会计证继续教育在哪个网站做wordpress 学校模版
  • 齐河网站建设公司网站版块策划
  • 可以做羞羞的游戏视频网站惠州做棋牌网站建设找哪家效益快
  • 网站开发计划表秦皇岛新闻最新消息
  • 网站建设一般用到的语言南京企业网
  • 淘宝网站的建设目标是设计素材类网站开发策划书
  • 国外还有那种做电商的网站安徽建工招采平台
  • 网站logo怎么做wordpress主题半边黑半边白
  • 网站建设与管理A卷搜索引擎推广法
  • 辽宁网站开发如何看出网站开发语言
  • 麻城建设网站企业内部门户网站建设方案
  • 源码网站python免费关键字搜索引擎
  • 创免费网站爱情网站设计
  • 咸宁市网站建设最近的新闻热点事件
  • 国家城乡建设部网站首页深入网站开发和运维
  • 网站建设费无形资产深圳市建设局网站张局
  • 做网站常见的语言上海网站建设百度推广公司哪家好