黑马程序员技术交流社区
标题:
Integer等对象的一些问题,理解的请指教,不理解的同样可....
[打印本页]
作者:
静心远行
时间:
2013-12-26 21:48
标题:
Integer等对象的一些问题,理解的请指教,不理解的同样可....
本帖最后由 静心远行 于 2013-12-27 12:50 编辑
代码:
public class test5 {
public static void main(String args[])
{
Integer i1 = new Integer('A');
Integer i2 = new Integer("7");
Integer i3 = new Integer("0x10");
Character c = new Character('A');
Boolean b = new Boolean(null);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3); //运行出错
System.out.println(c);
System.out.println(b);
}
}
复制代码
这些对象中只有i3在执行时出错,是不是说明java语言完全不认十六进制?
boolean这个类实例化时是怎么样的,它是怎么实例化的,它实例化时除了可以使null这个参数还能是哪些参数呢?
作者:
高亮亮
时间:
2013-12-26 22:11
你i3那项里面的"0x10"是当作了一个字符串传,对应走了Integer类里面的Integer(String s)的构造,所以是当作了字符串,"0x10"里面x是字母,不是数字型的字符,所以肯定会报错,应该是数字字符格式异常吧.这跟16进制没关系,因为他构造只有两种,一种放int型数据,一种放String型(数字字符组成)字符串.
而你上面之所以'A'可以,是因为'A'可以看作是int的引用,给了char的对象.多态的思想.
至于那个Boolean b=new Boolean(null);他构造Boolean(String s)里说的明明白白,就是传进去的是null的话,就分配一个false的Boolean对象,不是的话只要是true,忽略大小写,都是返回一个true的Boolean对象.
作者:
(0.0)’
时间:
2013-12-26 22:15
Integer(String s)
构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。使用与 parseInt 方法(对基数为 10 的值)相同的方式将该字符串转换成 int 值。
查看API就会得出为什么会出异常了。
作者:
静心远行
时间:
2013-12-27 12:50
高亮亮 发表于 2013-12-26 22:11
你i3那项里面的"0x10"是当作了一个字符串传,对应走了Integer类里面的Integer(String s)的构造,所以是当作了 ...
谢谢,受教了~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2