`
pantao20
  • 浏览: 3664 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

测试一下

阅读更多
1、What   results   from   attempting   to   compile   and   run   the   following   code? 

public   class   Ternary{ 
  public   static   void   main(String   args[]){ 
    int   a   =   5; 
    System.out.println("Value   is   -   "   +   ((a   <   5)   ?   9.9   :   9)); 
  } 
}
A Value   is   -9
B Value   is   -5
C Compilation   error
D None   of   these

2、下面关于Set里删除对象运行结果为
import java.util.*;

public class Test {
  public static void main(String args[]) {
    Set<Short> s = new HashSet<Short>();
    for (Short i = 0; i < 100; i++) {
      s.add(i);
      s.remove(i - 1);
    }
    System.out.println(s.size());
  }
}
A 1
B 100
C Throws Exception
D None of the Above

3、下列关于List的程序运行结果为?
import java.util.*;

public class Test {
  public static void main(String args[]) {
    List<Short> s = new LinkedList<Short>();
    for (Short i = 0; i < 100; i++) {
      s.add(i);
      s.remove(i - 1);
    }
    System.out.println(s.size());
  }
}
A 1
B 100
C Throws Exception
D None of the Above



4、下面关于抽象类集成的代码编译运行结果为?
abstract class AbstractOne {
  abstract int getInt();
}
class ATest extends AbstractOne {
  private int x = 1;
  private int getInt() {
    return x;
  }
}
A 编译成功
B 编译成功,但会导致运行时错误
C 编译无法通过,第2行有错
D 编译无法通过,第6行出错






答案:D    B     C    D

1、D  
应该输出 Value   is   -9.0
((a   <   5)   ?   9.9   :   9) 这里因为前面的 9.9是 double类型的,所以后面的9也会被转换为double类型的进行输出

2、B 
分析:
1 Set的remove调用的是删除一个对象remove(Object)
2 Short 和 Integer 进行比较时,是肯定不等的,虽然他们的数值相等。
因为在equals时,先判断对象类型instanceof,他们类型不同,自然不等。

boolean remove(Object o)
如果 set 中存在指定的元素,则将其移除(可选操作)。更确切地讲,如果此 set 中包含满足 (o==null ? e==null : o.equals(e)) 的元素 e,则移除它。如果此 set 包含指定的元素(或者此 set 由于调用而发生更改),则返回 true(一旦调用返回,则此 set 不再包含指定的元素)。

指定者:
接口 Collection <E> 中的 remove
参数:
o - 从 set 中移除的对象(如果存在)
返回:
如果此 set 包含指定的对象,则返回 true
抛出:
ClassCastException - 如果指定元素的类型与此 set 不兼容(可选)
NullPointerException - 如果指定的元素为 null,并且此 set 不允许 null 元素(可选)
UnsupportedOperationException - 如果此 set 不支持 remove 操作


remove的参数是Object,而lz的程序里写的是int值,所以没有删除掉。

3、C
java.lang.IndexOutOfBoundsException: Index: -1, Size: 1

因为 List.remove(int) 是删除指定索引位置的对象,而0-1 = -1 是不合法的索引位置

4、抽象类的实现类,如果实现了某个抽象方法,不能减少原方法的可见范围。
也就是不能使用private实现
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics