字节byte,字符char,字符串String三者的转化和比较

package com.web;
public class Test40 {
    
    
    public static void main(String[] args) {
    
    
        String str = "abc";
        //字符构成字符串
        char[] chars = {
    
    'a','b',99};//99相当于c
        String str2 = new String(chars);
        //内存开辟新空间,虽然str和str3的值一样,但地址不一样
        String str3 = "abc";
        System.out.println("str2 = " + str2);
        //字节构成字符串
        byte[] bytes = {
    
    97,98,99};
        String str4 = new String(bytes);
        System.out.println("str4 = " + str4);
        //字符串转化为字节
        byte[] bytes1 = "abc".getBytes();
        for (int i = 0; i < bytes1.length; i++) {
    
    
            System.out.println("bytes1["+i+"] = "+bytes1[i]);
        }
        //字符比较
        System.out.println(str==str2);//false,开辟了新的内存空间,地址不同,==比较的是地址
        //字符串比较
        System.out.println(str==str3);//true// 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
        //字节比较
        System.out.println(str==str4);//false
        //字符比较
        System.out.println(str.equals(str2));//true equals只是比较了值是否相等
        //字符串比较
        System.out.println(str.equals(str3));//true
        //字节比较
        System.out.println(str.equals(str4));//true
    }
}

おすすめ

転載: blog.csdn.net/djydjy3333/article/details/121512247