研发工程师面试笔试题目
研发工程师面试难吗?求职面试时,面试官一般都会问你一些问题,也可能是通过问卷的形式提问,怎么回答才是最好的呢?这里给大家分享一些研发工程师面试笔试题目,希望对大家有所帮助。
研发工程师招聘面试题
一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
1.String是字符串常量,StringBuffer和StringBuilder是字符串变量。StringBuffer是线程安全的,StringBuilder是非线程安全的。具体来说String是一个不可变的对象,每次修改String对象实际上是创新新对象,并将引用指向新对象。效率很低。StringBuffer
是可变的,即每次修改只是针对其本身,大部分情况下比String效率高,StringBuffer保证同步(synchronized),所以线程安全。StringBuilder没有实现同步,所以非线程安全。但效率应该比StringBuffer高。StringBuffer使用时最好指定容量,这样会比不指定容量0%-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的区别
react面试题插件和组件的区别 两者均应用于多线程中,但当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要低,但执行效率较高。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论