java里char类型占用多少个字节?
是不是用的unicode码?
unicode不是两个字节吗?
而且unicode很早就用完了,又进行了扩展?
扩展之后char类型怎么处理的?java中的标识符能不能出现所有的unicode码?
变量名好像不行,但函数名却可以用汉字,这是为什么?

解决方案 »

  1.   

    代码点在U+0000到U+FFFF之间的就用\u0000到\uffff表示
    U+10000到U+1FFFF之间的用 \ud800到\udbff中的作为第一个单元, 用\udc00到\udfff作为第二单元,组合起来表示char这个概念就是指\u0000到\uffff,这是占两个字节
    其余的用code point这个概念可能作为java表示符的字符用isJavaIdentifierStart和isJavaIdentifierPart确认
      

  2.   

    JDK 1.5 以上支持 Unicode 4.0,也就是 Unicode 的范围是 U+0000~U+10FFFF,
    超过 U+FFFF 的字符采用代码点(也就是 int 类型的数据)来表示,具体的可以
    参考一下下面这个链接的文章《Java 平台中的增补字符》,对此作了很详细的介
    绍。http://gceclub.sun.com.cn/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html
      

  3.   

    java的char是utf-16的
    官方说法是不建议使用char类型