您现在的位置是:主页 > news > html网站怎么做的/谷歌网站优化
html网站怎么做的/谷歌网站优化
admin2025/5/23 0:50:47【news】
简介html网站怎么做的,谷歌网站优化,建行个人余额查询系统官网,开发安卓app这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 相关文章: String 的常用方法 目录 一、 StringBuffer 1.分析 S…
这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。
用知识改变命运,让我们的家人过上更好的生活
。
相关文章: String 的常用方法
目录
-
- 一、 StringBuffer
-
- 1.分析 StringBuffer 的底层源码
-
2. StringBuffer 详述
-
3.StringBuffer 的构造方法
-
4. StringBuffer 的常用方法
-
二、StringBuilder
-
三、两者 与 String 的区别
1.分析 StringBuffer 的底层源码
public final class StringBuffer
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
{
private transient char[] toStringCache;
static final long serialVersionUID = 3388685877147921107L;
/**
- 构造一个没有字符的字符串缓冲区,初始容量为16个字符
*/
public StringBuffer() {
super(16);
}
/**
- 构造一个字符串缓冲区,该缓冲区中没有字符,且具有指定的初始容量
*/
public StringBuffer(int capacity) {
super(capacity);
}
/**
-
构造一个初始化为指定字符串内容的字符串缓冲区。字符串缓冲区的初始容
-
量是{@code 16}加上字符串参数的长度。
*/
public StringBuffer(String str) {
super(str.length() + 16);
append(str);
}
它是JDK1.0引进来的,它继承于AbstractStringBuilder
再看看它的父类AbstractStringBuilder的源码:
abstract class AbstractStringBuilder implements Appendable, CharSequence {
/**
- value 用于存储字符
*/
char[] value;
/**
- 计数是使用的有效字符数
*/
int count;
value : 用于存储字符,可以看到value没有用final修饰,表明它可
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
以进行不断地扩容;
int count :计数是使用的有效字符数
2. StringBuffer 详述
StringBuffer 线程安全,可变的字符序列。 字符串缓冲区就像一个String ,但可以修改。
在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。
每个字符串缓冲区都有一个容量。 只要字符串缓冲区中包含的字符序列的长度不超过容量,就不必分配新的内部缓冲区数组。
如果内部缓冲区溢出,则会自动变大。除非另有说明,否则将null参数传递给null中的构造函数或方法将导致抛出NullPointerException 。
从版本JDK 5开始,这个类别已经被一个等级类补充了,这个类被设计为使用一个线程StringBuilder 。 StringBuilder应该使用StringBuilder类,因为它支持所有相同的操作,但它更快,因为它不执行同步。
3.StringBuffer 的构造方法
StringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为16个字符。
StringBuffer(CharSequence seq) 构造一个包含与指定的相同字符的字符串缓冲区 CharSequence 。
StringBuffer(int capacity) 构造一个没有字符的字符串缓冲区和指定的初始容量。
StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区。
4. StringBuffer 的常用方法
- int length() 返回长度(字符数)
- char charAt(int index) 返回 char在指定索引在这个序列值
- int indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引
- String substring(int start) 返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。
- StringBuffer append(xxx) 提供了很多的append()方法,用于进行字符串拼接
- StringBuffer delete(int start, int end) 删除此序列的子字符串中的字符
- StringBuffer replace(int start, int end, String str) 用指定的String中的字符替换此序列的子字符串中的 String
- StringBuffer insert(int offset, xxx) 在指定位置插入xxx
- StringBuffer reverse() 把当前字符序列逆转
测试代码:
public class StringBufferMethodTest {
public static void main(String[] args) {
StringBuffer s1 = new StringBuffer(“abc”);
// int length() 返回长度(字符数)
System.out.println(s1.length()); // 3
// char charAt(int index) 返回 char 在指定索引在这个序列值
System.out.println(s1.charAt(0)); // a
// setCharAt 修改指定位置的值
s1.setCharAt(0, ‘f’);
System.out.println(s1); // fbc
// int indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引
System.out.println(s1.indexOf(“a”)); // -1 表明没有找到,因为在上面的操作中把改成了b
// String substring(int start) 截取子串
System.out.println(s1.substring(1)); // bc
System.out.println(s1);
// StringBuffer append(char c) 将 char参数的字符串表示附加到此序列
System.out.println(s1.append(“de”)); // fbcde
// StringBuffer delete(int start, int end) 删除此序列的子字符串中的字符
System.out.println(s1.delete(0, 2)); // cde
// StringBuffer replace(int start, int end, String str)
// 用指定的String中的字符替换此序列的子字符串中的 String
System.out.println(s1.replace(1, 3, “xy”)); // cxy