byte[] buffer = new byte[s.length()*2];
每个字符编码时占用2个字节,因此buffer的大小为字符串长度的两倍。if(s.charAt(i) >= 0x100){  //???0x100这句话是什么意思?如果字符对应的16进制数为>=0x100,表示高位字节不为零,则将此字符拆为字节数组,合并到buffer中;如果字符对应的16进制数为<0x100,则此字符高位字节为零(可能为ascii字符),将此字符直接转换为一个字节,合并到buffer中(unicode中的utf-8编码对ascii使用一个字节编码)。