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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© emos-c 中级黑马   /  2013-6-21 14:47  /  1640 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 emos-c 于 2013-6-22 20:34 编辑

java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。整数默认int,小数默认double。
由于小数默认double类型,所以直接输入float f=2.0;会报错,提示可能会损失精度,可以float f=2.0f;,标识2.0为单精度。
我的问题是4属于整数,整数默认int型,byte b=4;和float f=2;却都不会报错,但是 byte b=4b;会报错,为什么呢?

  1. <P>
  2. int    a  =3; //编译通过
  3. byte   b  =4; //编译通过
  4. byte   b1 =4b;  //编译报错,提示看不懂,在b的位置上需要“ ;”
  5. short  s  =4 //编译通过
  6. short  s1 =4s;  //编译报错,提示同 byte b1=4b;
  7. float  f  =2.0f;//编译通过
  8. float  f1 =2.0; //编译报错,提示有可能损失精度
  9. float  f2 =2; //编译通过,打印结果2.0
  10. double d  =2.3; //编译通过
  11. double d1 =2.3d;//编译通过
  12. long   l  =4; //编译通过
  13. long   l1 =4l; //编译通过</P>
  14. <P> </P>
  15. <P>
  16. </P>
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
首先你的这个byte   b1 =4b;写法就是错误的,只是在定义浮点型的时候后面才有F或是D,而整数定义的时候后面是不需要加标识的,所以你这个定义会报错,因为java虚拟机不识别。
回复 使用道具 举报
byte   b1 =4b; short  s1 =4s;  直接写byte   b1 =4; short  s1 =4; 不要加b ,s 做后缀

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
不是这样写的了byte b=4b;
应该这样写 byte b=4;不需要再4后面加b.
只有float f = 12.3f;和long l =2222222L;后面加相应的字母

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
嗯 不需要加的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马