错错错~错题

final

关于final的说法正确的是(ABC)

A.
final修饰类,类不能被继承, String就是finalB.
final修饰的方法,不能被重写,但是可以重载
C.
final不能修饰抽象类,抽象类是用来继承的
D.
final一般修饰静态变量,静态变量不会发生变化
  1. final修饰变量,则等同于常量

  2. final修饰方法,则方法不能被重写,可以被重载。

  3. final修饰类,则类不能被继承

  4. final不能用于接口中,接口的唯一目标是让类实现它们,并且由于接口中的方法不能有任何实现,所以使它们成为最终的没有意义:它们将没有实现,并且不能被重写

  5. final 不能修饰抽象类,因为抽象类就是用来继承的,类似接口

  6. final不修饰静态变量,因为static本就是全局共享,经过final修饰后变成常量,不可修改了

  1. final修饰的变量表示赋值之后不能再进行更改,系统赋默认值也算赋值,因此系统也不会赋默认值。

  2. 如果不在定义的时候或者构造函数中对final变量进行赋值的话,则生成的对象中final变量的值是未知的(编译器也会直接报错),因此必须进行初始化。

  3. 如果用static final同时修饰变量的话,则变量必须在定义的时候进行初始化。因为static变量属于类,在调用构造函数之前就已经被系统赋予默认值了。

  4. 如果不在定义的时候初始化,那么既无法在构造函数中初始化,系统也不会赋默认值。则该变量被定义出来是毫无意义的。

集合

[单选]
在一个数据集合中,经常需要做数据查找的操作(不考虑线程安全),请问使用哪个数据结构最合适:


HashTable

LinkedList

**HashMap**

ConcurrentHashMap

Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。

以下哪种数据结构的内存是连续的:


map

set

**vector**

list

vector内存连续

Collection是java.util下的接口,它是各种集合结构的父接口;
Collections是java.util下的类,它包含有各种有关集合操作的静态方法

关于HashSetTreeSet的描述不正确的是(  )



**二者都实现了Set接口,元素无序不可重复**

HashSet是由一个hash表来实现的,元素无序

TreeSet是由一个树形的结构实现的,元素有序

加入TreeSet中的元素需实现比较器规则

TreeSet是由一个树形的结构实现的,其中的元素并不像其它Set实现一样无序,相反它是有序的。

空指针equals空指针异常

有下面代码

import java.util.*;
class Student {
       int age;
       String name;
       public Student(){}
       public Student(String name, int age){
              this.name = name;
              this.age = age;
       }
       public int hashCode(){
              return name.hashCode() + age;
       }
       public boolean equals(Object o){
              if (o == null) 
                     return false;
              if (o == this) 
                     return true;
              if (o.getClass() != this.getClass()) 
                     return false;
              Student stu = (Student) o;
              if (stu.name.equals(name) && stu.age == age) **加粗样式**
                     return true;
              else 
                     return false;
       }
}
public class TestHashSet{
       public static void main(String args[]){
              Set set = new HashSet();
              Student stu1 = new Student();  
              Student stu2 = new Student("Tom", 18);
              Student stu3 = new Student("Tom", 18);
              set.add(stu1);
              set.add(stu2);
              set.add(stu3);
              System.out.println(set.size());
       }
}
下列说法正确的是(   D0分 错误
A.
编译运行都正确,输出结果为3
B.
编译运行都正确,输出结果为2
C.
编译错误
D.
编译正确,运行时异常

在执行equals方法时,引用equals方法的对象不能为空

map

以下Java代码的运行结果为

Map<String,String>dogs = new HashMap<String,String>();
dogs.put(“dog1”,”丢丢”);
dogs.put(“dog2”,”皮皮”);
dogs.put(“dog3”,”豆豆”);
dogs.put(“dog2”,”花花”);
Set<String>keys=dogs.keySet();
for(String key:keys){
System.out.print(key+””);
}
0分 错误
A.
正常运行,但是什么也不输出
B.
编译错误
C.
输出:dog1 dog2 dog3 dog2
D.
输出:dog1 dog3 dog2   √

map集合中key不可以重复。后面相同的key会覆盖前面的key

try catch finally不可达问题

有如下代码

public class TestTryAndTry {
       public static void main(String args[]){
              System.out.println(ma());
       }
       public static int ma(){
              try{
                     return 100;
              }finally{
                     try{
                            return 200;
                     }finally{
                            return 500;
                     }
                     return 1000;//不可达
              }
       }
}

选择正确答案(  )



0分 错误
A.
输出200
B.
输出500
C.
编译错误    √
D.
输出100

#IO

下面哪个流类属于面向字符的输出流()

0分 错误
A.
ObjectInputStream
B.
InputStreamReader
C.
BufferedWriterD.
FileOutputStream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

( ̄o ̄) =>(= ̄ ρ ̄=)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值