java基础选择题(集合部分)

java选择题(集合,线程等)

1.ArrayList类的底层数据结构是( )

A、数组结构

B、链表结构

C、哈希表结构

D、红黑树结构

2.LinkedList类的特点是( )

A、查询快

B、增删快

C、元素不重复

D、元素自然排序

3.Vector类的特点是( )

A、线程同步

B、线程不同步

C、增删快

D、底层是链表结构

4.关于迭代器说法错误的是()

A、迭代器是取出集合元素的方式

B、迭代器的hasNext()方法返回值是布尔类型

C、List集合有特有迭代器

D、next()方法将返回集合中的上一个元素.

5.实现下列哪个接口,可以启用比较功能( )

A、Runnable接口

B、Iterator接口

C、Serializable接口

D、Comparator接口

6.给定下列代码:

public void test() {
try {
oneMethod();

System.out.println( “condition 1”);

} catch (ArrayIndexOutOfBoundsException e){
System.out.println(“condition 2”);

}catch(Exception e){
System.out.println(“condition 3”);

}finally{
System.out.println(“finally”);

}

}

oneMethod 正常运行, 将显示( )

A、condition 1和finally

B、condition 2和condition1

C、condition 3和finally

D、全部显示

7.下面代码运行的结果是( )

ArrayList al = newArrayList();

al.add(true);

al.add(123);

al.add(“abc”);

System.out.println(al);

A、编译失败

B、[true,123]

C、[true,123,abc];

D、[abc];

8.ArrayList和Vector的区别说法正确的是( )

A、ArrayList是线程安全的,Vector是线程不安全

B、ArrayList是线程不安全的,Vector是线程安全的

C、ArrayList底层是数组结构,Vector底层是链表结构

D、ArrayList底层是链表结构,Vector底层是数组结构

9.对于HashMap集合说法正确的是( )

A、底层是数组结构

B、底层是链表结构

C、可以存储null值和null键

D、不可以存储null值和null键

阅读以下代码:

public class X extends Thread implements Runnable{

public void run(){

System.out.println(“this is run()”);

}

public static void main(String args[]){

Thread t=new Thread(new X());

t.start();

}

}

下列说法正确的是()

A、第一行会产生编译错误

B、第六行会产生编译错误

C、第六行会产生运行错误

D、程序会运行和启动

10.下面类或者接口中,不属于集合体系的是( )

A、java.util.Collections

B、java.util.Map

C、java.util.Vector

D、java.util.Hashtable

如果在排序过程中,每次均将一个待排序的记录按关键字大小 加入到前面已经有序的中的适当位置,则该排序方法称为( )

A、插入排序

B、、归并排序

C、冒泡排序

D、堆排序

11.以下能以键_值对的方式存储对象的接口是( )

A、java.util.Collection

B、java.util.Map

C、java.util.HashMap

D、java.util.Set

12.在Java中,( )类可用于创建链表数据结构的对象。

A、LinkedList

B、ArrayList

C、Collection

D、HashMap

13.题示代码的功能为:对于一个存放Person对象的ArrayList进行循

环遍历。并输出每个Person对象的idCard和userName。 ( )

public class Person{
privateLong idCard;

              pirvateString userName;

              //以下是getter和setter方法

              //省略

}

List list=newArrayList<>();

Person p1=new Person();

p1.setIdCard(new Long(1001));

p1.setUserName(“terry”); Person p2=new Person();

p2.setIdCard(new Long(1002));

p2.setUserName(“tom”);

list.add(p1);

list.add(p2);

for( 位置① ){
System.out.println(person.getIdCard()+”:”+person.getUserName());

}

那么位置①处的代码为

A、Listlist:person

B、Listlist:Person

C、Personperson:List

D、Person person:list

14.将集合转成数组的方法是( )

A、asList()

B、toCharArray()

C、toArray()

D、copy()

15.使用TreeSet的无参构造创建集合对象存储元素时,该元素必须 ( )

