Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将参数变量从int转换为char,反之亦然_Java_Parameters_Casting_Char_Int - Fatal编程技术网

Java 将参数变量从int转换为char,反之亦然

Java 将参数变量从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

如果我在调用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<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个字符,超过该值它将不支持,编译器将抱怨精度损失为什么不要求您显式强制转换它