java基础选择题考试真题带答案

*单选题(*20道,每题1分)

  1. 单列集合的顶层接口是( B )

A. java.util.Map

B. java.util.Collection

//list与arrayList之间还有一层抽象类

C. java.util.List

D. java.util.Set

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

A. 数组结构

B. 链表结构

C. 哈希表结构

D. 红黑树结构

  1. LinkedList类的特点是( B )

A. 查询快

B. 增删快

C. 元素不重复

D. 元素自然排序

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

A. Runnable接口

B. Iterator接口

C. Serializable接口

D. Comparator接口

\5. 下面代码运行的结果是( A )

//java是伪泛型,编译后是没有泛型的

ArrayList al = new ArrayList();

al.add(true);

al.add(123);

al.add(“abc”);

System.out.println(al);

A. 编译失败

B. [true,123]

C. [true,123,abc];

D. [abc];

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

A. 底层是数组结构

B. 底层是链表结构

C. 可以存储null值和null键

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

  1. 下面程序的运行结果是什么( A )

public static void main(String[] args){

​ String s1 = “abc”;

​ String s2 = “xyz”;

show(s1,s2);

System.out.println(s1+”-----”+s2);

}

static void show(String s1,String s2){

//此时这个方法中的s1变量已经指向新的堆空间,

//字符串每次更改后都是重新创建新的字符串.

​ s1 = s2+s1+”Q”;

​ s2 = “W”+s1;

}

A. abc-----xyz

B. xyzabcQ-----xyzWabc

C. xyzabcQ---- xyzabcQWabc

D. xyzQ----Wabc

\8. 对字符串的说法正确的是( D )

A. 字符串是基本数据类型

B. 字符串值存储在栈内存中

//变量地址可以改变.但是堆内存的字符串内容不可变

C. 字符串值初始化后可以被改变

D. 字符串值一旦初始化就不会被改变

\9. 能切割字符串的方法是( C )

A. indexOf()

B. substring()

C. split()

D. trim()

\10. 下面程序运行的结果是( c )

String str = “abcdefg”;

//含头不含尾

str.substring(0,2);

System.out.println(str);

A. ab

B. abc

C. abcdefg

D. 出现下标越界异常

\11. 下面程序运行的结果是( D )

String str1= “1”, str2=”2”;

if(str1==str2)

System.out.println(“ABC”);

//引用类型可用==来比较引用类型的地址值.但不可以用< 或 >