A、实现Comparable接口

B、有main方法

C、有get和set方法

D、实现Serializable接口

16.在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列( )选项中的方法是LinkedList类有而ArrayList类没有的。

A、 add(Object o)

B、 add(int indexObject o)

C、 remove(Object o)

D、 removeLast()

17.在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( )。

A、 bookTypeList.add(“小说”);

B、 bookTypeList.get(“小说”);

C、 bookTypeList.contains(“小说”);

D、 bookTypeList.remove(“小说”);

18.下面关于Collection和 Collections的区别正确的是( )

A、Collections是集合顶层接口

B、Collection是针对Collections集合操作的工具类

C、List、Set、Map都继承自Collection接口

D、Collections是针对Collection集合操作的工具类

19.关于泛型的说法错误的是( )

A、泛型是JDK1.5出现的新特性

B、泛型是一种安全机制

C、使用泛型避免了强制类型转换

D、使用泛型必须进行强制类型转换

20.下列哪种不是List集合的遍历方式 ( )

A、Iterator迭代器实现

B、增强for循环实现

C、get()和size()方法结合实现

D、get()和length()方法结合实现

下面的程序创建了一个文件输出流对象,用来向文件txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。

import java.io.*;

public class Test {

public static void main(String args[]) {

try {

String s=”ABCDE”;

byte b[]=s.getBytes();

FileOutputStream file=newFileOutputStream(“test.txt”,true);

file.write(b);

file.close();

}catch(IOException e) {

System.out.println(e.toString());

}

}

}

A、ABCABC

B、ABCDE

C、Test

D、ABCDE ABCDE ABCDE

21.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。( )

A、8

B、16

C、32

D、64

22.关于HashMap集合说法正确的是( )

A、HashMap集合是单列集合

B、HashMap集合不允许存储重复键

C、HashMap集合不允许存储重复值

D、HashMap集合线程是安全的

  1. 下面有关JAVA异常类的描述,说法错误的是?

A:异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception

B:非RuntimeException一般是程序错误(或缺陷),其必须被 try-catch语句块所捕获

C:Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形,Error不需要捕捉

D:RuntimeException包括错误的类型转换、数组越界访问和试图访问空指针等等,必须被 try-catch语句块捕获

  1. 以下代码片段的的输出结果是:

try{
System.out.print(“try,”);

   return;

} catch(Exceptione){
System.out.print(“catch,”);

} finally {
System.out.print(“finally”);

}:

A:try,finally

B:try,

C: try, catch,finally

D:try,catch,

25.为实现多线程之间的通信,需要使用下列哪种流才合适?( )

A、Filter stream

B、File stream

C、Random accessstream

D、Piped stream

import java.io.File;

public class TestFile{
public static void main(String args[]){
File file = new File(“chp13/corejava.txt”);

}

}

请选择一个正确答案( )

A、txt 文件在系统中被创建

B、在windows 系统上运行出错,因为路径分隔符不正确

C、txt 文件在系统中没有被创建

D、如果txt 文件已存在,则抛出一个异常

27.关于JAVA泛型叙述不正确的是()

A、泛类参数只能是类类型不能是基本数据类型

B、泛型是java中的语法糖,只存在于编译期

C、List 在运行时等价于List

D、运行时泛型避免了类型转换错误

  1. 下面关于java.lang.Exception类的说法正确的是()

A:继承自Throwable

B:继承自Serializable

C:继承自Error

D:是异常体系的最终父类,只继承Object

  1. “先进后出”指的是下面哪种数据结构

A:队列

B:栈

C:单链表

D:循环队列

  1. 下面函数将返回?

public static int func (){
try{
return 1;

}catch(Exception e){
    return 2;

}finally{
    return 3;

}

}

A:1

B:2

C:3

D:编译错误

  1. 设一个栈的输入序列为1、2、3、4,则借助一个栈所得到的输出序列不可能的是( )

