您现在的位置是:主页 > news > html网站怎么做的/谷歌网站优化

html网站怎么做的/谷歌网站优化

admin2025/5/23 0:50:47news

简介html网站怎么做的,谷歌网站优化,建行个人余额查询系统官网,开发安卓app这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 相关文章: String 的常用方法 目录 一、 StringBuffer 1.分析 S…

html网站怎么做的,谷歌网站优化,建行个人余额查询系统官网,开发安卓app这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 相关文章: String 的常用方法 目录 一、 StringBuffer 1.分析 S…

这博客是对自己学习的一点点总结及记录,如果您对 Java算法 感兴趣,可以关注我的动态,我们一起学习。

用知识改变命运,让我们的家人过上更好的生活

相关文章: String 的常用方法

目录

    • 一、 StringBuffer
    • 1.分析 StringBuffer 的底层源码
  • 2. StringBuffer 详述

  • 3.StringBuffer 的构造方法

  • 4. StringBuffer 的常用方法

  • 二、StringBuilder

  • 三、两者 与 String 的区别

一、 StringBuffer


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