Java 将参数变量从int转换为char,反之亦然
如果我在调用stuff时传递一个char作为参数,它会编译吗?传递int而不是char也有效吗?我知道可以从int转换为char,但它不应该是显式的吗 我有一个类测试,其中有一个返回类型为String的静态方法,参数为char a和intxJava 将参数变量从int转换为char,反之亦然,java,parameters,casting,char,int,Java,Parameters,Casting,Char,Int,如果我在调用stuff时传递一个char作为参数,它会编译吗?传递int而不是char也有效吗?我知道可以从int转换为char,但它不应该是显式的吗 我有一个类测试,其中有一个返回类型为String的静态方法,参数为char a和intx public class Test { public static String stuff(char a, int x) { char b = (char)x; String s = ""; while (a
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'));
}
}
公共类测试{
公共静态字符串内容(字符a、整数x)
{
字符b=(字符)x;字符串s=“”;
while(a是)传递字符是合法的,但不是良好的做法。向上投射(隐式)——
字节–>短–>整数–>长–>浮点–>双精度
下浇铸(显式)-
双精度–>浮点–>长–>整数–>短–>字节
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");
}
}
char最多可占用255个字符,是的,它将进行编译。为什么您可以将char作为int传递?传递“d”而不是int。因为char最多可支持255个字符,超过该值它将不支持,编译器将抱怨精度损失为什么不要求您显式强制转换它