public class p
{
public static void main(String[]args)
{
char g='k';
char j='l';
char b=j+g;
为什么这要转型呢?而
char v='l'+'k';
不需要呢
{
public static void main(String[]args)
{
char g='k';
char j='l';
char b=j+g;
为什么这要转型呢?而
char v='l'+'k';
不需要呢
char j='l';
char b=j+g; g、j是char类型 所以不用转 char v='l'+'k'; ‘l’是g, ‘k’相当于j 所以不用转 2种方式都没有转 只是char v='l'+'k'; 这种方式 或者char b=j+g; 超过char数据类型的最大长度后会强制转型
j是char类型 g是char类型 两者都咱有 char的内存空间 加起来就有可能是两个char的空间,所以不能
而char v='l'+'k'; 系统会把他们加起来 组成一个char类型赋值给V
char g='k';
char j='l';
char b=j+g;
char v='l'+'k'
'k','l'是char型,j和g也是char型,b=j+k;所以直接将j和gASCII码对应值加起来的值所对应的字符赋给b。而char v='l'+'k';同理,是将字符赋给v。不存在转型啊
而char v='l'+'k' 则是匹配l与k相加后的字符...
字符字面量可以直接相加,等同于数字相加。
class A{
public static void main(String args[]){
char a='k';
char b='l';
char c=(char)(a+b);
char d='k'+'l';
System.out.println(c);
System.out.println(d);
}
}