如果我在调用东西时将char作为参数传递,它会编译吗?是否会传递一个int而不是一个char工作?我知道你可以从int转换为char但不应该是明确的吗?
我有一个类Test,其中一个返回类型为String的静态方法,其中char a和int x为参数。
public class Test {
public static String stuff(char a, int x)
{
char b = (char)x; String s = "";
while (a<b)
s+=a+b--;
return s;
}
public static void main(String args[])
{
System.out.println(stuff('a','d'));
}
}
答案 0 :(得分:0)
是的,传递一个字符是合法的,但不是好的做法。
答案 1 :(得分:0)
向上(隐式) -
字节 - &gt;短 - &gt; int - &gt;长 - &gt;浮动 - &gt;双
向下浇铸(显式) -
double - &gt;浮动 - &gt;长 - &gt;内部 - &GT;短期&GT;字节
int占用4个字节的内存,char占用2个字节的内存,因此需要显式转换。 int可以取负值,char只取正值。
public class Test {
public static void main(String args[]) {
int i = 78; // 4 bytes
// char ch = i; // error, 4 bytes to 2 bytes
char ch = (char) i; // int is type converted to char
System.out.println(ch); // prints N (78 ASCII value for N)
System.out.println("Max int:"+Integer.SIZE+"bit");
System.out.println("Max char:"+Character.SIZE+"bit");
}
}