问答详情
源自:2-10 Java中的强制类型转换

为什么第一种不可以而第二种可以呢??

public class Helloworld{

    public static void main(String[] args){

        final char SEX1='男';

        final char SEX2='女';

        System.out.println(SEX1+SEX2);

    }

}


public class Helloworld{

    public static void main(String[] args){

        final char SEX1='男';

        final char SEX2='女';

        System.out.println(SEX1);

        System.out.println(SEX1);

    }

}


提问者:hedge_hog 2018-09-29 19:16

个回答

  • Darl_长洲芊绵
    2019-03-11 20:31:32

    char a=65;
    char b=66;
    int x=(int)'男';
    int y=(int)'女';
    char max= 30007+22899;
    
    System.out.println(a+b);
    System.out.println(x);
    System.out.println(y);
    System.out.println(a+b);
    System.out.println((char)(30007+22899));
    
    final char SEX1='男';
    final char SEX2='女';
    System.out.println(SEX1+SEX2);

    https://img3.mukewang.com/5c8653320001315508650521.jpg

    奇怪,我怎么可以运算的,试一下上面的代码。

    因为char里的字符是按照顺序排列的(Unicode码表,最大65535,输入 char max1=65536;会提示错误),直接运算时会根据所对应的数字来运算。

  • qq_大海神针_0
    2018-10-02 11:06:04

    加号只能是字符串和变量相连接,不能两个变量连接,只能这样让其连接System.out.println("SEX1="+SEX1+"SEX2="+SEX2);

  • L7丶
    2018-09-29 19:28:27

    两个char类型相加,自动转换成int型,变成了ASCII值相加