ETC 面试题总结
ETC 面试题总结(精选6篇)
ETC 面试题总结 第1篇
面试总结跟面试题
本人昵称大白,哈哈,因为我入行测试比小白还小白,所以就是大白了,我专业是文科方面的,做过兼职老师,做过文员,销售,后来我亲戚让我转测试了,然后就去培训了,培训的事情不多说,我觉得只要努力学,肯定可以的,实体确实不值得,有基础自学也可以的,不过项目经验就是最头疼的,看运气了,应届生计算机专业的可以试试!
我最后悔的一件事就是辞职了,因为报的网络班,辞职学压力超级大,有时候真的害怕找不到工作,就把自己饿死了,反正稀里糊涂的,早上上课,下午做项目,晚上继续上课,就那样两个月找到工作了,工资也超过了我的期望,还行吧,我面的不多,就五家公司,我也比较懒,上海太大了,而且大热天的,上周一我也上班了,了解需求了解了三天,上周五开始就写用例,熟悉项目了,公司还涉及到接口测试,也用的jmeter,很庆幸这个还会一丢丢,哈哈!
说说关于面试吧,面试我还能记得的一些题目,待会写下来给大家,反正我没说自己培训滴,就说那些工具做项目用的,然后一些自己自学的,哈哈,所以工资要的稍微高点,然后可恶的公司还需要离职证明,然后找培训机构弄了一个,然后HR入职还问是之前公司外包吧,哈哈,因为培训的项目都是接来的。面试了五家,感觉项目太重要了,看写了项目经验,直接会问项目,测试工具的结合,什么web的兼容性测试,然后接口的请求错误怎么办,怎么使用adb抓日志,反正我觉得面试的关键就是把项目跟工具,结合起来了,然后linux,数据库,笔试会有,不太难,还有网络的知识,然后中途也会问之前我们做测试公司的情况,幸好早有准备,哈哈,问你公司多少人,然后五险一金多少呀,之类的,幸好BBS都有前辈的总结呀,反正就稀里糊涂的面上啦,开的转正8000多点,试用得3个月,可以提前转正,看表现,问了同事,一般二个月转正,下面就发一些还记得面试题吧!1.自我介绍
2.你之前在公司用什么测试工具,结合你项目的某个模块讲,然后测试用例是怎么设计的 3.Web测试跟app测试中你熟悉的工具是什么呢?简单说一下,它的功能,能给项目带来什么好处
4.你们公司之前的测试流程,各个人员分工是什么,你们外包的项目是什么时候开始的,使用什么语言,什么系统上面搭建的
5.在linux跟windows下如何抓包,使用的工具 6.TCP/IP三次握手和四次分手时怎么样的?
7.C/S和B/S说一下是什么,举个例子,结合你们的项目谈一下 8.app的兼容测试你们之前公司怎么测试?
9.假如我们的功能上线了,界面优化的问题,不是代码的错误,你怎么说服开发去改呢,首先请描述下界面的优化是bug吗
10.说一下数据库增删查改,更新的命令分别是什么?
11.数据是怎么通过TCP/IP传输的,它的路径是怎么样的?
12.接口测试使用什么工具,在你之前有没有接触过,接口的请求错误怎么办 13.使用过monkey吗,abd抓日志的相关操作
14.能看懂简单的java跟python程序吗,因为我们后期会做自动化方向 15.职业规划是什么
只记得这些大概的,第1,2,39,12,这个几个问题,好几个公司都问了,项目必问,还有职业规划,这个提前自己准备好,还有离职证明有的公司需要,因为简历写的项目经验,最好不要说倒闭了,让你培训机构或者你之前公司开一个,实在开不了,我也不知道影响入职不,我那个HR还查了下,当时心里也抖呀,估计就是因为我们工资要的有点高,哈哈!希望大家都能找到好工作吧!
好了,就差不多这样呢,别的也记不清了,难的我也不太会呢,我也是菜鸟,大家互相学习,我扣扣2622807996,我在张江软件园这边,有合租的可以联系我,我房租有点贵,快饿死了,住在金科路这边,就这样吧
ETC 面试题总结 第2篇
题目1:Hibernate工作原理及为什么要用?
原理:
hibernate,通过对jdbc进行封装,对 java类和 关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改变了传统的jdbc + sql操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用:
1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2.Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
3.hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。
题目2: 什么是Hibernate延迟加载
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。
题目3:Hibernate中类之间的关联关系有几种(如:一对多、多对多的关系)
many-to-one、one-to-many、many-to-many、one-to-one
题目4: 说下Hibernate的缓存机制
一、hibernate一级缓存
(1)hibernate支持两个级别的缓存,默认只支持一级缓存;(2)每个Session内部自带一个一级缓存;
(3)某个Session被关闭时,其对应的一级缓存自动清除;
二、hibernate二级缓存
(1)二级缓存独立于session,默认不开启; 题目5: Hibernate的查询方式 本地SQL查询、Criteria、Hql
题目6: 如何优化Hibernate? 1.使用双向一对多关联,不使用单向一对多 2.不用一对一,用多对一取代 3.配置对象缓存,不使用集合缓存
题目7: Struts工作机制?为什么要使用Struts? 工作机制:
Struts的工作流程: 在web应用启动时就会加载初始化ActionServlet,ActionServlet从 struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 当ActionServlet接收到一个客户请求时,将执行如下流程.-(1)检索和用户请求匹配的ActionMapping实例,如果不存在就返回请求路径无效信息;-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;
为什么要用:
1.JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱。2.基于Struts开发的应用: 不用再考虑公共问题 专心在业务实现上
结构统一,易于学习、维护 新手也可写出好程序
题目10:为什么要用spring Spring是一个轻量级的IOC和AOP框架。
IOC(控制反转)意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转
AOP(面向切面),它将那些影响多个类的行为封装到可重用的模块中,面向对象是把问题从同类事物中抽象出来,面向切面是把问题从不同类问题中抽象出来。
1.hibernate中get()与load()区别
请注意如果没有匹配的数据库记录,load()方法可能抛出无法恢复的异常(unrecoverable exception)。如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去访问数据库。若你希望在某对象中创建一个指向另一个对象的关联,又不想在从数据库中装载该对象时同时装载相关联的那个对象,那么这种操作方式就用得上的了。如果为相应类映射关系设置了batch-size,那么使用这种操作方式允许多个对象被一批装载(因为返回的是代理,无需从数据库中抓取所有对象的数据)。如果你不确定是否有匹配的行存在,应该使用get()方法,它会立刻访问数据库,如果没有对应的行,会返回null。
17.[Hibernate题目]判断题:使用save/persist一个对象时,便立即向数据库发送执行insert sql语句?
1)persist把一个瞬态的实例持久化,但是并“不保证”标识符被立刻填入到持久化实例中,标识符的填入可能被推迟到flush的时间。
2)persist“保证”当它在一个transaction外部被调用的时候并不触发一个Sql Insert,这个功能是很有用的。
3)save会立即执行Sql insert,不管是不是在transaction内部还是外部.18.[Hibernate题目]:指出一下代码哪里错误使用了Hibernate。
背景简介:Board是一个实体类,id是它的主键,name和description是他的两个属性。BoardDao是Board实体的数据访问对象,BoardBo是业务对象,用户提交变更Board对象的请求,由Struts的BoardAction接收,调用BoardBo处理。HibernateUtil.currentSession()用于返回当前请求的Session对象。//数据访问层代码:BoardDao.java
publicBoardloadBoard(Longid){
Sessionsession=HibernateUtil.currentSession();
returnsession.load(Board.class,id);
}
publicvoidupdateBoard(Boardboard){
Sessionsession=HibernateUtil.currentSession();
session.update(board);
}
//业务对象层代码:BoardBo.java
privateBoardDaoboardDao;
publicvoidupdateBoard(Longid,Stringname,Stringdescription){
Boardboard=boardDao.loadBoard(id);
board.setName(name);
board.setDescription(description);
boardDao.updateBoard(board);
}
//Web控制器代码:BoardAction.java
privateBoardBoBoardBo;
publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse)throwsException{
Stringid=request.getParameter(“id”);
Stringname=request.getParameter(“name”);
Stringdescription=request.getParameter(“description”);
boardBo.updateBoard(id,name,description);
returnmapping.findForward(“update-success”);
}
6.public void updateBoard(Board board){ 7.Session session = HibernateUtil.currentSession();Transaction t=session.beginTransaction();8.session.update(board);t.commit();9.}
简单叙述一下Spring中BeanFactory与ApplicationContext的差别 使用BeanFactory从xml配置文件加载bean: importorg.springframework.beans.factory.xml.XmlBeanFactory;importorg.springframework.core.io.FileSystemResource;
publicclassXmlConfigWithBeanFactory{
publicstaticvoidmain(String[]args){ XmlBeanFactoryfactory=newXmlBeanFactory(newFileSystemResource(“build/beans.xml”));} } 使用ApplicationConText从xml配置文件加载bean: publicclassXmlConfigWithApplication{
publicstaticvoidmain(String[]args){ ApplicationContextapplication=newClassPathXmlApplicationContext(beans.xml“));application.getBean(”BeanName“);} } 简而言之,BeanFactory提供了配置框架和基本的功能,而 ApplicationContext为它增加了更强的功能,这些功能中的一些或许更加接近J2EE并且围绕企业级应用。一般来说,ApplicationContext是 BeanFactory的完全超集,任何BeanFactory功能和行为的描述也同样被认为适用于ApplicationContext 相对于BeanFactory而言,ApplicationContext 提供了以下扩展功能.(a)国际化支持(b)资源访问
(c)事件传播(d)多实例加载
2.写一段程序,使用springAPI读取classpath下的一个xml文件,并解析(1)Resource resource=new ClassPathResource(”appcontext.xml“);BeanFactory factory=new XmlBeanFactory(resource);
(2)ClassPathXmlApplicationContext appcontext=new ClassPathXmlApplicationContext(”appcontext.xml“);BeanFactory factory=(BeanFactory)appcontext;
4.说说在hibernate中使用Integer做映射和使用int做映射之间有什么差别 Integer code和int code;的区别: Integer是对象.code = null;对象可以为空.int 是普通类型, 不可能 = null.根据你的数据库code是可以空的, 故应该映射成Integer.你没理由hbm.xml里写Integer, 类里却写int
(1)使用Spring如何简化了Hibernate编码?
通过org.springframework.orm.hibernate3.support.HibernateDaoSupport类支持数据库操作,且封装了事务.public class AccountDAO extends HibernateDaoSupport implements IAccountDAO{
(2)Spring如何与Struts集成?
(3)如何使用Spring2.0实现声明式事务?
(4)依赖注入的好处是? 程序可扩展性更强;利于并行开发;
(5)Spring怎么实现依赖注入?
(6)“面向方面编程”的好处是? 将程序中涉及的公共问题集中解决
(7)和SQL相比,HQL有哪些特点?
HQL是面向对象的查询语言。select Fw表示查询Fw对象
(8)如何配置单向多对一关联?
(9)如何配置单向一对多关联?
(10)如何配置双向一对多关联? 综合分析类 第一题:有人认为, 一个人要发展, 必须要靠机遇, 但也有人说机遇可遇不可求, 最终要靠实力。对此, 你怎么看?如果这次竞争成功, 你认为自己靠的是机遇还是实力? 【解析】这是一道综合分析类型的题目, 同时也是一道观点阐述类型的题目, 旨在考察考生的综合分析能力、辩证思维能力和语言表达能力。 从出题者的思路来说, 看考生能否对不同的观点作出正确的判断, 并对观点提出认同的理由。如果考生选择错误, 那么给出的理由就有可能牵强附会, 难以自圆其说。实际上, 多数观点类型的题目, 必须都是正确的, 但是, 必须要客观地看、辩证地看、从不同角度去看, 都有一定的道理, 又都似乎有不周到的地方。当然, 也有的就是错误的。这就要看考生的知识面, 能否上升到哲学的高度去理解和分析。就这一道题目而言, 回答起来是非常简单的。首先要肯定这两种观点都是正确的, 但都不够全面;其次是要指出, 一个人要发展, 既要靠机遇, 更要靠实力, 是机遇和实力的结合, 成就一个人的发展。当然, 首先是要有实力, 然后是机遇。不然, 有了机遇, 没有实力也不成。只有有了实力, 一旦有了机遇, 才能成功。再次是要考生回答, 如果这次竞争成功, 认为自己靠的是机遇还是实力的问题。对于这一问的回答, 无非是结合自身的实际, 再谈谈对本次公选给了自己的机遇, 但是, 真正使自己竞争成功的, 还是自己的实力, 是自己平时注重学习。注重知识积累、注重提高能力, 而使自己能够从众多的竞争者中脱颖而出。 从考官对考生的评判标准来说, 着重要把握的就是上述三个方面, 考生回答得越是诚恳、可信, 越是能够打动考官。也可以添加一些具体生活或工作中的小事例, 加以说明。 从当天本组35名考生的回答来看, 几乎所有回答都是完美的, 考官给出的小分都很高, 几乎都在上等的位置。 情境模拟类 第二题:如果你到新岗位工作后, 手下只有两个兵。小孙业务能力强, 但性格孤僻;小赵勤勤恳恳, 但能力一般。小孙经常瞧不起小赵, 小赵对小孙也经常抱怨。你将如何带领这支团队开展工作? 【解析】这是一道情境模拟类型的题目, 也是一道人际沟通与协调类型的题目。旨在考察考生的领导能力, 对下属如何做好思想工作, 团结一致完成组织目标的能力。 从出题者的思路来说, 主要看考生能否站在全局和大局的高度, 协调好下属的矛盾, 发挥团队合作精神, 实现有效组织目标。对于这一道题目回答, 考生必须要把握以下几点:一是作为新任领导, 对遇到题目给定的情况, 必须要认真对待, 冷静处置。不然就会出现“三个人三条心”的状况。二是要通过交流谈心, 了解两个兵背后的真实情况, 进行具体问题, 具体分析。三是要明确工作职责范围, 把注意力引导到工作上来。四是要加强思想教育, 让他们感受到团结出生命力、团结出战斗力。五是要通过自己的努力和表率作用, 让他们感受到人与人相处, 需要理解与包容。特别是在一起工作, 既需要合作, 更需要有团队精神、大局意识, 来调动他们的工作积极性, 主动作为。 从考官对考生的评判标准来说, 衡量一个考生的回答是否完美, 主要就是看上述的五个方面。当然, 从回答中还可以看出考生是否真正具有一个领导者应有的风范和领导方法。同样, 还有效率、激励、考核等, 能够回答到, 会更加完美。 从当天本组35名考生的回答来看, 绝大多数回答是不错的, 仅有少数考生回答得不够理想。从考官给出考生的小分来看, 都在中等偏上。 组织协调类 第三试题:某县正在开展“访民情、解民忧、办实事”活动, 组织上安排你带队到某村走访, 群众向你们反映了许多农村公共基础设施建设上的问题, 有的桥梁年久失修, 存在极大安全隐患;有的村民组电路严重老损, 一到夏天便无法用电。面对群众提出的问题, 你打算怎么去处理? 【解析】这既是一道情境模拟类型的题目, 也是一道组织协调类型的题目。旨在考察考生的群众观念, 政策法律意识, 组织协调和处理复杂问题的能力。 从出题者的思路来看, 是要考生能够准确把握中央对领导干部“访民情、解民忧、办实事”的理解, 通过“访、摸、办”真正体验到农村工作的艰难、农民的艰辛、农业生产的艰苦, 更加重视和关注“三农”。尤其是中央对今后“三农”工作提出的宏伟蓝图, 发展目标, 要有新的理解。过去我们常说:“群众事无小事”, 那么, 涉及农民、农业、农村每一件事, 都事关农民的切身利益。需要考生通过自己的回答, 体验出对“三农”的关心与关注。回答好这一题目, 可以说, 对多数考生来说, 有一定难度, 但是, 作为一名领导干部, 必须要了解。因为一旦走上领导岗位, 这样的事是常常发生的, 要能够面对, 更要敢于面对。 从考官对这一道题目需要把握的要点来看, 着重在以下几个方面:一是要熟悉上级政策和相关要求。究竟什么是政策能够解决的, 什么是政策不能够解决的。二是要带着感情下去, 真正把农民当亲人。只有当亲人, 才能体会到农民朋友的“难”。三是要摸清农村、农业、农民的真实状况, 给上级领导机关提出意见或建议, 加大对“三农”工作的支持。四是要主动协调相关部门, 给予相应的支持, 特别是供电、交通、水利、乡村建设等部门的支持。毕竟, 这几年, 中央和各级政府都在加大对“三农”工作的支持, 有许多项目资金等待投入。五是要主动帮助基层组织编制项目, 同他们一道跑部门, 争取项目支持。“访民情、解民忧、办实事”的落脚点就是“办实事”, 解决了群众的需要是活动的目的, 也是关键。 |轻松阅读东鳞西爪|DONGLINXIZHAO 古代首脑有哪些称呼 □赖军 夏代以前, 全氏族的共同始祖就是天然的首领, 称为“后”, 本意是生育。部落和部落联盟的首领称“伯”, 由选举产生, 伯即老大之意。大禹治水后中原出现了最早的国家夏, 夏朝的首脑称后。从商汤开始, 国家的首脑称王。周王统治的地区叫“天下”, 由周王分封的诸侯统治区域叫“国”, 由诸侯再分的大夫领地叫“家”。周王又称“天子”, 意为上天之长子受命于天在人间进行统治。周天子的各个封国君主都由周王策命, 王畿内的统治者称“公”或“伯”, 王畿外的一般通称为“侯”, 诸侯死后一般尊称为“公”, 并评一个称号, 叫做“谥号”。 从当天本组35名考生的回答来看, 这一道题目, 多数没有回答好。从考官给出的小分来看, 多数在中等偏下, 关键是没有能够吃透政策, 把握住题目中的关键问题是“访民情”, 是要对“群众向你们反映了许多农村公共基础设施建设上的问题, 有的桥梁年久失修, 存在极大安全隐患;有的村民组电路严重老损, 一到夏天便无法用电”等问题的处理。可以看出考生对上级领导对基层干部要求的关注度不够。 总之, 中组部对公选干部有一个明确的指导思想, 就是“干什么、考什么”, “考什么, 更需要干部去干什么”, 往往许多考生缺少的就是对实际工作的了解和把握, 可以看出基层锻炼对年轻干部成长的重要。近年来, 许多突发事件的发生, 本身只是少数人的维权, 但是, 之所以成了群体性的事件, 就是许多干部缺少对基层群众的了解, 用过急的“对手思维”方式去处理, 结果很糟。所以考生要切实加强基层锻炼, 才能走上领导岗 编辑史新建 秦始皇统一中国, 决定用皇帝这个称号, 皇帝是理想化的君主和至高无上的太阳神的化身。从秦始皇到辛亥革命推翻清王朝, 皇帝的称号在中国沿用了两千多年。皇帝自称“朕”, 臣民称皇帝叫“陛下”, 史官记事称皇帝为“上”, 皇帝说的话叫“制”“诏”, 通俗说法叫“圣旨”或“金口玉言”。皇帝所用之物叫“御”, 所用之印叫“玺”, 所到之处叫“幸”。臣民谈皇帝通常以“县官”代之, “万岁”也是皇帝的代称。■ 1房里有三盏灯,房外有三个开关,在房外看不见房内的情况。但可以任意扳动开关。你只能进门观察一次,你用什么方法来区分哪个开关控制哪一盏灯? 2有两根粗细不均匀的香,燃烧时快时慢,但每根香烧完的时间确定是一小时。你能用什么方法来确定45分钟的时间? 3村子里有50个人,每个人都有一条狗,在这50条狗中有病狗(这种病不传染),人们要找出病狗。每个人可以观察其他49条狗,以判断它们是否生病,但只有自己的狗不能看,观察后得到的结果不能交流,也不能通知病狗的主人。主人一旦推算出自己的狗有病时,就必须在一天内将其枪毙,而且只有权力枪毙自己的狗,没有权力打死其他人的狗。第一天大家全看完了,但枪没响,第二天枪也没响,第三天才传来枪响。问:村里共有几条病狗?如何推算出来的? 4在太平洋的一个小岛上生活着土著人,他们不愿意被外人打扰。一天,一位探险家到了岛上,被土著人捉住,土著人的首领告诉他:“你临死前可以有个机会留下一句话,如果这句话是真的,你将被烧死;如果是假的。你将被五马分尸。”可怜的探险家说什么才能活下来? 5一个老师为了测试一下A、B两个学生哪一个反应速度更快,就把他们带到一个伸手不见五指的黑房子里。老师打开灯说:“这张桌子上有五顶帽子,两顶是红色的,三顶是黑色的。现在,我把灯关掉,并把帽子的顺序搞乱,然后,我们三人每人摸一顶戴在头上。当我把灯打开时,请你们尽快说出,自己头上戴的是什么颜色的帽子。”然后老师把灯关掉了,三个人都摸了一顶帽子戴在头上,同时,老师把另外两顶藏起来了。电灯打开后,那两个同学看到老师头上戴着的是顶红色的帽子,过了一会儿,A喊道:“我戴的是黑帽子。”请问A是如何推理的? 答案(仅供参考): 1先打开两个开关,等一段时间再关上其中一个,马上进里观察。打开的灯对应打开的开关,因此用手摸到热的灯对应刚刚关闭的开关,凉的对应始终投打开的开关。 2点燃其中一根。并把另一根两头点燃。第二根烧完恰好过去30分钟,第一根剩下部分应该能支撑30分钟的燃烧。然后把第一根剩下的部分两头点燃,15分钟即可燃尽,此过程一共耗时45分钟。 3若只有一条病狗,病狗的主人看到其他的狗都沒有病,那么就知道自己的狗有病,所以第一天晚上就会枪响。因为没有枪响,就说明病狗数量大于1。若有两条病狗,病狗的主人会看到有一条病狗,而第一天没听到枪响,说明病狗数大于1,所以病狗主人也会知道自己的狗有病,因而第二天会听枪响,既然第二天枪也没响,说明病狗数大于2。依此类推,如果第三天听到枪响。说明有三条病狗。 4这是一个悖论问题,探险家只能描述一种非真非假的状况,比如:我将被五马分尸。如果土著判定这话是真的,那么他将被烧死——这样“五马分尸”就成假的了。如果土著判定这话是假的,那他将被五马分尸的话就变成了真的。 5如果A戴的是红帽子,那么B马上就可以猜出自己戴的是黑帽子(因为红帽子只有两顶);而B并没有立刻猜到,所以A马上推断出自己戴的是黑帽子! 汪新才摘自《狗眼看世界》 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize—方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 二、Abstract,Interface的区别 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 三、PreparedStatement和Statement的区别及效率 public interface Statementextends Wrapper 用于执行静态 SQL 语句并返回它所生成结果的对象。 在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。public interface PreparedStatementextends Statement 表示预编译的 SQL 语句的对象。 SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。 四、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 String的长度是不可变的,StringBuffer的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 五、说出ArrayList,Vector, LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 六、Collection 和 Collections的区别。 Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 Collections是个java.util下的类,静态的,没有构造函数,它包含有各种有关集合操作的静态方法。Sort方法,public static Collection是个java.util下的接口,它是各种集合结构的父接口。 七、sleep()和 wait()有什么区别? 搞线程的最爱 sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程 不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。 wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。 sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 八、Hashtable和HashMap的区别 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。 就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value 都属于Map接口的类,实现了将惟一键映射到特定的值上。 HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。 2、Servlet版本间(忘了问的是哪两个版本了)的不同? 3、JAVA SERVLET API中forward 与redirect()的区别? 答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用 sendRedirect()方法。 4、Servlet的基本架构 public class ServletName extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } 5.servlet的生命周期是什么? 6.如何现实servlet的单线程模式? 7. 页面间对象传递的方法是什么? 8.四种会话跟踪技术包括哪几项? 9.Request对象的主要方法包括哪些? 10.我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 11.Servlet执行时一般实现哪几个方法? 12.说出数据连接池的工作机制是什么? 13.Class.forName的作用? 14、什么情况下调用doGet()和doPost()? 15、servlet的生命周期? 16、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?公选科级干部面试题解析 第3篇
“天才”面试题 第4篇
面试题总结(我自己) 第5篇
servlet面试题总结 第6篇
ETC 面试题总结
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


