Java中StringBuilder相关知识点
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相关知识点的更多相关文章
- java中stringBuilder的用法
java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...
- 【Socket编程】Java中网络相关API的应用
Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...
- 面试中关于Java中涉及到知识点(转)
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些, ...
- java中的小知识点
1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都 ...
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...
- java线程池相关知识点总结
Android中常见到的很多通用组件一般都离不开"池"的概念,如各种图片加载库,网络请求库,即使Android的消息传递机制中的Meaasge当使用Meaasge.obtain() ...
- java 中 集合类相关问题
1,Java中Collection和Collections的差别 java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法. Collection接口在J ...
- java的数据类型相关知识点
总结就是八个字: 数据2型,四类八种 (个人理解,仅供参考) 解析图如下: 基本数据类型: 1.逻辑类:boolean 布尔类型,它比较特殊,布尔类型只允许存储true(真)或者false(假),不可 ...
- Java中路径相关的获取方式
[参考文章]:Java文件路径(getResource) [参考文章]:关于java:如何获取正在运行的JAR文件的路径? [参考文章]:关于Class.getResource和ClassLoader ...
- JAVA中HashMap相关知识的总结(一)
Java中HashMap在jdk1.7和jdk1.8中的区别点: 在jdk1.7中是用数组+链表形式存储,1.8采用数组+链表/红黑树形式 Jdk1.8中由链表转为红黑树是长度大于8,由红黑树转为链表 ...
随机推荐
- RepOpt-VGG:梯度参数化的开创
本文来自公众号"AI大道理" YOLov6的量化问题: yolov6在结构中大量使用了重参数结构,导致数据分布过差,PTQ精度急剧下降.另外,重参数化结构网络无法直接使用Q ...
- Azkaban 4.0.0 系列(一)-- Solo-Server
下载 链接 https://github.com/azkaban/azkaban/releases/4.0.0.tar.gz 解压 tar -xzvf 4.0.0.tar.gz -C 自定义目标目录 ...
- debian / deepin (Ubuntu)安装 mariadb
debian / deepin 安装 mariadb 安装步骤: LINUX安装mariadb本质和mysql一致,可以参考官网教程进行安装.https://mariadb.org/download/ ...
- 如何让一个 div 左右各空一定距离然后 div 占满剩下的宽度?
如何让一个 div 左右各空一定距离然后 div 占满剩下的宽度? 最开始想到的方法就是 div 宽度取 n%, style 设置 margin:auto. 但是这样有一个问题,一定距离是根据 n 的 ...
- centos7 安装jupyter
1.基本包安装 yum update -y yum install python-pip -y yum install bzip2 -y yum groupinstall "Developm ...
- 2022.11.13 NOIP2022 模拟赛八
「ROI 2017 Day 2」存储器 无聊的题. 首先 \(s\) 中每一个片段,其在 \(t\) 中对应的字符必然是相同的. 对于 \(t\) 中的每一个片段,考虑检查能否操作出这个片段,实际上只 ...
- 函数调用_通过apply和call方法调用
不同类型函数调用之间的主要区别在于:最终作为函数上下文(可以通过this参数隐式引用到)传递给执行函数对象不同.对于方法而言,即为所在的对象:对于函数而言是window或是undefined(取决于是 ...
- mysql建表常用关键字
DISTRIBUTE BY HASH(`id`) INDEX_ALL='Y' STORAGE_POLICY='HOT'
- 2022-04-11内部群每日三题-清辉PMP
1.项目经理从制造商那里收到一个更新信息,说一个必要的设备修理可能会导致他们的可交付成果迟八周时间.项目经理应该怎么做? A.确定关键路径 B.实施沟通管理计划 C.执行假设情景分析 D.对项目进度赶 ...
- js任务执行顺序
JS 线程简述 js是单线程的,一次只能执行一个任务,执行完毕后才能继续下一个. js执行任务的方式也叫作同步执行,同步和异步与我们平时理解的不太一样,平时的同步我们会认为是多个事情一起做,但是在js ...