Stringノット

1540 ワード

一.Stringクラスは比較的重要なクラスであり、ネットワーク上の多くのデータは文字列の形式で処理され、その構造関数は多く、他のタイプの配列を構造パラメータとして許可し、他のタイプのデータとの変換を容易にすることができる.
例:
String(byte[]bytes):プラットフォームのデフォルト文字セットを使用して指定したbyte配列を復号することで、新しいStringを構築します.
String(byte[]bytes):プラットフォームのデフォルト文字セットを使用して指定したbyte配列を復号することで、新しいStringを構築します.
二.文字列に対するいくつかの処理
文字列の処理も便利で、呼び出し方法によってその位置付け、検索、切り取り、変換、比較、置換などの操作を完成することができます.ここでは例を挙げません.APIには文字列の方法がたくさんあります.
三.特に注意:
まず次のプログラムを見てください.
public class test {

      public static void main(String[] args) { 

           String str  = new String("");

           String dtr1 = "";

           boolean b = str=="";

           boolean b1 = str.equals(dtr1);

           

           System.out.println(b);

           System.out.println(b1);  

      }

}

以上のプログラムの出力結果は次のとおりです.
false,true
通常の思考では2つのtrueが正しいはずですが、実際によく分析すると、中の違いを発見するのは難しくありません.まず、Stringは8つの基本データ型に属していないクラスであり、特殊な処理を受けたクラスであり、一般的なクラスはオブジェクトを作成するにはnewが必要ですが、Stringクラスではそうではありません.newもnewもなくてもいいです.JVMにはnewがないときに特別な「部屋」である定数プールが用意されており、データが格納されているときは集合フレームワークのSetによく似ており、重複は許されません.上に変数、str=」があれば、2等号で比較するとtrueであることがわかります.これは、同じアドレスを占有していることを示しています.少し話が遠いですが、今から上のプログラムについてお話ししますと、8種類の基本データ型の場合、上のプログラムの結果は2つのtrueに違いありませんが、クラスタイプについては「==」号の場合、データ識別はアドレスによって行われ、equalsは2つのクラスの具体的なデータについて話されているので、以上のプログラムの結果は明らかです.