黑马程序员技术交流社区
标题: 求解一个选择题 [打印本页]
作者: cjmjava 时间: 2015-5-12 12:09
标题: 求解一个选择题
下列哪些代码可以顺利通过编译和运行? ( )为什么?
A.Integer i = new Integer('A');
B.Integer i = new Integer("7");
C.Character c = new Character("A");
D.Boolean b = new Boolean(null);
E.Integer i = new Integer("0x10");
作者: right 时间: 2015-5-12 12:40
B、C、D可以通过编译运行
不能编译运行的都跟数据类型不匹配有关系
作者: Troy-Fu 时间: 2015-5-12 13:21
B,D选型可以通过编译和运行
这里integer有个要求,它只接受数字类型的字符串或者int类型的数字,所以我总结的就是参数必须是数字,要么加双引号表示它是字符串,要么不加双引号,表示它是int类型数字
boolean传递的是false,则返回false,传递true,则返回false,若为null,也返回false
以上都是我的个人看发,希望可以帮到你
作者: 赵旗 时间: 2015-5-12 14:02
A, B,D 可以通过编译运行
A.Integer i = new Integer('A');
这里边的字符'A'会默认的转变为int类型
B.Integer i = new Integer("7");
这个也是正确的 通过查API 可以查到 构造参数 Integer(String s) s表示用字符串类型表示的数字 所以B可以通过编译
C.Character c = new Character("A");
Character 的构造函数Character(char value) 表示他的参数只能是char类型所以 错误
D.Boolean b = new Boolean(null);
Boolean类的构造函数为Boolean(String s) 字符串也可以为空 所以正确,并当字符串为空时 Boolean的值为false
E.Integer i = new Integer("0x10");
作者: 1017161726 时间: 2015-5-12 14:05
这问题好。A中给的字符可以转成int,B中给的字符串可以转成int,C中必须传字符,D中传的只要不是true或者"true"结果就是false,E中传的字符串编译可以通过但是执行时无法解析。
作者: 赵旗 时间: 2015-5-12 14:11
编译能通过但是 执行的时候会报错的 提示值类型转换错误
作者: cjmjava 时间: 2015-5-12 16:54
好详细,大神级人物啊
作者: cjmjava 时间: 2015-5-12 16:59
O(∩_∩)O谢谢
作者: Troy-Fu 时间: 2015-5-12 20:21
不客气,我也学习了
作者: qq403651692 时间: 2015-5-12 21:05
大神真多阿
作者: csu050416 时间: 2015-5-12 21:06
很详细的解答。
作者: brouse 时间: 2015-5-12 21:12
这些数据类型除boolean外,都知道,果然还有很长的路要走
作者: 唐泉银 时间: 2015-5-12 21:14
貌似都有问题
作者: 19期1910 时间: 2015-5-12 21:38
本帖最后由 19期1910 于 2015-5-12 21:39 编辑
学习一下,刚好这几天学到API
作者: 陈明佳 时间: 2015-5-12 21:47
只知道AB能通过
作者: 我爱吃橙子 时间: 2015-5-12 22:01
学习了 第一次知道D中的boolean传null也返回false
仔细想了想 默认不赋值不就是false吗!!
作者: 代码搬运1号 时间: 2015-5-12 22:22
好题目 学到了
作者: yuanhnu 时间: 2015-5-12 22:40
C选项编译失败,其他都能编译通过,查看API即可
作者: 我干阿衰 时间: 2015-5-12 22:49
bd可以吧
作者: 高海峰186 时间: 2015-5-12 23:02
好多种答案,我也不会,明天找人问问
作者: 高海峰186 时间: 2015-5-12 23:03
好多种答案,我也不会,明天找人问问
作者: 嘉Ming 时间: 2015-5-12 23:15
学到东西了,谢谢各位大神
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |