toString()とnew String()の使用法の違い

toString()とnew String()の使用法の違い

TestString.java

package com.atguigu;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;

/**
 * TestString
 *    toString 和 new String 原理和区别
 */
public class TestString {
    public static void main(String[] args) {
        // 表示密文
        String str="TU0jV0xBTiNVYys5bEdiUjZlNU45aHJ0bTdDQStBPT0jNjQ2NDY1Njk4IzM5OTkwMDAwMzAwMA==";
        // 使用base64进行解码
        String rlt1=new String(Base64.decode(str));
        // 使用base64进行解码
        String rlt2=Base64.decode(str).toString(
        );

        System.out.println("new String===" + rlt1);

        System.out.println("toString==" + rlt2);
    }
}



どちらが正しいですか?どうして?

Base64の暗号化と復号化はエンコード形式変換の原則であるため、ここでは新しいString()メソッドを使用する必要があります。

toString()とnew String()の使用法の違い

str.toStringは、このオブジェクトを呼び出したクラスのtoStringメソッドです。通常、このような文字列が返され ます:[クラス名] @ [hashCode]

new String(str)は、パラメータに基づくバイト配列であり、Java仮想マシンのデフォルトのエンコード形式を使用して、このバイト配列を対応する文字にデコードします。仮想マシンのデフォルトのエンコード形式がISO-8859-1の場合、バイトに対応する文字はASCIIエンコードテーブルに従って取得できます。

いつどのような方法を使用しますか?

new String()が一般的に文字トランスコーディングを使用する場合、byte []配列の場合

オブジェクトを印刷するときに使用されるtoString()

おすすめ

転載: blog.csdn.net/qq_39368007/article/details/114530115