StringBuilder

1.StringBuilder概述

  • 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免。我们可以通过StringBuilder类来解决这个问题。
  • StringBuilder是一个可变的字符串类,我们可以把它看成一个容器,这里说的可变是指StringBuilder对象中的内容是可变的。

String和StringBuilder的区别:

  • String中内容是不可变得
  • StringBuild中的内容是可变的

2.StringBuilder构造方法

构造方法活命 说明
public StringBuilder() 创建一个空白的可变字符串对象,不含有任何内容
public StringBuilder(String str) 根据字符串的内容来创建可变的字符串对象

示例:

package com.itheima_02;

public class StringBuilderDemo01 {
public static void main(String[] args) {
//StringBuilder的两种构造方法: //public StringBuilder():创建一个空白的可变字符串对象,不含有任何内容
StringBuilder sb = new StringBuilder();
System.out.println("sb:"+sb);
System.out.println("sb.length():"+ sb.length());
//public StringBuilder(String str):根据字符串的内容来创建可变的字符串对象
StringBuilder sb2 = new StringBuilder("abc");
System.out.println("sb2:"+sb2);
System.out.println("sb2.length():"+ sb2.length()); }
}

3.StringBuilder的添加和反转方法

方法名 说明
public StringBuilder append(任意类型) 添加数据,并返回对象自身
public StringBuilder reverse() 返回相反的字符串序列
//创建对象
//public StringBuilder append(任意类型)添加数据,并返回对象自身
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = sb.append("hello"); System.out.println("sb:" + sb);
System.out.println("sb2:" + sb2);
System.out.println(sb == sb2);
//因为append返回的对象自身,所以sb和sb2所指向的为同一块区域

示例:

package com.itheima_02;

public class StringBuilder02 {
public static void main(String[] args) {
//创建对象
//public StringBuilder append(任意类型)添加数据,并返回对象自身
StringBuilder sb = new StringBuilder("hello"); // sb.append("world");
// sb.append("你好");
// sb.append("世界");
// sb.append(999);
//链式编程
sb.append("world").append("你好").append("世界").append(999);
System.out.println("sb:" + sb);
//public StringBuilder reverse()返回相反的字符串序列
sb.reverse();
System.out.println("sb.reverse():"+sb); }
}

4.StringBuilder和String相互转换

4.1 StringBuilder转换为String

​ public String toString():通过toString()就可以实现把StringBuilder转换为String

//StringBuilder 转换为 String
StringBuilder sb = new StringBuilder();
sb.append("hello");
//String s = sb;//错误的做法
//public String toString():通过toString()就可以实现把StringBuilder转换为String
String s = sb.toString();
System.out.println(s);

4.2 String转换为StringBuilder

​ public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder

String s = "hello";
//StringBuilder sb = s; //错误的做法
//public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);

Java中StringBuilder相关知识点的更多相关文章

  1. java中stringBuilder的用法

    java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...

  2. 【Socket编程】Java中网络相关API的应用

    Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...

  3. 面试中关于Java中涉及到知识点(转)

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...

  4. java中的小知识点

    1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...

  5. 全面解释java中StringBuilder、StringBuffer、String类之间的关系

    StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...

  6. java线程池相关知识点总结

    Android中常见到的很多通用组件一般都离不开"池"的概念,如各种图片加载库,网络请求库,即使Android的消息传递机制中的Meaasge当使用Meaasge.obtain() ...

  7. java 中 集合类相关问题

    1,Java中Collection和Collections的差别 java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法. Collection接口在J ...

  8. java的数据类型相关知识点

    总结就是八个字: 数据2型,四类八种 (个人理解,仅供参考) 解析图如下: 基本数据类型: 1.逻辑类:boolean 布尔类型,它比较特殊,布尔类型只允许存储true(真)或者false(假),不可 ...

  9. Java中路径相关的获取方式

    [参考文章]:Java文件路径(getResource) [参考文章]:关于java:如何获取正在运行的JAR文件的路径? [参考文章]:关于Class.getResource和ClassLoader ...

  10. JAVA中HashMap相关知识的总结(一)

    Java中HashMap在jdk1.7和jdk1.8中的区别点: 在jdk1.7中是用数组+链表形式存储,1.8采用数组+链表/红黑树形式 Jdk1.8中由链表转为红黑树是长度大于8,由红黑树转为链表 ...

随机推荐

  1. cookie、session入门

    一.cookie是由http制定的 二.使用方法 1.原始方法 使用request接受Cookies请求头 使用response发送set-Cookies响应头 2.常用方法 response.add ...

  2. Oracle虚拟机与主机共享设置

    VM中linux与主机的文件共享 1.打开 Oracle VM VirtualBox   点击 [控制] [设置] [数据空间] 添加你所希望共享的文件夹

  3. Android组件化开发-----页面路由(ARouter)

    平时开发中,我们经常用到页面跳转功能.之前我一直使用Intent过跳转 Intent intent = new Intent(A.this, B.class); intent.putExtra(&qu ...

  4. springboot集成Thumbnailator压缩图片

    一.参考大神博客 1.https://blog.51cto.com/u_11269274/5118649 2.https://blog.csdn.net/weixin_44722978/article ...

  5. 百题计划-4 codeforces 652 div2 D. TediousLee 找规律

    https://codeforces.com/contest/1369/problem/D n<=2e6,所以只要找递推式就可以了,不需要找快速幂 /** */ #include<bits ...

  6. response status is 500 https://localhost:7129/swagger/v1/swagger.json

    SwaggerGeneratorException: Conflicting method/path combination "GET Test" for actions - To ...

  7. 升级TLS1.3

    初衷:简简单单在网站上挂个单点登录,先在本地跑起来,然后再放到服务器上.然而问题来了: 请求被中止: 未能创建 SSL/TLS 安全通道 简简单单的百度一下,只需要加上这行就可以了~Easy Serv ...

  8. 裁员潮下,我月薪3W依旧坚挺

    近几年来产品经理一直是求职市场中的香饽饽: 年薪20w起.没有专业限制.职业天花板高,甚至行业中一直流传着一句话:产品经理是CEO的学前班. 在各种光环的加持下,不少应届生或有转行打算的职场人都将目光 ...

  9. C#windows 服务 《转载》

    转自:https://blog.csdn.net/Code_May/article/details/123909870 c#应用Windows服务 背景 一.创建windows服务 1.创建windo ...

  10. Java 01-Java常用类 System

    System类:系统类,主要用于获取系统的属性和方法,没有构造方法 System的属性都是静态属性,方法都是静态方法 方法: 获取当前系统时间 currentTimeMillis()  返回的是毫秒值 ...