else if(str1

System.out.println(“DEF”);

else

System.out.println(“GHJ”);

A. ABC

B. DEF

C. GHJ

D. 编译失败

\12. 下面代码运行的结果是( C )

Integer x = 3 ;

x = x + 3;

System.out.println(x);

A. 编译失败

B. x3

C. 6

D. Null

\13. 下面程序的运行结果是( D )

String s1 = “abc”;

String s2 = new String(“abc”);

System.out.println(s1==s2);

String s3 = “你好吗”;

String s4 =”你”;

String s5 =”好吗”;

//常量池的运算 这里的s3是变量,此时会重新new出新的字符串.

//而不是用常量池的"你好吗"

// s3 == (“你好”+“吗”) 的结果为true

System.out.println(s3==(s4+s5))

A. true true

B. false true

C. true flase

D. false false

\14. 下面哪个流是字节通向字符的桥梁( A )

//转换流 将字节转为指定编码格式的字符

A. InputStreamReader

B. OutputStreamWriter

C. LineNumberReader

D. ObjectInputStream

\15. 实现下列哪个接口,可以启用序列化功能( C )

A. Runnable接口

B. Comparable接口

C. Serializable接口

D. Comparator接口

\16. 关于Map.Entry接口说法错误的是( C )

A. 具有getkey()方法

B. 具有getValue()方法

//这个是map的方法

C. 具有keySet()方法

D. 具有setValue( )方法

\17. Set集合的特点是( B )

A. 元素有序

B. 元素无序,不存储重复元素

C. 存储重复元素

D. Set集合都是线程安全的

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

A. java.util.Collections

B. java.util.Map

C. java.util.List

D. java.util.Hashtable

\19. 请问以下程序的运行结果是什么: C D

① 有如下类定义:

*public* *class* Student {

*public* Student(){

​ System.**out**.println(“a”);

​ }

*public* *void* show(){

​ System.**out**.println(“b”);

​ }

}

② 测试方法:

//要加上这个包名

package cn.fesco.demo07;

import java.lang.reflect.Method;
publicclass Demo {

​	public static void main(String[] args) throws Exception {

		//这里要是全类名   "cn.fesco.demo7"
​		Class c = Class.forName("Student");
​		Object obj = c.getConstructor().newInstance();
​		Method m = c.getMethod("show");
​		m.invoke(obj);

​	}

}

请选择一个正确答案:

A. 打印:a

B. 打印:b

C. 打印:ab

D. 编译错误

\20. 请问以下哪些描述是正确的? B

A. 调用sleep()方法使线程进入就绪状态;

B. 调用sleep()方法使线程进入阻塞状态;

C. sleep()时间到后,立即恢复为运行状态;

D. sleep()时间到后,立即恢复为启动状态

多选题(20道,每题2分)

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

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

B. ArrayList的查询速度比LinkedList快

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

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

\2. 在我们所学知识中,下面哪几项是接口( ABCD )

//实现类和这个接口间还有一层抽象类

A. java.util.Map

B. java.util.Collection

C. java.util.List

D. java.util.Set

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

A. Iterator迭代器实现

B. 增强for循环实现

//LinkedList没索引啊

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

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

\4. 下面关于Collection 和 Collections的区别错误的是( ABC )

A. Collections是集合顶层接口

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

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

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

\5. 关于泛型的说法正确的是( ABC )

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

B. 泛型是一种安全机制

C. 使用泛型可以将数据类型作为参数传递

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

\6. 可以获取当前日期毫秒值的方法是( AB )

A. Date d = new Date(); d.getTime();

B. long start = System.currentTimeMillis();

C. Calendar中的getTime();

D. DateFormat中的getTime()

\7. 下面所有描述String类中equals()方法正确的是( ABC )

A. equals()方式是覆盖Object类中的equals()方法

B. equals()比较字符串中的内容,区分大小写

C. equals()方法的的返回值是布尔类型

D. 以上说法都不正确

\8. 下面关于代码String str = new String(“abc”);描述正确的是( bc)

A. 创建了一个字符串对象

//字符几个字节?

B. 创建了两个对象,一个是new String( )对象(这个对象里面指向字节数组),一个是”abc”对象(底层是字节数组)

C. str.equals(“abc”);将返回true

D. str.equals(“abc”);将返回false

\9. 关于null和””说法正确的是( ABD )

A. null是常量 (特殊字面量)

B. ””是字符串对象

C. null可以调用方法

D. ””可以调用方法

\10. 下列关于Java中文件输入输出的说法正确的是 ( AB )

A. 在Java中,文件的输入输出功能是通过流来实现的

B. 如果要把数据写入一个文件中,需要创建一个流对象

C. 字符流在某些方面比如图片的处理,比字节流更方便

D. 可以通过Reader r = new Reader(“c:\java.txt”);创建一个输入流对象

\11. 下面哪些选项可以实现代码同步: BCE

A. 静态代码块;

B. synchronized代码块;

C. 同步方法;

D. final方法

E. Lock锁

\12. 有如下类定义:

① package cn.fesco.demo02;

public class Student {

}

② package cn.fesco.demo02;

public class Demo{

​ public static void main(String[] args){

​ Class c = Class.forName(“cn.fesco.demo02.Student”);

​ _____________________________________;

​ }

}

请问,在横线处填写什么代码,可以构造一个Student对象****BC****

A. Object o = c.createInstance();

B. Student o = new Student();

C. Object o = c.getConstructor().newInstance();

D. Object o = c.getConstructor().createInstance();

E. Student s = c.createInstance();

\13. 有如下代码:

① package cn.fesco.demo03;

public class Student{

​ private String name;

​ private Student(String name){

​ this.name = name;

​ }

​ public void show(){

​ System.out.println(“show”);

​ }

}

请问,以下说法正确的是: *ae*

A. 获取Student的Class对象可以使用以下方式:

Class c = Student.class;

//这里要是全类名

B. 获取Student的Class对象可以使用以下方式:

Class c = Class.forName(“Student”);

C. 获取Student的Class对象可以使用以下方式:

Class c = Student.getClass();

D. 反射构造Student对象可以使用以下方式:

Constructor cot = c.getConstructor(String.class);

E. 反射构造Student对象可以使用以下方式:

Constructor cot = c.getDeclaredConstructor(String.class);

\14. 如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象 AD

A. FileInputStream

B. FileOutputStream

C. DataOutputStream

D. BufferedInputStream

\15. 关于反射,下面说法正确的是: BD

A. 反射调用方法时,如果有形参,全部是Object类型;

B. 通过反射,可以直接访问类对象中的私有成员

C. 反射调用方法时,如果有形参,调用时可以不传递实参;

D. 反射的过程是先获取某个类的Class对象,然后创建此类对象,并访问成员;

E. 通过反射,可以不用创建对象,直接为它的属性赋值;

\16. 如下对异常的描述正确的是(AC)

A. 异常类皆继承java.lang.Throwable

B. 异常类皆继承java.lang.Exception

C. 自定义异常类时,可以继承的类是Exception及其子类

D. 自定义异常类时,可以继承的类是Error及其子类

\17. 关于字节流描述错误的是( ab )

//这里要输入一个字节流

A. 如下可以正确创建一个字节缓冲流,

new BufferedOutputStream(“E:\java_code”)

//抽象类中没写.子类中写的

B. InputStream具有方法read(byte[])来读取一个字节并返回

C. OutputStream没有续写追加的构造方法

D. OutputStream是抽象类

\18. File类中的isDirectory()方法的作用是( BD )

A. 判断File对象封装的是否是文件

B. 判断File对象封装的是否是目录

C. 判断File对象中封装的是否是根目录

D. 返回值类型是boolean

\19. 程序中出现编译期异常,处理的方式为(BC)

A. 方法声明上throw 异常类

B . 使用try…catch语句抓取异常对象并处理

C . 方法声明上 throws该异常类或其父类

D . 不用管

\20. 为了提高读写性能,可以使用下面的哪些流? AB

A. BufferedReader

B. BufferedWriter

C. InputStreamReader

D. OutputStreamWriter

你可能感兴趣的:(java,开发语言)