String,StringBuilder,StringBuffer

*

1,String,字符串常量,不可变

StringBuffer:可以变,支持多线程,

StringBuilder:可以变,在大多数单线程情况下,更倾向于用StringBuilder,更快

import java.io.UnsupportedEncodingException;
public class TestStr{
    public static void main(String[] args){
        String str="abc深圳";
        System.out.println(str.length());//5
        try{
            System.out.println("abc深圳-ISO8859-1:"+"abc深圳".getBytes("ISO8859-1").length);//5
            System.out.println("abc深圳-GB2312:"+"abc深圳".getBytes("GB2312").length);//7
            System.out.println("abc深圳-GBK:"+"abc深圳".getBytes("GBK").length);//7
            System.out.println("abc深圳-UTF-8:"+"abc深圳".getBytes("UTF-8").length);//9
            byte[] bs="abc深圳".getBytes("GB2312");
            for(byte temp:bs){
                System.out.println(temp);
            }
        }catch(UnsupportedEncodingException e){
            
        }
        
        
    }
}

总结各个编码下的汉字字节数:

ISO8859-1:1个汉字占1个字节

GB2312,GBK:1个汉字/2个字节

UTH-8:1个汉字/3个字节

*

有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


原文地址:https://www.cnblogs.com/qingmaple/p/4471161.html