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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄玉昆 黑马帝   /  2013-2-25 17:48  /  2338 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄玉昆 于 2013-2-26 13:08 编辑

今天在练习HashMap集合的时候,定义为Integer泛型类,结果却出现了过大整数的问题,可是这个数才两位,还没超过10呢,怎么就过大了呢?
有图却不知真相:
  1. class IntMDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //创建新集合,并添加元素
  6.                 Map<Integer,String> m = new HashMap<Integer,String>();
  7.                 m.put(7,"zann");
  8.                 m.put(09,"hewi");
  9.                 m.put(13,"wangfei");
  10.                 m.put(14,"huxi");
  11.                 m.put(10,"anch");
  12.                 System.out.println(m);
  13.         }
  14. }
复制代码
这是肿么情况,请知道的解答一下,谢谢
应该是没有09这个数值,所以,编译器才会报数值过的的错误。

过大整数.PNG (2.01 KB, 下载次数: 67)

过大整数.PNG

5 个回复

倒序浏览
09好像不是整数吧.. 好像是8进制数了....不知道对不对
回复 使用道具 举报
0开头的是八进制,八进制中没有9
回复 使用道具 举报
黑马刘杰 发表于 2013-2-25 18:14
0开头的是八进制,八进制中没有9

那这个09到底是不是数呢?
回复 使用道具 举报
黄玉昆 发表于 2013-2-25 18:16
那这个09到底是不是数呢?

不是,八进制中只有八个数,0~7
回复 使用道具 举报
在java里  09和9是有区别的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马