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,由红黑树转为链表 ...
随机推荐
- source insight c++ namespace 无法跳转解决方法
source insight c++ namespace 无法跳转解决方法 2016年02月15日 11:47:35 暗小夜 阅读数:4460 勾选igore namespace declarat ...
- python学习:sqlite3 文件型数据库
摘录:https://www.cnblogs.com/decwang/p/4565572.html SQLite 字段类型 一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据 ...
- java post格式发送application/x-www-form-urlencoded
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.*; ...
- 面试之AQS
https://blog.csdn.net/wwwzhouzy/article/details/119702170 https://copyfuture.com/blogs-details/20200 ...
- 使用phpexcel导出excel和phpword导出word--简单使用
<?php namespace app\index\controller; //离线环境不能使用composer安装,只能下载包文件,然后放在vendor下,代码中require使用 requi ...
- entity framework “XXXXX”的“XXXXX”属性不能设置为“null”值
"T_LICENSE"的"LICENSEFIRSTDATE"属性不能设置为"null"值.必须将该属性设置为类型为"System. ...
- Linux下如何排查CPU及内存占用过多
CPU 使用top命令,然后按shift+p按照CPU排序,找到占用CPU过高的进程pid. 使用top -H -p pid命令,找到进程中消耗资源最高的线程ppid. 使用echo 'obase=1 ...
- angular 用法总结
架构: 1.一个总页面,然后用组件组成 2.每个组件又由三个文件组成,html,css,ts,三种不同的语言放在三个不同的文件中, 3.ts是总配置文件,里面联合各个其他文件(html,css) 语法 ...
- S-HR查询用户组织范围
SELECT org.FNumber FNumber,org.FName_L2 orgName FROM T_PM_OrgRange orgRange LEFT JOIN T_ORG_admin or ...
- iview table配合Tooltip使用的时候 气泡错位的问题
Tooltip 气泡错位 点击table的单元格,实现遮盖文字的预览功能,但是气泡会发生偏移,看了Tooltip的样式发现 气泡是绝对定位, 想到子绝父相,于是给表格的td添加相对定位的功能,结果能解 ...