A:1,2,3,4

B:4,3,2,1

C:1,3,4,2

D:4,1,2,3

32.哪种Key-Value存储对象,既能保证线程的同步,又具有高效的并发性能()。

A、HashMap

B、Hashtable

C、Vector

D、ConcurrentHashMap

33.ArrayList l =new ArrayList(20) 扩充了几次( )。

A、0

B、1

C、2

D、3

34.下面都属于线程安全的类是( )。

A、ArrayList

B、Vector

C、HashMap

D、LinkedList

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

A:BufferedWriter

B:FileInputStream

C:ObjectInputStream

D:InputStreamReader

  1. 输入流将数据从文件、标准输入或其他外部输入设备中加载到内存,在 java 中其对应于抽象类()及其子类。

A:java.io.InputStream

B:java.io.OutputStream

C:java.os.InputStream

D:java.os.OutputStream

  1. 有如下需求:存储元素,保证元素在集合里没有重复,并且能够按照自然顺序进行访问,下列选项哪个接口能够满足该功能?

A:java.util.Map

B:java.util.Set

C:java.util.List

D:java.util.SortedSet

  1. 以下java程序代码,执行后的结果是()

java.util.HashMap map=new java.util.HashMap();

map.put(“name”,null);

map.put(“name”,“Jack”);

System.out.println(map.size());

A:0

B:null

C:1

D:2

  1. 关于java.Util.HashSet说法正确的是()

A:集合中的元素有序

B:集合被保证为不可变

C:集合中的元素保证唯一性

D:通过唯一的键访问集合中的元素

  1. N(N为需要排列的个数) 从1开始,每一轮从待排数列中选择第N小(或大)的数放到排序列表的第 N个位置。”这是描述下面哪一种排序算法?

A:冒泡排序

B:直接插入排序 :假设前面N-1个数有序,将第N个数插入到前面N-1个数中的合适的位置

C:选择排序

D:快速排序

  1. 欲构造ArrayList类的一个实例,此类继承了List接口,下列______是正确的?

A:ArrayListmyList=new object();

B:List myList=new ArrayList();

C:ArrayList myList=new List();

D:List myList=new List();

  1. 下列不是继承Collection接口的是()

A:List

B:Set

C:Map

D:Queue

  1. HashMap和HashTable的描述,错误的是?

A:他们都实现了Map接口。

B:HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。

C:HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

D:通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中

  1. java.io包的File类是()

A:字符流类

B:字节流类

C:对象流类

D:不属于上面三者

  1. 下列关于XML描述不正确的是

A:XML是eXtensible Markup Language的简写,即可扩展标记语言

B:XML主要用途是信息共享和应用配置

C:XML不能用来存储大批量的数据

D:XML一般不用来存储大批量的数据

47.下列关于注解说法错误的是( )。

A、注解使用@Interface定义。

B、默认情况下,注解可以修饰的元素包括类、方法、成员变量等。

C、使代码更加干净易读。

D、Java 注解和注释一模一样。

48.对Util.ArrayList描述正确的是()

A、集合被保证为不可变

B、集合中的元素可按索引访问

C、集合中的元素保证唯一性

D、通过唯一的键访问集合中的元素

  1. 获得Class类的方法不包括:

A: 使用Class类的forName()静态方法获得与字符串对应的Class对象,参数字符串必须是类或接口的全限定名

B: 调用Object类的getClass()方法来得到Class对象

C: 使用“类型名.class”获取该类型对应的Class对象

D: 使用“类型名.getClass()”获取该类型对应的Class对象

  1. 关于反射方法public T newInstance()说法准确的是:

A:创建此 Class 对象所表示的类的一个新实例。

B:返回此 Class 对象表示的类声明的所有构造方法。

C:返回此 Class 对象表示的类声明的公共构造方法。

D:创建此 Class 对象所表示的类的一个新的属性。

  1. 编写线程类,要继承的父类是

