A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看到Java基础系列笔记的一个程序:
class VarDemo
{  
        public static void main(String[] args){
                System.out.println('a'+1);
                System.out.println('你'+1);
}
为什么里面的+1不加引号??
}

2 个回复

倒序浏览
是这样的,首先解释下,字符在计算机中存储的是编码,比如a的ascII编码是97,而'1'注意是字符'1',的ASCII编码是1,ASCII是从0~255来存放基本的字符的。不包括汉字和其他国家的字符。包含各国字符的交Unicode。扯远了。

'a'+1 这是一个表达式,这个和运算符的性质有关,如果表达式这么写那么结果完全不同,"a" + 1  那么结果就是a1了。'a'+1这个表达式做运算的时候,先把'a'强制类型转换成int然后再加1.当然在C++中完全可以重载这个+号,但是java不支持运算符重载。这个是java语言设计的时候就定义好的,就是这么个运算顺序。

就是字符相加,先转换成相应的ASCII码,然后把ASCII相加。。。
回复 使用道具 举报
嗯,我知道的Java语言本身就只有一个地方对+ 进行了重载,就是String类型,的+;
其余的都是在做基本的算术运算。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马