黑马程序员技术交流社区
标题:
一个常量易错题
[打印本页]
作者:
288555
时间:
2016-3-6 09:02
标题:
一个常量易错题
char a = 2 + '2';
System.out.println(a);
这个是考的常量优化,所以这个代码编译是能通过的,很容易做错
*
A:什么是常量
*
在程序执行的过程中其值不可以发生改变
*
B:Java中常量的分类
*
字面值常量
*
自定义常量(面向对象部分讲)
*
C:字面值常量的分类
*
字符串常量 用双引号括起来的内容
*
整数常量 所有整数
*
小数常量 所有小数
*
字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
*
布尔常量 较为特殊,只有true和false
*
空常量 null(数组部分讲解)
作者:
执剑人
时间:
2016-3-6 09:49
这个a最后变成什么值了?感觉编译会出错,有没有大神出来解释一下!
作者:
miaodian
时间:
2016-3-7 23:38
厉害啊,细心啊
作者:
Wacky
时间:
2016-3-7 23:51
本帖最后由 Wacky 于 2016-3-7 23:52 编辑
编译结果是4
我还是不太理解.....又仔细想了一下 懂了
52对应的char就是4
作者:
278008379
时间:
2016-3-8 00:19
当然是字符型了,这个题默认加了强转,打印结果好像是52
作者:
猜猜我是谁
时间:
2016-3-9 20:00
执剑人 发表于 2016-3-6 09:49
这个a最后变成什么值了?感觉编译会出错,有没有大神出来解释一下!
这段运算运行时进行的是ASC2码值的运算,字符‘2’对应的码值为50,50加2得到‘4’的码值,赋值给左边,由于是char格式,所以输出为字符‘4’
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2