String
Stringは
Stringは、基本データ型(=int、float、char、boolean)などの一般的なクラスです.ここでいうように、Stringとは、これらの基本資料型とは異なり、参考資料型のclassという意味です.参照資料型とは、オブジェクト自体が値を持たず、reference(アドレス)値を有し、そのreferenceにオブジェクト値を有する形式をいう.ここではStringを生成する方法やその他の基本的な内容を省略して整理する.基本的な方法はString apiの確認をお勧めします.
String比較
前述したようにStringは参照変数であるため、==で比較すると、新しく作成された2つのオブジェクトのアドレス値が当然異なるためfalseが現れる.これがequal()を使用する理由です.それを覚えて!
Stringオブジェクトの不変フィーチャー
Stringオブジェクトには可変の特徴があります.不変はStringオブジェクトが編集不可であることを意味します.しかし、私たちは今まで.String str = "new";
str = str+" world";
このようにStringオブジェクトの値を編集すると思います.しかし、これは私たちが編集しているように見えるだけで、実際には既存のStringオブジェクトの参照変数を放棄し、新しい編集Stringオブジェクトの参照変数に置き換えます.Stringオブジェクトを編集し続けると、意味のないオブジェクトが生成され続けます.一度や二度でいいのですが、何度も繰り返し使うのであればメモリ管理の面では考えておくべきです.これらの問題を解決するためにStringBufferクラスがあります
StringBuffer
String classは変更できない不変の特性ですが、StringBuffer classは内部で直接変更できるクラスです.メモリについては、変更されたオブジェクトを頻繁に使用して新しいオブジェクトを作成するStringよりも、メモリ内の一時空間(buffer)を使用するStringBufferクラスの方が望ましい.
StringBuffer classは、文字列の一部を削除または変更したり、特定の場所に追加したりする際に必要な空間であり、作成時に常にメモリから実際の容量よりも16文字長い空間を割り当てます.
StringBufferはString classとは異なり、無差別のオブジェクトを生成せず、直接修正可能な可変特性を有する.したがって、頻繁な修正が必要な場合は、StringBuffer classの方が有利であることを覚えておいてください.
主な方法
Stringは本来よく使われるclassなので整理していませんが、StringBufferは主な方法だけを整理したいと思っています.
前述したようにStringは参照変数であるため、==で比較すると、新しく作成された2つのオブジェクトのアドレス値が当然異なるためfalseが現れる.これがequal()を使用する理由です.それを覚えて!
Stringオブジェクトの不変フィーチャー
Stringオブジェクトには可変の特徴があります.不変はStringオブジェクトが編集不可であることを意味します.しかし、私たちは今まで.String str = "new";
str = str+" world";
このようにStringオブジェクトの値を編集すると思います.しかし、これは私たちが編集しているように見えるだけで、実際には既存のStringオブジェクトの参照変数を放棄し、新しい編集Stringオブジェクトの参照変数に置き換えます.Stringオブジェクトを編集し続けると、意味のないオブジェクトが生成され続けます.一度や二度でいいのですが、何度も繰り返し使うのであればメモリ管理の面では考えておくべきです.これらの問題を解決するためにStringBufferクラスがあります
StringBuffer
String classは変更できない不変の特性ですが、StringBuffer classは内部で直接変更できるクラスです.メモリについては、変更されたオブジェクトを頻繁に使用して新しいオブジェクトを作成するStringよりも、メモリ内の一時空間(buffer)を使用するStringBufferクラスの方が望ましい.
StringBuffer classは、文字列の一部を削除または変更したり、特定の場所に追加したりする際に必要な空間であり、作成時に常にメモリから実際の容量よりも16文字長い空間を割り当てます.
StringBufferはString classとは異なり、無差別のオブジェクトを生成せず、直接修正可能な可変特性を有する.したがって、頻繁な修正が必要な場合は、StringBuffer classの方が有利であることを覚えておいてください.
主な方法
Stringは本来よく使われるclassなので整理していませんが、StringBufferは主な方法だけを整理したいと思っています.
String str = "new";
str = str+" world";
String classは変更できない不変の特性ですが、StringBuffer classは内部で直接変更できるクラスです.メモリについては、変更されたオブジェクトを頻繁に使用して新しいオブジェクトを作成するStringよりも、メモリ内の一時空間(buffer)を使用するStringBufferクラスの方が望ましい.
StringBuffer classは、文字列の一部を削除または変更したり、特定の場所に追加したりする際に必要な空間であり、作成時に常にメモリから実際の容量よりも16文字長い空間を割り当てます.
StringBufferはString classとは異なり、無差別のオブジェクトを生成せず、直接修正可能な可変特性を有する.したがって、頻繁な修正が必要な場合は、StringBuffer classの方が有利であることを覚えておいてください.
主な方法
Stringは本来よく使われるclassなので整理していませんが、StringBufferは主な方法だけを整理したいと思っています.
SpringTokenizer
SpringTokenizerクラスは、文字列を分割する機能を提供するクラスです.
生成者
方法
このように見ると、私たちが主に使っているsplit方法と何の違いもありません.しかし、明らかに違いがある.コードと見なす
class StringTokenTest{
public static void main(String[] args){
String str = "a,b,c,,,d";
System.out.println("-----split-----");
String[] sp = str.split(",");
for(String s : sp){
System.out.println(s);
}
System.out.println("-----stringTokenizer-----");
StringTokenizer token = new StringTokenizer(str, ",");
while(token.hasMoreTokens()){
System.out.println(token.nextToken());
}
}
}
上のコードを実行次の結果を確認できます.この結果,splitは我々が定義した「,」によって文字列を区別し,スペースも文字と見なす.しかしStringTokenizerはスペースのほか、文字があるときだけ文字として扱われる.この2つの中でもStringTokenizerの方が速いです正確な理由はわかりませんが、どちらかというと状況に応じてよく使った方がいいですね.
Reference
この問題について(String), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/Stringテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol