20201223-韩德云

2020.12.23日志

日志

字符序列和字节序列

基本描述:

字符序列:char sequence

char数组就是有序排列的字符序列,

char[] chars  = {云,创,动,力};

字节序列:byte sequence

byte数组就是有序排列的字节序列.

byte[] bytes = {22,3,4,5,65};

字符序列和字节序列可以通过字符编码相互转换.

常用的字符编码:

  1. GBK:中文简体(采用两个字节)

  2. UTF-8:长度可变的字符编码(使用1-4字节存储字符)

  3. Big5:繁体中文

  4. ISO-8859-1:西欧(latin-1)

补充:

  1. String字面量就是一个字符序列.

  2. 接口类型的引用变量指向实现类型的对象

  3. 返回对象所引用的字符串形式: .toString();

    例:

    charsequence  han =  "汉";
    system.out,println(han.toString());
    
  4. 获得指定索引处的字符:

    char ch = han.charAt(3);//索引是3
    

    常用的charset方法:

    1. java.nio.charset.Charset类的实例表示字符编码

    2. Charset.defautCharset() :返回Jvm默认的charset实例

      Charset ct = Charset.defaultChartset();
      
    3. Charset.forName( String charsetName ) :返回指定名称的charset实例.

      Charset ct = Charset.forNameCharset("GBK");
      
    4. Charset.isSupported( String charsetName ) :判断当前的Jvm是否支持指定的字符编码

      charsetName = "GB3230";
      system.out.printin(Charset.isSupported(charname));
      

编码:(encode)

什么是编码:将字符序列(charsequence)转换为字节序列(byte)的过程就是编码(encode).

注意 : 将char sequence 转换为 byte sequence 时,必须使用字符集,若未定义设置,会使用平台默认字符集:Charset.defaultCharset().

解码:(decode)

​ 将字节序列(byte sequence)转换为字符序列(char sequence) 的过程就是解码(decode)

byte sequence 转换为char sequence 时,必须使用字符集,若未定义,使用平台默认的字符集.

转换实例:

byte[] bytes = source.getByte(UTF=8charset);

问题

  1. char数组{}里面是否能直接存放汉字?

    如:

    char[] chars  = {云,创,动,力};
    

    可以存放,因为汉字本身就是字符.而char就是字符序列.

吐槽

​ 基础太薄弱了,这几天讲的时候完全跟不上,上课的时候太容易走神,盯着屏幕不知不觉就短路了......

评论