A:Object

B:Runnable

C:Thread

D:Serializable

E:Exception

52.以下哪个最准确描述synchronized关键字?

A. 允许两线程并行运行,而且互相通信;

B. 保证在某时刻只有一个线程可访问方法或对象;

C. 保证允许两个或更多处理同时开始和结束;

D. 保证两个或更多线程同时开始和结束。

53.下列哪一个类实现了线程组?()

A、java.lang.Objict

B、java.1ang.ThreadGroup

C、Java.1ang.Thread

D、java.1ang.Runnable

  1. java socket如何获取本地ip地址?

A:getInetAddress()

B:getLocalAddress()

C:getReuseAddress()

D:getLocalPort()

  1. 为了获取远程主机的文件内容,当创建URL对象后,需要使用哪个方法获取信息( )

A.getPort()

B.getHost

C.openStream()

D.openConnection()

  1. java程序中,使用TCP套接字编写服务端程序的套接字类是( )

A. Socket

B. ServerSocket

C. DatagramSocket

D.DatagramPacket

  1. ServerSocket的监听方法accept()的返回值类型是( )

A. void

B. Object

C. Socket

D. DatagramSocket

  1. ServerSocket的getInetAddress()的返回值类型是( )

A. Socket

B ServerSocket

C. InetAddress

D. URL

  1. 当使用客户端套接字Socket创建对象时,需要指定( )

A.服务器主机名称和端口

B、服务器端口和文件

C、服务器名称和文件

D.服务器地址和文件

60.使用流式。套接字编程时,为了向对方发送数据,则需要使用哪个方法( )

A. getInetAddress()

B. getLocalPort()

C. getOutputStream()

D. getInputStream()

二、多选题 (每题3分 * 5 = 15分)

1.Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是( )

     A.ArrayList和LinkedList均实现了List接口

     B.ArrayList的查询速度比LinkedList快

     C.添加和删除元素时,ArrayList的表现更佳

     D.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

2.下面关于HashMap和Hashtable的区别,说法正确的是( )

     A.Hashtable线程不安全,效率高      

     B.HashMap线程安全,效率低

     C.HashMap允许null键和值

     D.Hashtable不允许null键和值

3.关于HashMap集合说法正确的是( )

     A.HashMap集合是双列集合

     B.HashMap集合不允许存储重复键

     C.HashMap集合不允许存储重复值

     D.HashMap集合线程是安全的

4.List集合的遍历方式有如下哪几种 ( )

     A.Iterator迭代器实现 

     B.增强for循环实现

     C.get()和size()方法结合实现  

     D.get()和length()方法结合实现
  1. 下面集合中属于线程安全的类是( )

A.ArrayList B.Vector

C.HashMap D.Hashtable

6.有关线程的叙述()是对的

A、一旦一个线程被创建,它就立即开始运行。

B、使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

C、如果复用一个线程,可以调用再次调用start方法,使已经结束的线程复活。

D、join方法,可使当前线程阻塞,直到thread线程运行结束

7.下面哪些是实现线程同步的方式( )

A、Synchronized 关键字修饰方法

B、Synchronized修饰代码块

C、调用wait方法协调线程

D、调用notify方协调线程

8.HashSet去重复,在HashSet内部需要调用Object的哪些方法( )

A、hashCode方法。

B、toString方法。

C、clone方法

D、equals方法

9.以下关于File 类说法正确的是( )

A、一个File 对象代表了操作系统中的一个文件或者文件夹

B、可以使用File 对象创建和删除一个文件

C、可以使用File 对象创建和删除一个文件夹

D、当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除

10.HashMap和HashTable的描述,正确的是?

A、他们都实现了Map接口。

B、HashMap非线程安全,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供额外同步。

C、HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

D、通过contains方法可以判断一个对象是否存在于HashMap或者Hashtable中。

Guess you like

Origin blog.csdn.net/yyclassmvp/article/details/109854717