字符串拼接问题:

String类的对象内容不可改变:字符串的底层是一个被final修饰的数组,不能改变,是一个常量

所以每当进行字符串拼接时,总是会在内存中创建一个新的对象

进行字符串的相加,内存中就会有多个字符串,占用空间多,效率低下

例:

String s="hello";
s+="world";
System.out.println(s);

总共创建了三个字符串,“hello”, "world" "hello world"

引用变量s首先指向"Hello”,最终指向"helloworld"

StringBuilder类:

字符串缓存区,可以提供字符串的操作效率(看成一个长度可以变化的字符串)

底层是一个没有被final修饰的数组

允许采用多线程的方式添加或删除字符。

如果所有 字符串编辑操作都是在单个线程中执行,则应该使用StringBuilder类。

stringBuilder的构造方法:

public StringBuilder():                    构造一个空的StringBuilder容器

StringBuilder bu1=new StringBuilder();

public StringBuilder(String str):     构造一个StringBuilder容器,并将字符串添加进去

StringBuilder bu2=new StringBuilder("abc");

StringBuilder类常用成员方法

public StringBuilder append(..):添加任意类型数据的字符串形式,并返回当前对象自身

StringBuilder bu1=new StringBuilder();
StringBuilder bu2=bu1.append("abc");
//bu1:abc
//bu2:abc
bu1与bu2地址值相同

还可以写成

bu1.append("abc");
bu1.append(1);
bu1.append(1.1);

还可以写成:

bu1.append("abc").append(1).append(1.1);

链式编程:方法返回值是一个对象,可以根据对象继续调用方法

tostring方法:

public String toString():将当前StrnigBuilder对象转换为String对象

StringBuilder和String可以相互转换

         String->StringBuilder(String str):使用StringBuilder的构造方法

StringBuilder->String:                可以使用StringBuilder中的tostring转换为String对

总结:

int length():返回构建器或缓冲器中代码单元数量

StringBuilder delete(int startIndex,int endIndex):删除偏移量从startIndex到endIndex-1的代码单元并返回this

【java笔记】StringBuilder类相关推荐

  1. 【Java】StringBuilder类、包装类

    1 StringBuilder类 1.1 String的劣势 String类中字符串是常量,创建后不能更改 //底层是final修饰的数组 private final byte[] value; 字符 ...

  2. JAVA笔记11__File类/File类作业/字节输出流、输入流/字符输出流、输入流/文件复制/转换流...

    /*** File类:文件的创建.删除.重命名.得到路径.创建时间等,是唯一与文件本身有关的操作类*/ public class Main {public static void main(Strin ...

  3. JAVA笔记:shape类(接口,继承,lambda表达式...)

    目录 写一段程序,实现shape面积,并可以对面积大小排序 定义父类shape类,并定义方法Area() 定义第一个子类Circle类 定义第二个子类Rect类 定义接口Comparator,并写入c ...

  4. 【java笔记】类与对象(定义,创建,使用,标准的类,对象数组)

    面向对象的特征: 封装,继承,多态 类:一组相关属性(数据成员)和行为(成员方法)的集合.抽象出事物的属性和行为来描述事物. 对象:一类事物的具体体现. 类和对象的关系: 类的定义: 例:定义一个学生 ...

  5. Java笔记07——类和对象

    目录 1. 面向对象---概述 1.1 啥是面向对象编程? 1.2 为什么要面向对象编程 1.3 面向对象学什么? 总结一 2 创建和设计 类 2.1 什么是 类? 2.2 什么是对象? 2.3 如何 ...

  6. Java笔记-常用类String

    常用类String 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. String 创建的字符串存储在公共池中. import java.util.Arrays; ...

  7. Java笔记(六)——类和对象(上) 类的定义 / 初始化 / toString

    1 类和对象的初步认识 1.1 主观理解 1.2 代码/语法的角度 2 类的定义和使用 2.1类的定义.实例化 2.2 常见的类定义错误 3 类的成员 3.1 成员变量/属性/字段 3.2 方法 4 ...

  8. Java笔记09——类和对象

    面向对象的两个要素:类和对象 类:是对一类事物的描述,是抽象的,概念上的定义. 对象:实际存在的某类事物的个体,也称为实例(instance). 属性: 类中的成员变量 行为:类中的成员方法 生活中描 ...

  9. 【java笔记】类/接口作为成员变量类型

    类/接口  作为成员变量 以英雄角色为例,有姓名,年龄,武器(类),技能(接口),攻击(方法) 技能接口: public interface Skill {void use();//使用技能的抽象方法 ...

  10. 【java笔记】类的抽象

    如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 抽象方法和抽象类的定义格式: 抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束 抽象类:抽象方法所在的类, ...

最新文章

  1. Coinbase内部调查未发现比特币现金内幕交易证据
  2. 【面试必会】editplus使用教程java
  3. 一起用C#做个五子棋的小游戏 增加了程序对战功能
  4. 光流 | 基于Matlab实现Lucas-Kanade方法:方法2(附源代码)
  5. 大开眼界!终于等到这部每一帧都是壁纸的纪录片!
  6. edge robert matlab,哪位熟悉matlab的大神路过瞄一眼哈
  7. 高等数学下-赵立军-北京大学出版社-题解-练习10.4
  8. java做橡皮擦效果_HTML5 canvas橡皮擦擦拭效果
  9. 直播预告 | 企业CICD规模化落地
  10. db2 查看表结构_数据库结构文档的生成利器
  11. 【论文写作】SSM超市管理系统如何写可行性分析
  12. python名片管理教程_[Python]名片管理系统
  13. STM32单片机网络通信调试
  14. (2022-2028年年)全球与中国实验室开发试验(LDT)行业发展调研与市场前景预测报告
  15. 在EXCEL中插入超级链接
  16. 中学语文教学参考杂志社中学语文教学参考编辑部2022年第27期目录
  17. 未来计算机的硬件发展趋势,整理计算机硬件发展史以及计算机硬件发展趋势
  18. 【WPS表格】数据透视表刷新后,保持格式不变
  19. 最近几天支付宝群里都在议论网商贷额度突然降低和消失,这是怎么回事?
  20. 【MMDetection3D】MVXNet踩坑笔记

热门文章

  1. Bailian4029 数字反转【进制】(POJ NOI0105-29)
  2. 《程序设计技术基础》第1-5章例程
  3. NUC1657 All in All【字符串匹配】
  4. 状态机与马尔科夫模型
  5. prettytensor 的使用
  6. 数据结构——红黑树(red-black tree)
  7. C++基础::关于区间端点的问题
  8. 零基础学python书籍-5本好书------Python零基础到入门必读Python书籍!
  9. python编程入门书籍-python入门书籍推荐
  10. python基础知识-Python学习--最完整的基础知识大全