【初级JAVA软件工程师】第1期综合考试
小伙伴们,【初级JAVA软件工程师】第1期的培训学习已告一小段落,结束意味着开始,让我们通过小测验检验一下学习成果吧!PS:本次测试预计用时1小时左右,开始答题后90分钟将自动交卷,请注意考试时间~
Q1:1、 方法resume()负责恢复哪些线程的执行( )
A. 通过调用stop()方法而停止的线程。
B. 通过调用sleep()方法而停止的线程。
C. 通过调用wait()方法而停止的线程。
D. 通过调用suspend()方法而停止的线程。
Q2:2、 关于sleep()和wait(),以下描述错误的一项是( )
A. sleep是线程类(Thread)的方法,wait是Object类的方法;
B. sleep不释放对象锁,wait放弃对象锁;
C. sleep暂停线程、但监控状态仍然保持,结束后会自动恢复;
D. wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。
Q3:3、 关于线程设计,下列描述正确的是
A. 线程对象必须实现Runnable接口
B. 启动一个线程直接调用线程对象的run()方法
C. Java提供对多线程同步提供语言级的支持
D. 一个线程可以包含多个进程
Q4:4、 关于反射机制下列说法错误的是
A. 反射机制指的是在程序运行过程中,通过.class文件加载并使用一个类的过程
B. 反射机制指的是在程序编译期间,通过.class文件加载并使用一个类的过程
C. 反射可以获取类中所有的属性和方法
D. 暴力反射可以获取类中私有的属性和方法
Q5:5、 下列关于代理模式说法正确的是
A. 代理模式就是让别人帮我们做事情,别人就是代理
B. 代理模式就是创建一个工厂,让工厂代替我们做事情
C. 代理模式是一种设计模式,所以实现代理模式需要我们自己写代码,JDK没有提供代理模式的案例
D. 代理模式不需要抽取接口,只要有代理类就可以了
Q6:6、 使用反射机制获取一个类的属性,下列关于getField()方法说法正确的是
A. 该方法需要一个String类型的参数来指定要获取的属性名
B. 该方法只能获取私有属性
C. 该方法只能获取公有属性
D. 该方法可以获取私有属性,但使用前必须先调用setAccessible(true)
Q7:7、 下列关于反射和泛型的联系说法正确的是
A. 泛型只在编译时有效,无法在运行期获取泛型的具体类型
B. 反射机制可以获取泛型的具体类型
C. 可以通过反射绕过泛型检查,因为运行期泛型根本没有用
D. 以上说法都不对
Q8:8、[图片]
A. throws Exception
B. Catch (Exception e).
C. Throws RuntimeException.
D. Catch (TestException e).
E. No code is necessary.
Q9:9 以下关于Tomcat,描述错误的是
A. Tomcat的默认端口号为8080,可在conf/server.xml下修改该端口
B. Tomcat是一个容器,Web工程必须放在webapps文件夹下才能运行,不能放在其它地方
C. Tomcat的运行,必须依赖JRE
D. 可在web.xml里面,指定项目启动时的欢迎页
E. 一个Tomcat环境下面可以运行多个web项目
Q10:10 以下关于SpringDataJpa,描述错误的是
A. 支持通过基于方法名称命名规则查询
B. 支持基于@Query 注解查询
C. 支持原生SQL查询
D. 继承PagingAndSortingRepository可以实现CRUD操作
E. 继承JPARepository可以实现多条件查询
Q11:11 以下哪个数据运行时数据区属于线程共享?
A. 虚拟机栈
B. 方法区
C. 本地方法栈
D. 程序计数器
Q12:12 垃圾收集器回收年轻代一般选用哪种回收算法?
A. 标记-复制
B. 标记-清除
C. 标记-整理
Q13:13 关于标记-复制垃圾回收算法,哪些选项描述不正确?
A. 垃圾回收时需要暂停用户线程
B. 适合回收对象存活率高的区域
C. 存在一定的空间浪费
D. 与标记-清除算法相比,复制算法是一种相对高效的回收方法
Q14:1. 下面能让线程停止执行的有
A. sleep();
B. stop();
C. notify();
D. synchronized();
E. wait();
F. notifyAll();
Q15:2. 有关线程的哪些叙述是对的
A. 一旦一个线程被创建,它就立即开始运行。
B. 使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
C. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。
D. 一个线程可能因为不同的原因停止并进入就绪状态。
Q16:3. 关于异常(Exception),下列描述正确的是
A. 异常的基类为Exception,所有异常都必须直接或者间接继承它
B. 异常可以用try{ . . .}catch(Exception e){ . . .}来捕获并进行处理
C. 如果某异常继承RuntimeException,则该异常可以不被声明
D. 异常可以随便处理,而不是抛给外层的程序进行处理
Q17:4. 以下哪些属于Servlet的接口提供的方法
A. init
B. service
C. destroy
D. service
E. getServletInfo
Q18:5. Nginx常见的负载均衡算法
A. 轮询
B. 权重
C. Ip Hash
Q19:6. 以下关于SpringDataJpa基于方法名称命名规则查询,正确的是
A. findByNameAndPwd
B. findByNameOrSex
C. findIdGreaterThanEquals
D. findByNameNotLike
E. findNameIsNullAndAgeGreaterThan
Q20:7. 以下哪种情况会造成 OutOfMemoryError:Java heap space?
A. 创建过多的线程
B. 创建过多的类
C. 启动参数内存值设定的过小
D. 程序出现死循环产生过多重复的对象实体
Q21:8. 关于虚拟机栈,以下描述正确的是?
A. 基本数据类型在栈内存分配
B. 引用类型存储引用指针
C. 一个方法从调用到执行完成对应着一个栈帧在虚拟机栈中从入栈到出栈的过程
D. 描述的是方法执行的内存模型
Q22:9. 以下哪个是Hotspot虚拟机heap内存对象创建的分配方式?
A. 指针碰撞
B. 直接指针
C. 句柄
D. 空闲列表
Q23:10. 以下哪些选项可以作为GC ROOTS?
A. 虚拟机栈(栈帧中的本地变量表)中引用的对象
B. 类静态变量
C. 所有被同步锁(synchronized)持有的对象
D. 常量引用的对象
Q24:1 JAVA语言中,对象外部方法没有任何途径可以调用对象的私有方法。
• 正确
• 错误
Q25:2 实现异步调用逻辑必须借助多线程机制。
• 正确
• 错误
Q26:3 java.lang.Error扩展之java.lang.RuntimeException,因此是运行时异常,无须捕获。
• 正确
• 错误
Q27:4 任何情况下,Java创建对象必将调用其构造方法
• 正确
• 错误
Q28:5 Java语言中没有进程的概念,只有线程的概念
• 正确
• 错误
Q29:6 不应当通过Java异常机制来处理业务逻辑
• 正确
• 错误
Q30:7 Java线程可以开启子线程,并且可以获得子线程的运行结果。
• 正确
• 错误
Q31:8 Java线程的ready状态类似于waiting状态,均为非运行状态。
• 正确
• 错误
Q32:9 Java反射是实现Java语言的动态特性
• 正确
• 错误
Q33:10 动态代理是建立在Java反射基础之上的语言特性
• 正确
• 错误
Q34:11 Mybatis select查询,resultType 和 resultMap 可同时存在( )
• 正确
• 错误
Q35:12 Mybatis $ 传参,可以防止sql注入( )
• 正确
• 错误
Q36:13 Mybatis 增删改查id元素为必填参数( )
• 正确
• 错误
Q37:14 springDataJpa底层默认的是依赖 Hibernate JPA 来实现的。( )
• 正确
• 错误
Q38:15 实现Specification接口可以多条件查询。( )
• 正确
• 错误
Q39:16 Mybatis可借助if choose trim foreach等实现动态sql。( )
• 正确
• 错误
Q40:17 Mybatis多条件查询时,where字段后必须拼接1=1,防止参数为null导致的sql异常。( )
• 正确
• 错误
Q41:18 Mybatis可通过设置属性useGeneratedKeys=true,来利用数据库自动生成的主键字段。( )
• 正确
• 错误
Q42:19 heap是运行时数据区空间最大的区域( )
• 正确
• 错误
Q43:20 虚拟机栈不存在垃圾回收 ( )
• 正确
• 错误
Q44:21 标记-清除垃圾回收算法,需要暂停用户线程( )
• 正确
• 错误
Q45:22 所有的对象都在年轻代进行内存分配( )
• 正确
• 错误