stringbuilder
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于stringbuilder内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在stringbuilder相关知识领域提供全面立体的资料补充。同时还包含 safari浏览器、samba、SAMP 的知识内容,欢迎查阅!
stringbuilder相关知识
-
StringBuilder和StringBufferString是不可变得,程序运行时会额外创建对象,当频繁操作字符串时,会额外产生很多临时变量。 因此考虑使用StringBuilder和StringBuffer StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。 实际上StringBuilder就是给字符串开辟了一个内存空间? public class HelloWorld { public stati
-
String、StringBuffer和StringBuilderString 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 运行速度方面:StringBuilder>StringBuffer>String 看下JDK对三者的描述,就能有明确的认识了: String:字符串是常量,创建之后不能进行更改。 StringBuffer:线程安全的可变字符序列。 StringBuilder:非线程安全的可变字符序列,速度比StringBuffer快,但是用于多线程是不安全的。 总结: String:适用于少量的字符串操作的情况 StringBuilder:适用于单线程下在字符缓冲区进行大
-
String,StringBuilder和StringBuffer在 Java 编码中会非常频繁的使用字符串。字符串对应的操作类有3个,分别是String、StringBuffer和StringBuilder。 异同 类型 final 变量/常量 线程安全 效率 String 是 常量 - 低 StringBuffer 是 变量 线程安全 高 StringBuilder 是 变量 线程不安全 高 下图是三种类型的UML类图: 从图片可以看出,StringBuffer和StringBuilder非常相似,其实两者的区别也仅仅在于StringBuffer中的方法是用synchronized修饰的,即通过锁来实现线程安全。 效率 上表中已经介绍了三种
-
String,StringBuffer,StringBuilder的区别最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量
stringbuilder相关课程
stringbuilder相关教程
- StringBuilder 上一节,我们学习了 Java 的 String 类,并介绍了其常用方法。本小节我们来介绍字符串的另外一个类:StringBuilder,我们将会了解到 StringBuilder 与 String 的差异,StringBuilder 的使用场景,也会介绍与 StringBuilder 类对应的 StringBuffer 类,StringBuilder 的使用方法以及其常用方法是本小节的重点学习内容。
- 1.1 什么是 StringBuilder 与 String 相似,StringBuilder 也是一个与字符串相关的类,Java 官方文档给 StringBuilder 的定义是:可变的字符序列。
- 1.2 为什么需要 StringBuilder 在 Java 字符串的学习中,我们知道了字符串具有不可变性,当频繁操作字符串时候,会在常量池中产生很多无用的数据(回忆图示)。而 StringBuilder 与 String 不同,它具有可变性。相较 String 类不会产生大量无用数据,性能上会大大提高。因此对于需要频繁操作字符串的场景,建议使用 Stringbuilder 类来代替 String 类。
- 3.1 构造方法 StringBuilder 类提供了如下 4 个构造方法:StringBuilder() 构造一个空字符串生成器,初始容量为 16 个字符;StringBuilder(int catpacity) 构造一个空字符串生成器,初始容量由参数 capacity 指定;StringBuilder(CharSequence seq) 构造一个字符串生成器,该生成器包含与指定的 CharSequence 相同的字符。;StringBuilder(String str) 构造初始化为指定字符串内容的字符串生成器。其中第 4 个构造方法最为常用,我们可以使用 StringBuilder 这样初始化一个内容为 hello 的字符串:StringBuilder str = new StringBuilder("Hello");
- 4.4 调用构造方法 获取了 Class 的实例对象,我们就可以获取 Contructor 对象,调用其构造方法了。那么如何获得 Constructor 对象?Class 提供了以下几个方法来获取:Constructor getConstructor(Class...):获取某个 public 的构造方法;Constructor getDeclaredConstructor(Class...):获取某个构造方法;Constructor[] getConstructors():获取所有 public 的构造方法;Constructor[] getDeclaredConstructors():获取所有构造方法。通常我们调用类的构造方法,这样写的(以 StringBuilder 为例):// 实例化StringBuilder对象StringBuilder name = new StringBuilder("Hello Imooc");通过反射,要先获取 Constructor 对象,再调用 Class.newInstance() 方法:769运行结果:Hello Imooc
- 3.2 成员方法 StringBuilder 类下面也提供了很多与 String 类相似的成员方法,以方便我们对字符串进行操作。下面我们将举例介绍一些常用的成员方法。3.2.1 字符串连接可以使用 StringBuilder 的 StringBuilder append(String str) 方法来实现字符串的连接操作。我们知道,String 的连接操作是通过 + 操作符完成连接的:String str1 = "Hello";String str2 = "World";String str3 = str1 + " " + str2;如下是通过 StringBuilder 实现的字符串连接示例:708运行结果:Hello World由于 append() 方法返回的是一个 StringBuilder 类型,我们可以实现链式调用。例如,上述连续两个 append() 方法的调用语句,可以简化为一行语句:str.append(" ").append("World");如果你使用 IDE 编写如上连接字符串的代码,可能会有下面这样的提示(IntelliJ idea 的代码截图):提示内容说可以将 StringBuilder 类型可以替换为 String 类型,也就是说可以将上边地代码改为:String str = "Hello" + " " + "World";这样写并不会导致执行效率的下降,这是因为 Java 编译器在编译和运行期间会自动将字符串连接操作转换为 StringBuilder 操作或者数组复制,间接地优化了由于 String 的不可变性引发的性能问题。值得注意的是,append() 的重载方法有很多,可以实现各种类型的连接操作。例如我们可以连接 char 类型以及 float 类型,实例如下:709运行结果:小明的身高为:172.5上面代码里连续的两个 append() 方法分别调用的是重载方法 StringBuilder append(char c) 和 StringBuilder append(float f)。3.2.2 获取容量可以使用 int capacity() 方法来获取当前容量,容量指定是可以存储的字符数(包含已写入字符),超过此数将进行自动分配。注意,容量与长度(length)不同,长度指的是已经写入字符的长度。例如,构造方法 StringBuilder() 构造一个空字符串生成器,初始容量为 16 个字符。我们可以获取并打印它的容量,实例如下:710运行结果:str的初始容量为:16连接操作后,str的容量为343.2.3 字符串替换可以使用 StringBuilder replace(int start, int end, String str) 方法,来用指定字符串替换从索引位置 start 开始到 end 索引位置结束(不包含 end)的子串。实例如下:711运行结果:Hello Java!也可使用 StringBuilder delete(int start, int end) 方法,先来删除索引位置 start 开始到 end 索引位置(不包含 end)的子串,再使用 StringBuilder insert(int offset, String str) 方法,将字符串插入到序列的 offset 索引位置。同样可以实现字符串的替换,例如:StringBuilder str = new StringBuilder("Hello World!");str.delete(6, 11);str.insert(6, "Java");3.2.4 字符串截取可以使用 StringBuilder substring(int start) 方法来进行字符串截取,例如,我们想截取字符串的后三个字符,实例如下:712运行结果:str截取后子串为:慕课网如果我们想截取示例中的” 欢迎 “二字,可以使用重载方法 StringBuilder substring(int start, int end) 进行截取:String substring = str.substring(3, 5);3.2.5 字符串反转可以使用 StringBuildr reverse() 方法,对字符串进行反转操作,例如:713运行结果:str经过反转操作后为:avaJ olleH
stringbuilder相关搜索
-
s line
safari浏览器
samba
SAMP
samplerate
sandbox
sanitize
saper
sas
sass
save
smarty模板
smil
smtp
snapshot
snd
snmptrap
soap
soapclient
soap协议