黑马程序员技术交流社区

标题: 竟关于char的问题 [打印本页]

作者: 闫玉泉    时间: 2012-1-7 23:14
标题: 竟关于char的问题
本帖最后由 闫玉泉 于 2012-1-7 23:15 编辑

我今天用char竟然存了一个汉字,为什么?
作者: 林晓波    时间: 2012-1-7 23:18
java  char就占两个字节啊  一个汉字不也是占两个字节  所以可以呗
作者: zl918    时间: 2012-1-7 23:22
java中char使用UTF-16编码, char占两字节,所以可以放汉字。
作者: 郝亚平    时间: 2012-1-8 10:03
Java不是C语言。所以。
作者: 胡威    时间: 2012-1-8 10:05
你应该是学过C或C++的吧,java中的char与C或C++中的char不同,在C/C++中,char是8位字符类型,用来存储ASCII标准字符集,而ASCII中自然是没有汉字的。而java中是使用Unicode来表示,Unicode定义了一个完全国际化的字符集,可以表示人类语言中发现的所有字符,比如拉丁文,希腊文,阿拉伯语,日文片假名,汉字等等,固然就需要更多位来表示这么多字符,所以java中char是16位类型,而英语法语,德语,西班牙语这样的语言的字符很容易包含在8位之内,所以虽然使用Unicode有点大材小用,但也是全球可移植性必须付出的代价。既然java中char是2个字节,所以你存入一个汉字是完全可以的。
作者: 代臣    时间: 2012-1-8 10:23
char:char属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为'u0000'。
一个汉字是两个字节,在java中当然就能用char类型变量存入一个汉字。
作者: 小白    时间: 2012-1-9 09:46
JAVA默认的编码是UNICODE,可以存储1个中文
作者: 朱泽宇    时间: 2012-1-9 11:20
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。
不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。
补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2