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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Boiled_Water   /  2014-6-5 08:29  /  13228 人查看  /  153 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

分析:
  a. byte b = 1 + 1;   
  正确,定义一个byte类型的变量,并进行初始化,初始化时系统会自动完成强制转换;
  b. byte b = 1; b = b + 1;
  错误,因为该条语句中的第二条语句中b = b+1表达式中的1是int类型的(java中的整数默认为int型),
  在进行计算的时候先将b的类型自动提升为int类型,然后再与1进行运算,最后得到一个int类型的结果,
  如果要将这个结果赋值给byte类型的变量b,那么必须进行强制类型转换,即:b = (byte)(b+1)
  c. byte b = 1; b = b += 1;
  正确,因为"+="运算符在执行的时候会自动进行强制类型转换,转换之后为byte类型,再将其赋值给byte类型                                           的变量b,是成立的
  d. byte b = 1; b = ++b;
  正确,"++"为自增运算符,++b之后的结果为int类型的,但是系统自动进行强制转换,所以是正确的
  
回复 使用道具 举报
看看·····
回复 使用道具 举报
只有C是对的
回复 使用道具 举报
我来学习来了
回复 使用道具 举报

同学要认真学习
回复 使用道具 举报
回复看看
回复 使用道具 举报
我怎么感觉a b c d 都对啊
回复 使用道具 举报
学习来了
回复 使用道具 举报
这个东西真的很绕人
回复 使用道具 举报
ddddddddddddddddddddddd
回复 使用道具 举报
比较乱 得仔细研究研究
回复 使用道具 举报
类型转换的问题
回复 使用道具 举报
支持一下
回复 使用道具 举报
看看..~~~
回复 使用道具 举报
你解释的很好,学习了!
回复 使用道具 举报
C是对的,D看不懂
回复 使用道具 举报
刚看到,正好过来测试一下自己!
回复 使用道具 举报
应给只有d
回复 使用道具 举报
围        观
回复 使用道具 举报
学习这个东西好像就要精益求精
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马