java中char问题?

来源:百度知道 编辑:UC知道 时间:2024/09/24 04:03:30
java中的char类型,有的书上说:
char numChar=4; //是非法的语句。
但这个语句执行时,并没报错。到底怎么回事?
它和
char numChar='4'; //一样吗?
我问老师了:
char numChar=4;
//非法的是jdk1.4版本的说法,以上的就没事了。

char numChar=4;//有的书说非法,是因为4是int型的,不允许拿int型给char赋值,但也不是一定有错,在这里4代表某个字符的ASCII码值,所以这个语句在执行时不会报错。

char numChar='4';合法,'4'是一个字符
若有
System.out.println(numChar);则会输出4,而上面的会输出一个其他的字符

char numChar=4

其实副给 numChar 里的 字符不是4,而是 4对应的 ANSI 字符集中对应的字符!

比如 char numChar=97

那么 numChar 就是小写 a!

int a,a为int类型的变量
char a,a为char类型的
int 范围比char大 大的范围可以作用小的范围 比如说double比int的范围大
你可以定义int a = 4; //范围小
也可以定义:double a=4; //范围大
所以 你定义 char a = 4;
自然也可以定义int a=4;

举例说明:
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