这是我在开始的时候常犯的一种错误,当时我还查过资料,以为是精度的问题。
这些类型按精度从低到高的排序为:
byte丶char丶short --> int --> long --> float -->double
我一开始学完类型转化之后,感觉挺简单的,然后一敲代码就出错,下面是我出错的代码:
package frist;
public class second{
public static void main(String[] args) {
char c ='a';
int d = 98;
char t=char(d);
int z=int(c);
System.out.println(t);
}
}
上面代码看起来好像没有问题,运行之后报了下面的错误
大概的意思就是不能够从int型转化为char型,所以我就很困惑,去百度搜,也没有什么实质性的收获,然后我就用c语言运行了一把,截图如下
结果让我更加疑惑了,这个代码在c语言中可以运行,但在java中就报错
最后一个细节:强制转化的()到底放在哪里,代码如下
package frist;
public class second{
public static void main(String[] args) {
char c ='a';
int d = 98;
char t=(char)d;
int z=(int)c;
System.out.println(t);
}
}
运行结果正确,一个细节问题,c语言中的运行是碰巧,强制转化的括号应该包含着类型,打了多年的代码,开始学习新的语言,把基础的东西都忘了。
希望大家能够多复习自己所学的知识,温故而知新。