2019年11月14日 java1

考点1

1
2
3
4
5
6
7
8
public class Test
{
public int x;
public static void main(String []args)
{
System. out. println("Value is" + x);
}
}

对于上面这段代码,以下说法正确的是:
A 程序会打出 “Value is 0”
B 程序会抛出 NullPointerException
C 非静态变量不能够被静态方法引用
D 编译器会抛出 “possible reference before assignment”的错误

解析

显示答案/隐藏答案正确答案: C

main方法是静态方法,静态成员不能访问非静态成员。

考点2

下列哪个说法是正确的()

  • A ConcurrentHashMap使用synchronized关键字保证线程安全
  • B HashMap实现了Collction接口
  • C Array.asList方法返回java.util.ArrayList对象
  • D SimpleDateFormat是线程不安全的

解析

显示答案/隐藏答案正确答案: D

A选项中,ConcurrentHashMap
使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全
B中,HashMap定义规则如下:

1
2
3
public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable

C中,应该是Arrays.asList(),其将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象,
这个ArrayList类并非java.util.ArrayList类,而是Arrays类的内部类

java并发集合有不懂有空了解一下

考点3

关于匿名内部类叙述正确的是? ( )

  • A 匿名内部类可以继承一个基类,不可以实现一个接口
  • B 匿名内部类不可以定义构造器
  • C 匿名内部类不能用于形参
  • D 以上说法都不正确

解析

显示答案/隐藏答案正确答案: B

匿名内部类不能有构造器

由于构造器的名字必须与类名相同,而匿名类没有类名,所以匿名类不能有构造器。

考点4

下列关于构造方法的叙述中,错误的是()

  • A java语言规定构造方法名与类名必须相同
  • B java语言规定构造方法没有返回值,但不同void声明
  • C java语言规定构造方法不可以重载
  • D java语言规定构造方法只能通过new自动调用

解析

显示答案/隐藏答案正确答案: CD

构造方法除了 new 关键字调用外,还可以通过如下方式调用

  • 反射
  • 反序列化
  • this调用
  • super调用

考点5

下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:( )

  • A java.util.ConcurrentHashMap
  • B java.util.Map
  • C java.util.TreeMap
  • D java.util.SortMap
  • E java.util.Hashtable
  • F java.util.HashMap

解析

显示答案/隐藏答案正确答案: AE

线程安全的类有

  • hashtable
  • concurrentHashMap
  • synchronizedMap

有空了解一下

考点6

关于Java中的ClassLoader下面的哪些描述是错误的:( )

  • A 默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, System
  • B 一般的情况不同ClassLoader装载的类是不相同的,但接口类例外,对于同一接口所有类装载器装载所获得的类是相同的
  • C 类装载器需要保证类装载过程的线程安全
  • D ClassLoaderloadClass在装载一个类时,如果该类不存在它将返回null
  • E ClassLoader的父子结构中,默认装载采用了父优先
  • F 所有ClassLoader装载的类都来自CLASSPATH环境指定的路径

解析

显示答案/隐藏答案正确答案: BDF

反射相关的内容,有空了解一下

考点7

class A {}
class B extends A {}
class C extends A {}
class D extends B {}
Which four statements are true ?

  • A The type List<A>is assignable to List.
  • B The type List<B>is assignable to List<A>.
  • C The type List<Object>is assignable to List<?>.
  • D The type List<D>is assignable to List<?extends B>.
  • E The type List<?extends A>is assignable to List<A>.
  • F The type List<Object>is assignable to any List reference.
  • G The type List<?extends B>is assignable to List<?extends A>.

解析

显示答案/隐藏答案正确答案: ACDG

泛型相关的内容,有空了解一下