JAVA基础水平考试
发布日期:2021-06-30 15:12:18 浏览次数:2 分类:技术文章

本文共 2865 字,大约阅读时间需要 9 分钟。

想知道自己的Java水平吗?这里有一份精心准备的测试题,只有10道题,但难度不低。

答对 4 题,说明你刚入门;
答对 6 题,说明还不错;
答对 8 题,说明你基础很好;
答对 10 题,说明你对Java非常熟悉。

1 (单选)下列代码的输出是什么?

final char a = 'A', d = 'D';   char grade = 'B';   switch(grade) {     case a:     case 'B': System.out.print("great");     case 'C': System.out.print("good"); break;     case d:     case 'F': System.out.print("not good");   }

A.great

B.greatgood
C.greatnot good
D.not good
E.good

2 (单选)下列代码会依次输出:

Integer num1 = 10;Integer num2 = 10;Integer num3 = 500;Integer num4 = 500;System.out.println(num1 == num2);System.out.println(num3 == num4); 

A.true false

B.false true
C.true true
D.false false

3 (单选)下列代码的输出是什么?

 public class DataModel {       static {           x = 15;       }       static int x = 0;       public DataModel() {           x = 5;       }       static {           x = 10;       }       public static void main(String[] args) {           DataModel dataModel = new DataModel();           System.out.println(x);       }   }

A.0

B.5
C.10
D.15

4 (单选)下列说法不正确的是:

A.CountDownLatch允许一个或多个线程等待其他线程完成操作

B.CyclicBarrier可让一组线程互相等待,直到最后一个线程到达屏障时,所有被屏障拦截的线程才会继续运行

C.CountDownLatchCyclicBarrier中的计数器均可通过reset()重置循环利用

D.Semaphore可以用来控制同时访问某个 特定资源的线程数量

5 (单选)下列说法不正确的是:

A.JDK动态代理需实现InvocationHandler,对代理对象方法的调用,会分派到其 invoke 方法真正实现调用

B. JDK动态代理通过 Proxy 类,调用其 newProxyInstance 方法,生成一个实现了相应基础接口的代理类实例

C.cglib是一个高性能的代码生成库,cglib实现动态代理对象与JDK动态代理模式一样都要求对象实现接口

D.cglib实现动态代理是为了解决接口依赖的代理问题,采取的是创建目标类子类的方式

6 (单选)下列说法不正确的是:

A.wait方法属于Object方法,而sleep()方法属于Thread类方法

B.wait方法即可以有参数传入也可无参数传入,sleep方法必须有参数传入

C.无论是wait方法还是sleep方法均需要考虑对InterruptedException的异常处理

D.无论是调用sleep方法还是wait方法的时候,对象的锁将释放,其他任务可以获得这个锁

7 (多选)下列说法正确的是:

A. volatilesynchronized都可以修饰变量,方法以及方法块

B.对一个volatile变量的写操作happen-before于后续对于这个volatile变量的读操作

C.volatilesynchronized机制均可确保变量在多个线程之间的可见性和原子性,但volatile是更轻量级的同步机制

D.volatile只能确保可见性,加锁机制即可以确保可见性又可以确保原子性

8 (多选)关于类加载器ClassLoader(Java 9以前版本),下列说法正确的是:

A.启动类加载器(Bootstrap ClassLoader):用来加载 jre/lib下面的jar包,如rt.jar

B. 扩展类加载器(Extensions ClassLoader):用来加载 jre/lib/ext/下的 jar包

C.应用类加载器(Application ClassLoader):用来根据 Java 应用的类路径(CLASSPATH)来加载 Java 类

D.由于父加载器的类型对于子加载器可见,所以j父加载器加载过的类型不会在子类加载器中重复加载

9 (多选)下列说法正确的是:

A. TCP重传机制会导致HTTP服务端收到重复的报文

B.TCP协议提供可靠的连接服务,采用三次握手建立一个连接,而终止一个连接需要四次挥手

C.在TCP连接建立过程中,服务器端通过创建socket,bind,listen完成连接准备工作,通过调用accept等待连接的建立。客户端通过创建socket,调用connect发起连接建立请求

D.只有主动发起关闭 TCP 连接的一方才会进入TIME_WAIT状态

10 (多选)执行下列代码,选出所有可能被打印出的选项:

public class MyClass {  public String name;  public void execute() {    System.out.print("1");    try {      System.out.print("2");         name.toString();         System.out.print("3");    } catch (NullPointerException e) {      System.out.print("4");      throw e;    }     System.out.print("5");   }   public static void main(String[] args) {     MyClass myClass = new MyClass();    myClass.execute();     System.out.print("6");    } }

A.1

B.2
C.3
D.4
E.5
F.6
G.NullPointerException stack trace

 

 

转载地址:https://jianzh5.blog.csdn.net/article/details/114297944 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:RBAC模型整合数据权限
下一篇:开发人员如何理解kubernetes

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月15日 09时55分58秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章