当前位置: 求职指南网 > 求职笔试题 >

研发工程师面试笔试题目

| 芷晴

研发工程师面试难吗?求职面试时,面试官一般都会问你一些问题,也可能是通过问卷的形式提问,怎么回答才是最好的呢?这里给大家分享一些研发工程师面试笔试题目,希望对大家有所帮助。

研发工程师招聘面试题

一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?

1. String是字符串常量,StringBuffer和StringBuilder是字符串变量。StringBuffer是线程安全的,StringBuilder是非线程安全的。具体来说String是一个不可变的对象,每次修改String对象实际上是创新新对象,并将引用指向新对象。效率很低。StringBuffer

是可变的,即每次修改只是针对其本身,大部分情况下比String效率高,StringBuffer保证同步(synchronized),所以线程安全。StringBuilder没有实现同步,所以非线程安全。但效率应该比StringBuffer高。StringBuffer使用时最好指定容量,这样会比不指定容量快30%-40%,甚至比不指定容量的StringBuilder还快。

二、VECTOR,ARRAYLIST, LINKEDLIST的区别是什么?

vector是同步的,arraylist和linkedlist不是同步的。底层方面,vector与arraylist都是基于object[]array实现的,但考虑vector线程安全,所以arraylist效率上回比vector较快。元素随机访问上,vector与arraylist是基本相同的,时间复杂度是O(1),linkedlist的随机访问元素的复杂度为O(n)。但在插入删除数据上,linkedlist则比arraylist要快很多。linkedlist比arraylist更占内存,因为linkedlist每个节点上还要存储对前后两个节点的引用。

三、HASHTABLE, HASHMAP,TreeMap区别

Hashmap和HashTable都实现了Map接口,但HashTable是线程安全的,HashMap是非线程安全的。HashMap中允许key-value值均为null,但HashTable则不允许。HashMap适合单线程,HashTable适合多线程。HashTAble中的hash数字默认大小是11,增加方式为old_2+1,HashMap中的hash默认大小为16,且均为2的指数。TreeMap则可以将保持的数据根据key值进行排列,可以按照指定的排序方式。默认为升序。

四、ConcurrentHashMap和HashTable的区别

两者均应用于多线程中,但当HashTable增大到一定程度时,其性能会急剧下降。因为迭代时会被锁很长时间。但ConcurrentHashMap则通过引入分割来保证锁的个数不会很大。简而言之就是HashTable会锁住真个map,而ConcurrentHashMap则只需要锁住map的一个部分。

五、Tomcat,apache,jboss的区别

Tomcat是servlet容器,用于解析jsp,servlet。是一个轻量级的高效的容器;缺点是不支持EJB,只能用于Java应用。Apache是http服务器(web服务器),类似于IIS可以用来建立虚拟站点,编译处理静态页面。支持SSL技术,支持多个虚拟主机等功能。Jboss是应用服务器,运行EJB的javaee应用服务器,遵循javaee规范,能够提供更多平台的支持和更多集成功能,如数据库连接,JCA等。其对servlet的支持是通过集成其他servlet容器来实现的。如tomcat。

六、GET POST区别

get是从服务器上获取数据,post是向服务器发送数据。get是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内各个字段一一对应,在url中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在html header内一起传送到action属性所指的url地址。对于get方式,服务区端用request.QueryString获取变量值,对于post方式,服务器端用request.Form获取提交的数据。get传送的数据量较小,post较大,一般不受限制。get安全性比post要低,但执行效率较高。

七、SESSION, COOKIE区别

session数据放在服务器上,cookie则放在客户浏览器上。cookie不太安全,因为可以分析出本地cookie,并进行cookie欺骗,考虑安全应使用session。session会在一定时间内保存在服务器上,当访问增多时,会比较占用服务器的性能,考虑减轻服务器压力则应该使用cookie。单个cookie保持的数据不超过4k,很多浏览器都限制要给站点最多保存20个cookie。

八、Servlet的生命周期

主要分三个阶段:初始化——调用init()方法,响应客户请求阶段——调用service()方法,终止阶段——调用destroy方法。工作原理:客户发送一个请求,servlet调用service方法对请求进行响应,即对请求方式进行匹配,选择调用doGet、doPost方法等,然后进入对于的方法中调用逻辑层的方法,实现对客户的响应。自定义的servlet必须首先servlet接口。

具体生命周期包括:装载Servlet、服务器创建Servlet实例、服务器调用Servlet的init()方法、客户请求到达服务器、服务器创建请求对象、服务创建相应对象、服务器激活Servlet的service方法,请求对象和响应对象作为service()方法的参数、service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息、service()方法可能激活其他方法以处理请求,如doGet(),doPost()

深圳艾派应用系统有限公司Java研发工程师面试题

JAVA基础部分:

一:选择

关于静态变量描述正确的

垃圾回收的方式system.gc()

二:填空

三:问答

Statement 和preparedStatement的区别

谈谈final, finally, finalize的区别

面向对象部分:(这部分主要还是UML方面的)

写一个Singleton模式

一:选择

UML的图

下面那个图可以用来说明程序的执行顺序和程序的行为

UML的执行者的描述正确的

眼睛,鼻子,耳朵与头的关系描述正确

A继承 B。组合 C。实例化 D。引用

男人和人的关系描述正确的是

A继承 B。组合 C。实例化 D。引用

二:填空

可以用???来控制程序结构为单入口单出口

三.问答题

useCase

JAVA WEB部分:

一:选择

java中表示同步方法的关键字是synchronized

SCRIPT中用于提示消息的是那个

二: 填空

1. 事务的ACDI属性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)

2. JSP的4个基本动作

3. 字符串通常分为2类,字符串常量我们通常用 表示,字符串变量我们通常用 类表示

4. 如何用javaScript 提示用户消息框

提示对话框

三:问答题

设计一个页面要求:有一个输入框用于填写age,一个提交按钮,还要写一段SCRIPT用于判断年龄(当年龄大于55岁时 要求提示用户年龄太大)

面试问我的2个问题:

HIBERNATE的主键你如何配置的,它有几种关联关系

描述STRUTS的工作流

久其Java研发面试题

1.常用的开源框架

2.Eclipse开发中用到的插件

3.项目开发中,遇到问题如何解决,举例说明

4.MVC控制层的作用

5.开发中用到的工具

6.谈谈数据库的内外连接

7.你用过哪些数据库

8.学习了哪些课程

9.举例说明快速学习的成果

10.在大学期间所获的奖励

11.谈谈数据结构

12.说说struts框架

在前台会先让填一张表,正面是自己的基本信息,反面是心理测试题,就是让你选出符合描述自己的名词。

之后是做一套题,内容涉及到操作系统、数据结构、计算机网络、计算机组成原理、数据库。

题目类型分别是:30道单选、10道多项(多数有5-7个备选项)、填空题、3个程序设计题。

先说程序设计题:

1、给出打保龄球计算得分的规则,然后给出程序设计流程图(N-S图),让根据给出的规则将流程图补充完整。(网上好像有)

2、补充程序题,让就一个问题给出其递归算法和相应的递推算法(while)

综合的回忆一下其他题目:

1数据结构中的图,用广义表给出,要求从A点出发,给出广度优先搜索,深度优先搜索以及最优路径

2关于测试的试题,有语句覆盖、路径覆盖、选择覆盖等,然后给出测试用例,让选出需要哪些用例才能实现以上覆盖

以上两个题就占了30各选择题当中的10个

3问链路层的协议是什么

4关于数据库的题很简单

5填空题中有关于uml的概念题要懂得一些概念及相关作用