令人慧解的信息技术大赛的java试题2,求详细解答!
1.编译和运行下面代码时显示结果是( )
public class Conv{
public static void main(String argv[]){
Conv c=new Conv();
String s=new String("ello");
c.amethod(s);
}
public void amethod(String s){
char c='H';
c+=s;
System.out.println(c);
}
}
A、Hello
B、ello
C、elloH
D、编译错误
解答:D PS:+号运算符不是可以把字符串和字符串或其它类型的变量连接起来吗?
2.、下列关于修饰符混用的说法错误的是( )。
A、abstract不能与final并列修饰同一个类
B、abstract类中不可以有private的成员
C、abstract方法必须在abstract类中
D、staic方法中能处理非static的属性
解答:D PS:我测试了一下abstract 类是可以有private 成员的?
3.根据下面代码定义:
Integer i = new Integer (42);
Long 1 = new Long (42);
Double d = new Double (42.0);
下列表达式结果为真的有( )。
A、(i ==1)
B、(i == d)
C、(d == 1)
D、(i.equals (d))
E、(d.equals (i))
F、(i.equals (42))
解答:D,E PS:DE咋就对了呢,感觉只F正确?
4.下列选项中,能有效地描述浮点数的有( )。
A. Float foo = -1;
B. Float foo = 1.0;
C. Float foo = 42e1;
D. Float foo = 2.02f;
E. Float foo = 3.03d;
F. Float foo = 0x0123;
解答:A, D, F PS:无语,我怎么感觉一个都不对啊,求解?
5.下列选项中,能有效声明一个字符的语句有( )。
A. Char ch = “a”;
B. Char ch = ‘\' ‘;
C. Char ch = ‘cafe';
D. Char ch = “cafe”;
E. Char ch = ‘\ucafe';
F. Char ch = ‘\u10100';
G. Char ch = (char) true;
解答:B,E PS:真心不了解unicode编码啊,F记不清为什么不对了。
6.创建一个类,来存储唯一的对象元素,元素不需要保持特定顺序,但是必须唯一。
最能满足这种要求的接口有( ) 。
A、Set
B、List
C、Map
D、Vector
E、HashSet
解答:A,E PS:HashSet不是接口啊,Map可不可以啊?
求各位大神们能给个详细的解答,小弟在此先谢了..
------解决方案--------------------3题 d和e都不对啊 我看了他们重写的equals方法 应该都返回false的啊 F是对的啊
------解决方案--------------------Map存储的是键值对,包含了key-value对,Map中key是必须唯一的,但是value可以重复。
java.util.HashSet类实现了java.util.Set接口。
------解决方案--------------------1.c+=s隐含一个强制转换语句,意为c = (string)(c+s);,而不能用String赋值给char型的变量c。
2.抽象类可以是终态的,故A正确。抽象类中有Private成员会导致子类无法正常继承其所有属性,故B正确。抽象类和一般类的区别在于抽象方法,抽象方法必须在抽象类中,故C正确。Static
3.==比较的是对象的内存地址,而equals方法比较对象的内容。所以ABC显然是错的,而DE是对的。对于F,因为42不是一个具体的对象,不能用equals方法比较。
4.解释下为什么BCE错吧。B没有说明符号,C语法不正确,E中不能用float类型的变量foo储存double型的值。
5.A中,char变量的值应使用''括起来而不是" "。B中使用转义字符赋值\给ch,正确。C中char型变量仅能储存一个字符。D中不能把字符串赋值给一个字符型变量。E中使用转义字符\u。F中的目的是使用二进制对ch赋值,但使用了' ',而单引号中应为一个字符的值,故错误。G中,boolean型不能强制转换为任何其他类型。
6.Map中无法做到元素唯一。
以上纯手打。仅供参考。
------解决方案--------------------