クラスのStringBufferのStringBuilderを - ストリングJavaツール

Stringクラス---->参照型のjava.langパッケージ

一般的な文字列ペンが質問
  ==の違いは、equalsメソッドを
  ベースタイプは、参照タイプの比較比較することができる
    基準のより基本的な種類のタイプの比較値比較アドレスが
  比較基準に等しいのみ(メソッド)を入力し
    、この比較アドレスをデフォルト
OBJ
    あなたが比較ルールを変更したい場合はこの方法が等しいオーバーライドすることができます
    書かを伴うことになるがのhashCodeメソッド通常、オーバーライドメソッド等しい焦点を当て
    整数Stringクラスなどなどを
  不変の特性*の文字列の
    長さと内容
  の文字列との違いにStringBuffer
  のStringBufferとStringBuilderの間の違い
  Stringオブジェクトストレージ
     "ABC" ---->文字列定数プール
     新しい文字列( "ABC") - > ヒープメモリ
     "" + "B" + "C" + "D"
  *ストリングの方法が一般的に使用されます

java.langのパッケージがある1

いいえ相続3つのインタフェースComparableを直列化、のCharSequenceを実装していません

オブジェクトを構築する方法2

文字列str = "ABC"; //文字列定数値を直接STR(文字列定数プール)
   文字列STR =新しい新しいString(); //引数なしのコンストラクタが空を作成しないオブジェクトの
   文字列str =新しいString( "ABCを " );パラメータ文字列でオブジェクトを作成する//コンストラクタメソッド
   文字列str =新しい文字列(バイト[ ])// 対応する文字列に組み合わさに各アレイ素子
   文字列新しい新しいSTR =(CHAR [])/ /最終列に配列内のスプライス要素の各々をチャー

3.文字列不変特性

Stringクラスは、プライベート最終CHAR []値を含む、
   二箇所の長さと内容に
   長さ- >最終的な修飾配列の長さの配列自体は変化しない一定の最終アドレスアレイを変更し
   たコンテンツを- >プライベートプロパティクラスで変更することができません外部からのアクセス

4. * 一般的な方法

1.等号()

ブール= 1(オブジェクトobj)等しい;
    クラスObject書き換えルールから継承されたメソッド//それが比較文字列リテラルに変更
    ==等号()の区別
    equalsIgnoreCaseを();
    ここに画像を挿入説明

2.のhashCode()

ハッシュコード= INT();
//各文字列要素31を乗じた和を分解し、それが現在の上書きオブジェクトから継承

3.のcompareTo()

int = compareTo(String str);
//实现自Comparable接口 实现啦 按照字典(Unicode编码)索引的顺序比较

4. toString()

String = toString();
没有重写过的toString从Object类中继承过来的
类名@hashCode(16进制形式)
String类重写啦 返回的是String对象的字面值

5. charAt()

char = charAt(int index);//“abc” 0–>a
//返回给定index对应位置的那个char值
int = codePointAt(int index);//“abc” 0–>97
//返回给定index对应位置的那个char所对应的code码

6. length()

int = length();
//返回字符串的长度

7. concat()

String = concat(String);
将给定的字符串拼接在当前字符串之后
注意: 方法执行完毕需要接受返回值 String的不可变特性
concat方法与 +拼接的性能问题
开发中若遇到频繁的拼接字符串—>通常使用StringBuilder/StringBuffer

8. contains()

boolean = contains(CharSequence s);
判断给定的s是否在字符串中存在

9. startsWith()/endsWith() 开头/结尾

startsWith(String prefix);
endsWith(String suffix);
判断此字符串是否已xx开头/结尾

10. getBytes()

byte[] = getBytes(); —> getBytes(String charsetName);
char[] = toCharArray();
将当前的字符串转化成数组 “我爱你中国” char[] ‘我’ ‘爱’ ‘你’ ‘中’ ‘国’

11. indexOf()

int index = indexOf(int/String str [,int fromIndex] );  四个方法重载
找寻给定的元素在字符串中第一次出现的索引位置  若字符串不存在则返回-1
lastIndexOf(int/String str , [int fromIndex]);
找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1

12. isEmpty()

boolean = isEmpty();
判断当前字符串是否为空字符串 (length是否为0)
注意: 与null之间的区别

13. replace() 替换

replaceAll(String regex,String replacement); //正则表达式
replaceFirst(); 换第一次出现的那个字串
将给定的字符串替换成另外的字符串

14. split()

String[] = split(String regex [,int limit限度界限]);
按照给定的表达式将原来的字符串拆分开的

15. substring() 截取

String = substring(int beginIndex [,int endIndex]);
将当前的字符串截取一部分
从beginIndex开始至endIndex结束 [beginIndex,endIndex)
若endIndex不写 则默认到字符串最后

16. toUpperCase()/toLowerCase() 大写/小写

String = toUpperCase();
String = toLowerCase();
将全部字符串转换成大写/小写

17. trim()

String = trim();
去掉字符串前后多余的空格

18. matches()

boolean = matches(String regex)
regular有规律的 expression表达式
正则表达式

StringBuffer和StringBuilder

StringBuffer 是线程安全的
StringBuilder是线程不安全的

1. 所属的包 java.lang包

2. 继承AbstractStringBuilder 间接继承 Object

实现接口Serializable,CharSequence,Appendable
  StringBuffer/StringBuilder没有compareTo方法
  StringBuffer/StringBuilder含有一个String没有的方法 append();拼接

3. 特性

可变字符串 char[] value; 动态扩容

4. 对象的构建

//无参数构造方法 构建一个默认长度16个空间的对象 char[]
  StringBuilder builder = new StringBuilder();
  //利用给定的参数 构建一个自定义长度空间的对象 char[]
  StringBuilder builder = new StringBuilder(20);
  //利用带String参数的构造方法 默认数组长度字符串长度+16个
  StringBuilder builder = new StringBuilder(“abc”)

5. StringBuilder中常用的方法

append()

最主要的方法 append()  频繁的拼接字符串的时候使用此方法 提高性

ensureCapacity(int minimumCapacity)

确保底层数组容量够用

capacity();

字符串底层char[]的容量

length();

字符串有效元素个数(长度)

setLength();

设置字符串的有效元素个数

char = charAt(int index);

int = codePointAt(int index);

String = substring(int start [,int end]);

注意需要接受返回值 看见截取出来的新字符串效果

StringBuilder = delete(int start [,int end]);

StringBuilder类中独有的方法String类没有
将start到end之间的字符串删掉 不用接受返回值就看到效果啦

StringBuilder = deleteCharAt(int index);

String类中没有的方法
将给定index位置的某一个字符删除掉啦

int = indexOf(String str [,int fromIndex]);

int = lastIndexOf(String str [,int fromIndex])

找寻给定的str在字符串中第一次出现的索引位置 带重载 则从某一个位置开始找

将给定的value插入在index位置之上

replace(int start,int end,String str);

将start和end之间的部分替换成str
builder.replace(2,5,“zzt”);

setCharAt(int index,char value);

将index位置的字符改成给定的value

toString()

将StringBuilder对象 构建成一个string对象 返回

trimToSize()

将数组中无用的容量去掉 变成length长度的数组

知识总结

1.StringBuilder类不一定需要

是为了避免String频繁拼接修改字符串信息的时候才用的
底层数组是可变的 提高了性能

2.常用方法

与String类不同的独有方法
 append()  insert() delete() deleteCharAt() reverse()
与String类相同的方法
 length() charAt() codePointAt() indexOf() lastIndexOf()
 substring() replace()名字相同 用法不一致
 不是很常用的方法
  ensureCapacity() capacity() setLength() trimToSize(); setCharAt();

3.String家族笔试中经常容易考察的知识点

1.String所属的包 继承关系 实现接口

java.lang 继承Object 接口Serializable,CharSequence,Comparable

2.String构建方式

常量 构造方法

3.String对象内存结构

字符串常量区 new堆内存对象
== equals()区别
“a”+“b”+“c”

4.String不可变特性

长度及内容

5.String中的常用方法—与StringBuilder的区别

concat();  toUpperCase();

6.String和StringBuilder区别 | String和StringBuffer区别

文字列文字列不変
  JDK1.0は
  インターフェース同等有する
  反映非可変長とコンテンツ
  いくつかの方法のcompareToのtoUpperCaseのStringBuilderない、連結
 のStringBuilder変数ストリング
  JDK1.5が
  インターフェース追加可有する
  アレイであってもよい可変文字列が最終層を変更されません拡張
  いくつかの方法は、(削除)()文字列なしアペンド(挿入はありません )(リバース)

異なる7.StringBufferとのStringBuilder

StringBufferの旧バージョン1.0
のStringBuilderバージョン1.5
スレッド同期セキュリティの以前のバージョンは、比較的高い効率が比較的低くなっている
非同期スレッドの安全性のそれ以降のバージョンが比較的低い効率が比較的高くなっています

公開された30元の記事 ウォンの賞賛0 ビュー6639

おすすめ

転載: blog.csdn.net/qq_37710756/article/details/103674086