日期:2014-05-20  浏览次数:20724 次

java中char类型问题
工作一段时间后,返回来看java基础教程。却遇到了个问题。没有详细深入了解,贴出来大家讨论下。
    基本数据类型中,char都知道,占有的字节为1。表示范围为:0——255。
    上面的知识相信很多人都知道的。
    下面是我写的简单测试代码:

public class test{
public static void main(String args[]){
char ch1= '我';
int ch2=ch1;
System.out.println("ch1 = "+ch1);
System.out.println("ch2 = "+ch2);
}
}

输出的结果为:
C:\>java test
ch1 = 我
ch2 = 25105
    请问这个是怎么回事呢?

------解决方案--------------------
引用 我是楼主的引用
  基本数据类型中,char都知道,占有的字节为1。表示范围为:0——255。



引用 我是...你懂得的
char是无符号整数型,占16位也就是两个字节,一个字。表示范围:0-65535, '\u0000'-\uffff''





char ch1= '我';
int ch2=ch1;

System.out.println("ch1 = "+ch1);  //ch1是char类型,这句调用的是
    PrintStream:
    public void print(char c) {
        write(String.valueOf(c));
    }
    String:
    public static String valueOf(char c) {
char data[] = {c};
return new String(0, 1, data); // char c所表示的unitcod字符
    }

System.out.println("ch2 = "+ch2);  //ch2是int类型,这句调用的是
    PrintStream:
    public void print(int i) {
        write(String.valueOf(i));
    }
    String:
    public static String valueOf(int i) {
        return Integer.toString(i, 10); //10进制的整数。
    }


看源码一切就明了了,不知楼主明了了么?