Java StringBuilder类相关知识总结
1.构造方法:
无参构造:new StringBuilder() —— 得到的是 "" 一个空字符串
有参构造:new StringBuilder("abc");
2.成员方法:
append()方法:在字符串的末尾添加内容,返回值仍然是this,故可以链式调用。
public class Demo5 { public static void main(String[] args) { StringBuilder sb=new StringBuilder("I am "); sb.append("a girl "); sb.append(1); sb.append(true); sb.append(" o").appeng("k"); System.out.println(sb); } }//运行结果: I am a girl 1true ok
3.StringBuilder和String之间的区别:
(1)String 是一个被final修饰的类,它的底层是一个固定大小的数组,所以一旦创建就不能改变。
(2)StringBuilder底层也是数组,但是没有被final修饰,所以可以改变长度,即可以改变内容。
注意:String s="a"+"b"+"c";是3个字符串a,b,c中的a和b先连接,创建一个新的字符串"ab",“ab"再与"c"连接,
创建一个新的字符串"abc",一开始的3个字符串"a","b","c"都没变,所以一共是5个字符串。
而StringBuilder每次append()之后返回的仍然是this,所以自始至终都只有一个字符串,而且不用新建对象,效率更高。
4.StringBuilder和String之间的相互转换:
public class Demo5 { public static void main(String[] args) { String str="abc"; StringBuilder sb=new StringBuilder(str); sb.append("123"); String s = sb.toString(); System.out.println(s); } } //运行结果: abc123
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java中StringBuilder字符串类型的操作方法及API整理
0.StringBuilder类型简介 StringBuilder类型是一个可变的字符串类型,StringBuilder类型的API与StringBuffer类型的API基本一致,唯一的区别是StringBuilder的使用假设在单一线程中,换句话说,StringBuilder是线程不安全的.StringBuilder在实例化的时候,通常也会默认设定一个容量大小,一般为字符串参数的长度+16.StringBuilder是继承AbstractStringBuilder这个抽象类的,而这个抽象类的内
-
java StringBuilder类的详解及简单实例
java StringBuilder类的详解及简单实例 实现代码: public class StringBuilderTest { /** * @param args */ public static void main(String[] args) { StringBuilder sb = new StringBuilder(); // 追加字符串 sb.append("java");//sb = "java" // 插入 sb.insert(0 , &qu
-
Java StringBuilder类原理及常用方法
这篇文章主要介绍了Java StringBuilder类原理及常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 StringBuilder类的由来 由于String类的对象内容不可改变(底层是一个被final修饰的数组),所以每当我们进行字符串拼接时,总是会在内存中创建一个新的对象.如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.为了解决这一问题,我们可以使用java.lang.StringBui
-
全面解释java中StringBuilder、StringBuffer、String类之间的关系
1. String 类 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间. String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它地址. 因此String的操作都是改变赋值地址而不是改变值操作. 2. StringBuf
-
详细分析Java中String、StringBuffer、StringBuilder类的性能
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看API会发现,String.StringBuffer.StringBuilder都实现了 CharSequence接口,虽然它们都与字符串相关,但是其处理机制不同. String:是不可改变的量,也就是创建后就不能在修改了. StringBuffer:是一个可变字符串序列,它与String一样,在内存中保存的都是一个有序的字符串
-
辨析Java中的String与StringBuffer及StringBuilder字符串类
1 String String:字符串常量,字符串长度不可变. 2 StringBuffer StringBuffer:字符串变量(Synchronized,即线程安全).如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法. Java.lang.StringBuffer线程安全的可变字符序列.在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容.可将
-
Java StringBuffer类与StringBuilder类用法实例小结
本文实例总结了Java StringBuffer类与StringBuilder类用法.分享给大家供大家参考,具体如下: StringBuffer类的构造方法 package cn.itcast_01; /* * 线程安全(多线程讲解) * 安全 -- 同步 -- 数据是安全的 * 不安全 -- 不同步 -- 效率高一些 * 安全和效率问题是永远困扰我们的问题. * 安全:医院的网站,银行网站 * 效率:新闻网站,论坛之类的 * * StringBuffer: * 线程安全的可变字符串. * *
-
Java StringBuilder类相关知识总结
1.构造方法: 无参构造:new StringBuilder() -- 得到的是 "" 一个空字符串 有参构造:new StringBuilder("abc"); 2.成员方法: append()方法:在字符串的末尾添加内容,返回值仍然是this,故可以链式调用. public class Demo5 { public static void main(String[] args) { StringBuilder sb=new StringBuilder("
-
JAVA内存空间相关知识汇总
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识.一般Java在内存分配时会涉及到以下区域: ◆寄存器:我们在程序中无法控制 ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 ◆堆:存放用new产生的数据 ◆静态域:存放在对象中用static定义的静态成员 ◆常量池:存放常量 ◆非RAM存储:硬盘等永久存储空间 Java内存
-
JAVA 线程通信相关知识汇总
两个线程之间的通信 多线程环境下CPU会随机的在线程之间进行切换,如果想让两个线程有规律的去执行,那就需要两个线程之间进行通信,在Object类中的两个方法wait和notify可以实现通信. wait方法可以使当前线程进入到等待状态,在没有被唤醒的情况下,线程会一直保持等待状态. notify方法可以随机唤醒单个在等待状态下的线程. 来实现这样的一个功能: 让两个线程交替在控制台输出一行文字 定义一个Print类,有两个方法print1和print2,分别打印一行不同的内容 package c
-
浅谈Java自定义注解相关知识
一.自定义注解格式 分析 Java 中自带的 @Override 注解 , 源码如下 : @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { } 注解分为两部分 : ① 元注解 ; ② public @interface 注解名称 ; 二.注解本质分析 按照 public @interface 注解名称 格式 , 写出一个注解 , 编译该注解代码生成 Annotat
-
Java并发容器相关知识总结
一.并发容器 1.1 JDK 提供的并发容器总结 JDK 提供的这些容器大部分在java.util.concurrent包中. ConcurrentHashMap: 线程安全的 HashMap CopyOnWriteArrayList: 线程安全的 List,在读多写少的场合性能非常好,远远好于 Vector. ConcurrentLinkedQueue: 高效的并发队列,使用链表实现.可以看做一个线程安全的 LinkedList,这是一个非阻塞队列. BlockingQueue: 这是一个接口
-
详解Java接口的相关知识
一.接口概述 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法.成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前).默认方法和静态方法(JDK8),私有方法(JDK9). 二.定义格式 接口格式 public interface 接口名称 { // 抽象方法 // 默认方法 // 静态方法 // 私有方法 } 接口不能直接使用,必须有一个"实现类"来"实现接口". 实现类格式: public clas
-
Java IO流相关知识代码解析
一.IO流的分类 字符流 Reader InputStreamReader(节点流) BufferedReader(处理流) Writer OutputStreamWriter(节点流) BufferedWriter(处理流) PrintWriter 字节流 InputStream FileInputStream(节点流) BufferedInputStream(处理流) ObjectInputStream(处理流) PrintStream OutputStream FileOutputStre
-
java StringBuilder类的详解及简单实例
java StringBuilder类的详解及简单实例 实现代码: public class StringBuilderTest { /** * @param args */ public static void main(String[] args) { StringBuilder sb = new StringBuilder(); // 追加字符串 sb.append("java");//sb = "java" // 插入 sb.insert(0 , &qu
随机推荐
- SWT(JFace)体验之ProgressBar
- Windows2003下VPN服务器架设图文教程
- 在Python的while循环中使用else以及循环嵌套的用法
- C#实现windows form拷贝内容到剪贴板的方法
- JavaScript与jQuery实现的闪烁输入效果
- div中文字内容溢出常见的解决方法
- 世界上最健康的作息时间表分享
- 详解js静态资源文件请求的处理
- linux下执行shell命令方法简介
- Linux系统下MongoDB的简单安装与基本操作
- 服务器网站分离 给每个IIS站点建立一个用户第1/2页
- jQuery利用sort对DOM元素进行排序操作
- 基于jquery可配置循环左右滚动例子
- jQuery用FormData实现文件上传的方法
- JS CSS制作饱含热情的镶边文字闪烁特效
- windows 服务器 目录 安全详细设置(PJblog 博客)
- 怎么才能让用户站直接.shtml文件
- C# 分支与循环介绍
- 基于C语言中段错误的问题详解
- 浅析C++中cout的运行机制