第一篇:面试总结——Java高级工程师(三)详解
面试总结——Java高级工程师
(三)详
解
一、独白
之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶意提交?
相对来说,Java的底层和基础会问的少一点,当然问的少不是代表不问,而是说侧重点在于你的所做过的项目和你的设计思路如何。当然,懂基础和底层更好,这样能让你知其然,更知其所以然,写出来的代码和程序更具有健壮性和可维护性。所以说,基础还是很重要的。
现在轮到自己出去面试,怎么说呢,其实还是挺紧张的,原以为自己不会因此紧张或者焦虑,实际上,还是有的,在没找到合适的工作的时候,甚至晚上有点睡不着觉,总觉着有什么事压在心头,睡觉都不安心。既然睡不着,那还是看看资料吧,我有个习惯,睡前看点问题,第二天早上就能想到答案,睡前记点资料,第二天早上就能记得特别深刻,不说废话了,直接进入正题吧。
二、面试技巧
1、背熟你的简历
原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要)。
2、深入了解并熟记部分Java基础知识
原因:大部分公司无论面试初级还是高级,无论是笔试还是面试,都会问到一系列基础题,这些基础题大概涵括 jvm、字符串、集合、线程等等,如果说每一个让你死记硬背你肯定记不住,那么就是理解中记忆了,拿jvm来说,如果让你谈谈你对jvm的理解,那么你首先得知道JVM有哪些结构组成,每个结构用来做什么的,然后考虑一个Java对象从创建到回收,如何途径JVM这些结构的。如果你从这些方面来综合记忆,相信事半功倍,并且你理解的更透彻。至于如果让你谈集合,举例List集合下面ArryList、LinkedList、Vector等集合的区别,那么同样的方法,你需要理解每一个的结构组成是什么,你才能知道他有什么作用,这样你在平时的用法上会更精炼,而且在面试过程中,也不至于哑口无言。
3、保持自信心和沉重冷静的心态
原因:面试过程中,自信是少不了的,相信你可以,面试的路上可以自己对自己说一句: I belive I can!
反正我就是这么做的,自我的心里暗示吧,其实面对面试官的时候,你自信的状态也会让面试官觉得你是个很有底气的人,至少从感觉上会给你打个高分。另外还有就是保持沉重冷静,如果是让你提供技术方案或者说说某个技术原理,没必要一紧张一咕噜的什么都说,你可以对面试官说:我先想想,然后自己组装记忆中的知识,组装下语言,有条理的说出来,这样能更好的表现你的才能,不是吗?
面试谁都会紧张,我也会紧张,有时候明明记得的知识点忘了,没关系,大胆的说忘了,或者直接说不知道。要记住,有部分不知道没关系,如果全都知道,那你应该是CTO级别了(开个玩笑)。
4、尽量记住面试过程中你回答不出来或者回答存在不妥的问题
原因:面试失败了没关系,毕竟每个公司的要求不一样,问的问题和你擅长的方面可能有所出入,但是请记住一点:面试过程中那些你回答不出来问题,或者你自己感觉回答不太准确的问题,自己记下来,如果不会的,你可以当场问问面试官有没有好的解答,如果面试官不愿意告诉你(一般是基础方面面试官就懒得答你),那么你就自己回家慢慢查资料,如果是某些特定的技术,也可以自己写写案例什么的,毕竟知识点就那么多,问题百变,原理不变,面试也是一个学习知识的过程,让你了解大部分公司目前需要或者要求的技术。这次不知道,下次就知道了
5、去面试之前,最好先了解你要去面试公司的情况(包括产品、项目情况)原因:俗话说,知己知彼,百战不殆,面试就是一场战斗,你需要了解你面试公司基本情况,包括岗位要求,这样你就能大概知道你需要面试的这家公司的技术要求情况。为何让你去了解这家公司的主营产品和项目呢,就是让你大概了解这家公司的一个技术架构的情况,包括你可能对他们的一种实现方式提出质疑和疑惑,相信面试官很愿意帮你解答这些问题的。这样你既图了表现,也学到了知识,何乐而不为。
6、合理安排你的面试时间(如果有多家公司的面试机会,尽量把你想去的公司放到最后去面试)
原因:估计很多人都不理解这个,可能大部分的人对于如何安排面试时间比较迷茫,随意安排。可是这里有个技巧,如果同时有多个面试机会,你把你最想去的公司放到最末尾去面试,这样你经历过了前面的这些公司筛选,如果成功了是个机会,如果没成功,也是为最后做铺垫。
不过这里就需要考虑两点:
1、你需要记住你投简历的公司和基本情况(这说明你不是海投的)
2、如果记不住,那么可以先应答一个时间,后续了解公司信息之后,通过邮件或者其他方式与其约定,调整面试时间。而且建议安排一天的面试公司不要超过两家,最好的是上午一家,下午一家,这样你能有充足的时间调整状态。
三、面试题基础总结
1、JVM结构原理、GC工作机制详解
答:具体参照:JVM结构、GC工作机制详解
,说到GC,记住两点:
1、GC是负责回收所有无任何引用对象的内存空间。注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 b、可达性分析算法(这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考:Java GC机制算法
2、Java对象的生命周期
答:创建阶段、应用阶段、不可见阶段、不可达阶段、收集阶段、终结阶段、对象空间重新分配阶段等等,具体参照:Java 对象的生命周期
3、Map或者HashMap的存储原理
答:HashMap是由数组+链表的一个结构组成,具体参照:HashMap的实现原理
4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果)
答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果
5、数据库存储日期格式时,如何考虑时区转换问题?
答:使用TimeStamp , 原因参照:Java编程中遇到的时区转换问题
6、Java Object类中有哪些方法? 答:Object有哪些方法
7、HTTP协议,GET和POST 的区别 答:浅谈HTTP中GET和POST的区别
四、线程、设计模式、缓存方面
1、SimpleDataFormat是非线程安全的,如何更好的使用而避免风险呢 答:关于SimpleDateFormat安全的时间格式化线程安全问题
2、如何看待设计模式,并简单说说你对观察者模式的理解 答:
1、设计模式有神马用
2、观察者模式类图及实现
3、集群环境中,session如何实现共享
答:
1、Java集群之session共享
2、session多服务器共享方案,还有一种方案就是使用一个固定的服务器专门保持session,其他服务器共享
4、分布式、集群环境中,缓存如何刷新,如何保持同步? 答:A、缓存如何刷新?
1、定时刷新
2、主动刷新覆盖
,每个缓存框架都有自带的刷新机制,或者说缓存失效机制,就拿Redis和 Ehcache举例,他们都有自带的过期机制,另外主动刷新覆盖时,只需获取对应的key进行数据的覆盖即可
B、缓存如何保持同步?
这个redis有自带的集群同步机制,即复制功能,具体参考:基于Redis分布式缓存实现,Ehcache也有分布式缓存同步的配置,只需要配置不同服务器地址即可,参照:Ehcache分布式缓存同步
5、一条sql执行过长的时间,你如何优化,从哪些方面?
答:
1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)
2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合
3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度
4、针对数量大的表进行历史表分离(如交易流水表)
5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,MySQL有自带的binlog实现 主从同步
个人理解:从根本上来说,查询慢是占用mysql内存比较多,那么可以从这方面去酌手考虑
五、设计方案相关
面试还会问到一些关于设计方案相关的问题,比如
1、你的接口服务数据被人截包了,你如何防止数据恶意提交?
答:我们可以在接口传输参数里面设置一个业务编号,这个编号用来区分是否重复提交。这样即使数据被抓包了,对方也无法区分每个字段你的含义,这时,这个业务编号的作用就来了
2、假设服务器经常宕机,你从哪些方面去排查问题? 答:这个就留个各位看官补充了,可评论回复
面试技巧就补充这些,后面如果记得什么在补充,如果有其他小伙伴有其他建议,也可以在评论回复,其他面试问题还包括算法、数据结构、http协议等等,这些等待大家自己去补充学习了,spring的原理,Spring mvc的原理问的也挺多的,大家有时间可以看看之前的面试总结——高级JAVA工程
(一)和面试总结——高级JAVA工程师
(二)。
总而言之该看的还是得看,还学的还是得学。再次强调,基础很重要!面试技巧同样很重要,还是那句话:祝愿各位看官都能找到心仪的工作吧~~
另外,奉劝大家不要频繁跳槽,这些知识点能提升固然好,不要盲目跳槽,找工作很累的,而且没有哪家公司喜欢频繁跳槽的员工
一、独白
之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶意提交?
相对来说,Java的底层和基础会问的少一点,当然问的少不是代表不问,而是说侧重点在于你的所做过的项目和你的设计思路如何。当然,懂基础和底层更好,这样能让你知其然,更知其所以然,写出来的代码和程序更具有健壮性和可维护性。所以说,基础还是很重要的。
现在轮到自己出去面试,怎么说呢,其实还是挺紧张的,原以为自己不会因此紧张或者焦虑,实际上,还是有的,在没找到合适的工作的时候,甚至晚上有点睡不着觉,总觉着有什么事压在心头,睡觉都不安心。既然睡不着,那还是看看资料吧,我有个习惯,睡前看点问题,第二天早上就能想到答案,睡前记点资料,第二天早上就能记得特别深刻,不说废话了,直接进入正题吧。
二、面试技巧
1、背熟你的简历
原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的话,我想没有哪家公司会接受这样的,哪怕你是超级人才,你自我表述不行,估计也会为此头疼,所以,切记:一定要背好自己的简历,不要求你能全部记下,至少要熟记你最近所待过的两家公司,这两家公司里面你做过的项目,你负责的模块,项目里面用到的技术以及相对应的技术实现方案(这个尤为重要)。
2、深入了解并熟记部分Java基础知识
原因:大部分公司无论面试初级还是高级,无论是笔试还是面试,都会问到一系列基础题,这些基础题大概涵括 jvm、字符串、集合、线程等等,如果说每一个让你死记硬背你肯定记不住,那么就是理解中记忆了,拿jvm来说,如果让你谈谈你对jvm的理解,那么你首先得知道JVM有哪些结构组成,每个结构用来做什么的,然后考虑一个Java对象从创建到回收,如何途径JVM这些结构的。如果你从这些方面来综合记忆,相信事半功倍,并且你理解的更透彻。至于如果让你谈集合,举例List集合下面ArryList、LinkedList、Vector等集合的区别,那么同样的方法,你需要理解每一个的结构组成是什么,你才能知道他有什么作用,这样你在平时的用法上会更精炼,而且在面试过程中,也不至于哑口无言。
3、保持自信心和沉重冷静的心态
原因:面试过程中,自信是少不了的,相信你可以,面试的路上可以自己对自己说一句: I belive I can!
反正我就是这么做的,自我的心里暗示吧,其实面对面试官的时候,你自信的状态也会让面试官觉得你是个很有底气的人,至少从感觉上会给你打个高分。另外还有就是保持沉重冷静,如果是让你提供技术方案或者说说某个技术原理,没必要一紧张一咕噜的什么都说,你可以对面试官说:我先想想,然后自己组装记忆中的知识,组装下语言,有条理的说出来,这样能更好的表现你的才能,不是吗?
面试谁都会紧张,我也会紧张,有时候明明记得的知识点忘了,没关系,大胆的说忘了,或者直接说不知道。要记住,有部分不知道没关系,如果全都知道,那你应该是CTO级别了(开个玩笑)。
4、尽量记住面试过程中你回答不出来或者回答存在不妥的问题
原因:面试失败了没关系,毕竟每个公司的要求不一样,问的问题和你擅长的方面可能有所出入,但是请记住一点:面试过程中那些你回答不出来问题,或者你自己感觉回答不太准确的问题,自己记下来,如果不会的,你可以当场问问面试官有没有好的解答,如果面试官不愿意告诉你(一般是基础方面面试官就懒得答你),那么你就自己回家慢慢查资料,如果是某些特定的技术,也可以自己写写案例什么的,毕竟知识点就那么多,问题百变,原理不变,面试也是一个学习知识的过程,让你了解大部分公司目前需要或者要求的技术。这次不知道,下次就知道了
5、去面试之前,最好先了解你要去面试公司的情况(包括产品、项目情况)原因:俗话说,知己知彼,百战不殆,面试就是一场战斗,你需要了解你面试公司基本情况,包括岗位要求,这样你就能大概知道你需要面试的这家公司的技术要求情况。为何让你去了解这家公司的主营产品和项目呢,就是让你大概了解这家公司的一个技术架构的情况,包括你可能对他们的一种实现方式提出质疑和疑惑,相信面试官很愿意帮你解答这些问题的。这样你既图了表现,也学到了知识,何乐而不为。
6、合理安排你的面试时间(如果有多家公司的面试机会,尽量把你想去的公司放到最后去面试)
原因:估计很多人都不理解这个,可能大部分的人对于如何安排面试时间比较迷茫,随意安排。可是这里有个技巧,如果同时有多个面试机会,你把你最想去的公司放到最末尾去面试,这样你经历过了前面的这些公司筛选,如果成功了是个机会,如果没成功,也是为最后做铺垫。
不过这里就需要考虑两点:
1、你需要记住你投简历的公司和基本情况(这说明你不是海投的)
2、如果记不住,那么可以先应答一个时间,后续了解公司信息之后,通过邮件或者其他方式与其约定,调整面试时间。而且建议安排一天的面试公司不要超过两家,最好的是上午一家,下午一家,这样你能有充足的时间调整状态。
三、面试题基础总结
1、JVM结构原理、GC工作机制详解
答:具体参照:JVM结构、GC工作机制详解
,说到GC,记住两点:
1、GC是负责回收所有无任何引用对象的内存空间。注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 b、可达性分析算法(这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考:Java GC机制算法
2、Java对象的生命周期
答:创建阶段、应用阶段、不可见阶段、不可达阶段、收集阶段、终结阶段、对象空间重新分配阶段等等,具体参照:Java 对象的生命周期
3、Map或者HashMap的存储原理
答:HashMap是由数组+链表的一个结构组成,具体参照:HashMap的实现原理
4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果)
答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果
5、数据库存储日期格式时,如何考虑时区转换问题?
答:使用TimeStamp , 原因参照:Java编程中遇到的时区转换问题
6、Java Object类中有哪些方法? 答:Object有哪些方法
7、HTTP协议,GET和POST 的区别 答:浅谈HTTP中GET和POST的区别
四、线程、设计模式、缓存方面
1、SimpleDataFormat是非线程安全的,如何更好的使用而避免风险呢 答:关于SimpleDateFormat安全的时间格式化线程安全问题
2、如何看待设计模式,并简单说说你对观察者模式的理解 答:
1、设计模式有神马用
2、观察者模式类图及实现
3、集群环境中,session如何实现共享
答:
1、Java集群之session共享
2、session多服务器共享方案,还有一种方案就是使用一个固定的服务器专门保持session,其他服务器共享
4、分布式、集群环境中,缓存如何刷新,如何保持同步?
答:A、缓存如何刷新?
1、定时刷新
2、主动刷新覆盖
,每个缓存框架都有自带的刷新机制,或者说缓存失效机制,就拿Redis和 Ehcache举例,他们都有自带的过期机制,另外主动刷新覆盖时,只需获取对应的key进行数据的覆盖即可
B、缓存如何保持同步?
这个redis有自带的集群同步机制,即复制功能,具体参考:基于Redis分布式缓存实现,Ehcache也有分布式缓存同步的配置,只需要配置不同服务器地址即可,参照:Ehcache分布式缓存同步
5、一条sql执行过长的时间,你如何优化,从哪些方面?
答:
1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化)
2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合
3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度
4、针对数量大的表进行历史表分离(如交易流水表)
5、数据库主从分离,读写分离,降低读写针对同一表同时的压力,至于主从同步,MySQL有自带的binlog实现 主从同步
个人理解:从根本上来说,查询慢是占用mysql内存比较多,那么可以从这方面去酌手考虑
五、设计方案相关
面试还会问到一些关于设计方案相关的问题,比如
1、你的接口服务数据被人截包了,你如何防止数据恶意提交? 答:我们可以在接口传输参数里面设置一个业务编号,这个编号用来区分是否重复提交。这样即使数据被抓包了,对方也无法区分每个字段你的含义,这时,这个业务编号的作用就来了
2、假设服务器经常宕机,你从哪些方面去排查问题? 答:这个就留个各位看官补充了,可评论回复
面试技巧就补充这些,后面如果记得什么在补充,如果有其他小伙伴有其他建议,也可以在评论回复,其他面试问题还包括算法、数据结构、http协议等等,这些等待大家自己去补充学习了,spring的原理,Spring mvc的原理问的也挺多的,大家有时间可以看看之前的面试总结——高级JAVA工程
(一)和面试总结——高级JAVA工程师
(二)。
总而言之该看的还是得看,还学的还是得学。再次强调,基础很重要!面试技巧同样很重要,还是那句话:祝愿各位看官都能找到心仪的工作吧~~
另外,奉劝大家不要频繁跳槽,这些知识点能提升固然好,不要盲目跳槽,找工作很累的,而且没有哪家公司喜欢频繁跳槽的员工
第二篇:JAVA高级工程师简历[推荐]
个人基本信息 姓 名 XX 性 别 男 政治面貌 团员 年 龄 24 籍 贯 辽宁省 民 族 汉 族 专 业 计算机科学与技术 学 历 本 科 毕业学校 吉林大学 学 院 计算机控制与工程学院 联系电话 13439XXXXXXXXXX E-Mail ? 求职意向 希望从事行业: 软件开发 意向工作性质: 全职 希望从事职业: JAVA工程师 期望工作地区: 北京 教育情况 个人能力 熟练运用Java语言以及相关技术进行应用开发。熟练运用MVC设计模式及Struts、Spring、Hibernate 进行Jsp、Servlet、JavaBean、XMl等技术的应用开发。熟悉软件工程规范,掌握UML建模语言建模工具PowerDesigner,版本控制工具CVS。熟练使用Oracle、MySql Access 等大中型数据库管理工具。熟练使用Eclipese NetBean等开发平台,以及Tomact WebLogic 等中间服务器。熟练掌握 Html JavaScript 语言 能运用 Photoshop、Firework、Dreamweaver、Flash等工具进行网页制作。了解并能运用 Ajax DIV+CSS 等技术。2007年考取的中国软件考试的数据库系统工程师(中级)教育 2004/09-2008/06 吉林大学 计算机科学与技术 本科 毕业设计(论文)题目 基于J2EE平台的考试管理系统的设计(Struts+Hibernate+Mysql)工作经历 2008/6-至今 在北京XX软件科技发展有限公司 JAVA与JSP开发 开发语言JAVA、JSP,开发技术Struts、WebService、XML,数据库SYBASE,涉及技术windows2003 服务器管理,FTP服务器架设 自我评价 为人诚实守信,做事认真细致。有很强的上有上进心,有较强的团队意识。有亲和力,适应能力强,学习和接受新鲜事物快。业余爱好 金融及经济发展,足球,编程。项目经验 2008/03-2008/04 项目名称:物资管理系统 软件环境:Java J2EE JSP Struts Hibernate 开发工具:Eclipse MySQL Tomcat Dreamweaver 项目描述:采用Struts、Hibernate整合技术,实现了物资入出库及统计等功能。责任描述:独立完成,负责入出库以及统计。项目总结:通过这个项目的开发,对SH有了更深一层的认识。同时也认识到学习的重要性,软件行业技术更新的很快,每天都要去努力的学习新知识。2008/03-2008/04 项目名称:在线留言板 软件环境:Java J2EE JSP Struts Hibernate Spring 开发工具:Eclipse MySQL Tomcat Dreamweaver Fireworks 项目描述:采用Struts、Hibernate、Spring 整合技术,实现了留言功能。责任描述:独立完成,负责留言。项目总结:本项目的难点在SSH的整合,有些地方用到了Ajax技术。
第三篇:Java面试总结~~~~
Java面试总结~~~ 学习过程:
根据个人大学中的学习学习状况的过程如下: 1.看面试题
正常人第一步肯定都会看面试题,我也不例外,在看的过程中,我发现有些文章写的不错,对我帮助不小值得推荐,如下:
Java面试题全集(上)很多基础的东西,建议先看。
各大公司Java后端开发面试题总结 面试心得与总结—BAT、网易、蘑菇街 关于Java面试,你应该准备这些知识点
2.深入学习
在看面试题的过程,你会遇到一些自己没接触过的或者以前没深入学习过的知识,例如最常问的HashMap内部实现原理,这就促使你得开始去看jdk的源码或者是学习一些新的东西。看源码是很重要的一步,起步很难,但是会让你收益良多,看源码的过程如果碰到无法理解的地方,可以百度看下别人的理解。我学习源码的过程中,看过几个人的关于源码的文章写的很不错,如下: 五月的仓颉 占小狼
zhangshixi的Core java系列 3.熟悉项目
找出自己工作以来开发过的最叼的功能,将整个功能的流程和涉及的东西吃透。项目是面试中必问的环节,一般是以一个功能点为基础展开问,因此你必须对这个功能有很深的认识,不能有模糊的地方。如果有时间,能把涉及到的知识点也搞懂最好。
4.做面试题
有不少公司是有面试的,如果你没有准备过,很容易在各种小地方犯错,建议去一些面试题网站多做些题目,我自己是用的牛客网。
5.学习记录
把自己每天的学习时间和学习内容记录下来,可以让自己更有动力的学习,学习是一个枯燥的过程,你必须让自己时刻保持有动力。
投简历、约面试环节
1.在哪些网站投?
拉勾网、BOSS直聘、猎聘网。
2.是否该海投?
投简历分为两个情况。
1)没有社招面试经验:建议采取海投的方式,只要职位要求跟自己比较匹配都可以投,累计面试经验。这个环节可以把投简历的网站增加两家:智联和无忧。2)自认为社招面试经验已经足够:投那些职位匹配、公司满意的职位。公司评价可以去看准网、百度、知乎等查询。
3.一天约几家面试合适?
最理想的情况为2家面试,上午一般在10点左右,下午一般在2点左右。建议把理想的公司放下午,因为下午的时间比较充足,可以让公司更充分的了解你。我开始面的时候,每次都是上午面的不好,下午面的不错。
4.投简历经常没下文?
我当初也没想到简历筛选这关有这么难,可能是我的简历确实亮点不多,再者HR很多都不是行内人,因此他们看得最直接的就是你上家的公司和你毕业的学校,如果你不是从牛逼的公司/学校出来,可能会碰到和我一样的情况,应对的办法就是多投。
5.是否该裸辞?
我一开始是边上班边投,然后利用调休时间,或者请假去面试。后来,面试机会越来越多,请假太频繁了,自己都不好意思了,并且自己也已经有足够的信心,这个时候我选择了裸辞。裸辞还有一个原因是,在面试过程中你会发现,有的公司要人要的紧,如果你的辞职流程过长可能会导致你错过这个公司。
6.注意事项 1)面试前一天把路线和时间算好,最好别迟到。2)背个书包,带好简历、充电宝、纸巾、雨伞。
面试环节
1.笔试常见的问题?
面试常见的问题上面给的面试题链接基本都有。我只提几点:1)写SQL:写SQL很常考察group by、内连接和外连接。2)手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。
2.面试流程?
1)让你自我介绍 2)问Java基础知识 3)问项目
4)情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。
5)你有什么想问面试官的
3.面试常问的知识点? 1)集合相关问题(必问):
HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。
HashMap和Hashtable的区别。ArrayList、LinkedList、Vector的区别。HashMap和ConcurrentHashMap的区别。HashMap和LinkedHashMap的区别。HashMap是线程安全的吗。
ConcurrentHashMap是怎么实现线程安全的。2)线程相关问题(必问): 创建线程的3种方式。什么是线程安全。
Runnable接口和Callable接口的区别。wait方法和sleep方法的区别。
synchronized、Lock、ReentrantLock、ReadWriteLock。介绍下CAS(无锁技术)。什么是ThreadLocal。创建线程池的4种方式。
ThreadPoolExecutor的内部工作原理。分布式环境下,怎么保证线程安全。
Java学习交流QQ群:589809992 我们一起学Java!3)JVM相关问题: 介绍下垃圾收集机制(在什么时候,对什么,做了什么)。垃圾收集有哪些算法,各自的特点。类加载的过程。双亲委派模型。有哪些类加载器。
能不能自己写一个类叫java.lang.String。4)设计模式相关问题(必问):
先问你熟悉哪些设计模式,然后再具体问你某个设计模式具体实现和相关扩展问题。
5)数据库相关问题,针对Mysql(必问): 给题目让你手写SQL。有没有SQL优化经验。Mysql索引的数据结构。SQL怎么进行优化。SQL关键字的执行顺序。有哪几种索引。
什么时候该(不该)建索引。Explain包含哪些列。
Explain的Type列有哪几种值。6)框架相关问题:
Hibernate和Mybatis的区别。Spring MVC和Struts2的区别。Spring用了哪些设计模式。Spring中AOP主要用来做什么。Spring注入bean的方式。什么是IOC,什么是依赖注入。Spring是单例还是多例,怎么修改。Spring事务隔离级别和传播性。
介绍下Mybatis/Hibernate的缓存机制。Mybatis的mapper文件中#和$的区别。
Mybatis的mapper文件中resultType和resultMap的区别。
Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。
Java学习交流QQ群:589809992 我们一起学Java!7)其他遇到问题: 介绍下栈和队列。IO和NIO的区别。接口和抽象类的区别。
int和Integer的自动拆箱/装箱相关问题。常量池相关问题。==和equals的区别。重载和重写的区别。
String和StringBuilder、StringBuffer的区别。
静态变量、实例变量、局部变量线程安全吗,为什么。try、catch、finally都有return语句时执行哪个。介绍下B树、二叉树。ajax的4个字母分别是什么意思。xml全称是什么。分布式锁的实现。
分布式session存储解决方案。常用的linux命令。
一些经验:
1.先投一些普通公司,等面出了心得再去投理想的公司。2.不熟悉的技术不要主动提。
3.对于那种实习期6个月还打8折的公司,除非你没有其他选择了,否则不要去。4.小公司喜欢在薪水上压你,开的时候适当提高。5.不要去参加招聘会,纯粹是浪费时间。
6.把面试当作一次技术的交流,不要太在意是否能被录取。
7.公司一般面完就决定是否录取了,让你回去等消息这种情况一般没戏,无论你自己觉得面的有多好。
8.尽量少通过电话面试,效果不好。
9.在面试的日子里,要保持每天学习,无论是学习新东西还是复习旧东西。10.拿到offer了,问问自己这个公司让自己100%满意了吗,如果不是,请继续努力找更好的。
11.通过面试官可以大概判断这家公司的情况。
12.拉勾投的简历很多会被筛掉,但是拉勾还是面试机会的最主要来源。13.理想的公司可以多投几次,我有好几次都是第一次投被筛掉,多投几次就过的经验。
14.问到自己有深入研究过的知识,抓住机会好好表现,不要轻易放过。
第四篇:java高级工程师要求
任职要求:
1.从事java后端开发4年及以上,具有根据业务需求进行独立设计的能力 2.熟练使用Spring及SpringMVC开发
3.熟练使用常用持久层框架MybatisHibernate 4.熟悉java多线程及并发线程池使用
5.熟练使用Mysql基本操作,有一定sql优化经验
6.有使用Memcached/redis框架其中之一进行缓存开发的经验 7.会简单使用js/jquery等常用功能进行前端页面开发
任职要求:
1、本科及以上学历,三年以上基于Java语言开发经验;
2、精通J2EE架构,精通常用的设计模式,精通数据持久化、缓存、消息、通讯等的相关开源框架,对大容量、高并发系统的设计与调优有丰富经验尤佳;
3、熟悉TCP/IP协议,熟悉java网络编程,熟悉NIO,熟练使用相关框架,如Netty、Mina等;深入理解序列化与反序列化机制;
4、熟练使用redis、memcache 等缓存中的一种;
5、熟悉至少一种Web开发框架(Spring+Mybatis),对JS、CSS、HTML能熟练的运用;熟悉Spring boot, Spring cloud者优先考虑
6、熟悉Linux操作系统,熟悉Tomcat等主流web服务器;
7、至少熟悉一种关系数据库如mysql,并能根据业务需求设计数据库结构,有NoSQL经验者优先;
8、诚信正直,积极主动,有较强的责任心,并具备良好的沟通能力、理解能力和较强的学习能力,具备团队合作精神;
9、有以下经验者优先考虑:分布式Socket通讯、分布式队列、分布式任务分发框架、全文检索、海量数据存储与分布式存储技术。
编程专业相对于计算机领域其他专业来讲,是一门比较难以修炼的专业,此专业如果想要大成,需要修行之人心性极佳,踏踏实实,耐得住寂寞,受得住冷落。所以一位优秀的软件开发工程师是非常难得的。老师就是编程专业出身,并且有很多从事Java编程的朋友,总结了一下,一位优秀的Java开发工程师需要身怀以下十项技能:
1、语法:必须比较熟悉,在写代码的时候,IDE(Integrated Development Environment,集成开发环境)的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误,并且知道任何修正。
2、命令:必须熟悉JDK(Java Development Kit,Java开发工具箱——JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。)带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API(Application Programming Interface,应用程序编程接口):Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:
◆java.lang包下的80%以上的类的功能的灵活运用。
◆java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer.◆java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。
◆java.math包下的100%的内容。
◆java.net包下的60%以上的内容,对各个类的功能比较熟悉。
◆java.text包下的60%以上的内容,特别是各种格式化类。
◆熟练运用JDBC.80%、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java.◆AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。
◆Swing的基本内容,和AWT的要求类似。
◆XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
5、测试:Junit测试是程序员测试,即所谓白盒测试。一位合格的Java开发工程师必须熟悉使用junit编写测试用例完成代码的自动测试。
6、管理:必须熟悉使用Ant(中文译为蚂蚁,是一种基于Java的build工具。)完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。
7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
8、思想:必须掌握OOP(Object Oriented Programming,面向对象编程)的主要要求,这样使用Java开发的系统才能是真正的Java系统。
9、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。
10、博学:掌握J2EE、Oracle、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。
1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。
2.你需要学习Java语言的基础知识以及它的核心类库(collections,serialization,streams,networking,multithreading,reflection,event,handling,NIO,localization,以及其他)。
3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT,SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,例如hibernate,JDO,CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。
6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运用,比如:Oracle,MySQL,mssqlserver。
7.你需要学习JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,codesigning,digitalsignatures,cryptography,certification,Kerberos,以及其他)还有不同的安全/认证 API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE(JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS(JavaGeneralSecurityService)。
8.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。
9.你需要熟悉主流的网页框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他们下面的涉及模式,如MVC/MODEL2。
10.你需要学习如何使用及管理WEB服务器,例如tomcat,resin,Jrun,并且知道如何在其基础上扩展和维护WEB程序。
11.你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。
12.你需要掌握各种流行中间件技术标准和与java结合实现,比如Tuxedo、CROBA,当然也包括javaEE本身。
13.你需要学习最少一种的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。
14.你应该学习如何利用JAVAAPI和工具来构建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ(SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging),JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。
15.你需要学习一门轻量级应用程序框架,例如spring,PicoContainer,Avalon,以及它们的IoC/DI风格(setter,constructor,interfaceinjection)。
16.你需要熟悉不同的J2EE技术,例如JNDI(JavaNamingandDirectoryInterface),JMS(JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX(JavaManagementeXtensions),以及JavaMail。
17.你需要学习企业级JavaBeans(EJB)以及它们的不同组件模式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean-ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者 Message-DrivenBeans(MDB)。
18.你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,JBoss等,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。
19.你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流JAVA规格和执行。例如AspectJ和AspectWerkz。
20.你需要熟悉对不同有用的API和frame work等来为你服务。例如Log4J(logging/tracing),Quartz(scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching),Lucene(full-textsearch),JakartaCommons等等。
21.如果你将要对接或者正和旧的系统或者本地平台,你需要学习JNI(JavaNativeInterface)and JCA(JavaConnectorArchitecture)。
22.你需要熟悉JINI技术以及与它相关的分布式系统,比如掌握CROBA。
23.你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。
24.你应该熟练掌握一种JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:)
25.JAVA(精确的说是有些配置)是冗长的,它需要很多的人工代码(例如EJB),所以你需要熟悉代码生成工具,例如XDoclet。
26.你需要熟悉一种单元测试体系(JNunit),并且学习不同的生成、部署工具(Ant,Maven)。
27.你需要熟悉一些在JAVA开发中经常用到的软件工程过程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。
28.你需要能够深入了解加熟练操作和配置不同的操作系统,比如GNU/Linux,sunsolaris,macOS等,做为跨平台软件的开发者。
29.你还需要紧跟java发展的步伐,比如现在可以深入的学习javaME,以及各种java新规范,技术的运用,如新起的web富客户端技术。
30.你必需要对opensource有所了解,因为至少java的很多技术直接是靠开源来驱动发展的,如java3D技术。
第五篇:Java高级工程师笔试试卷
笔试试卷
一、选择题(共25题,每题3分,满分75分)1)使用面向对象思想进行设计的基本步骤不包括()。
2)在UML中,类图是一个包含3个部分的矩形,各部分内容不包括()。
3)下面关于Java接口的说法错误的是()。
4)在Java接口中定义常量,下面语法错误的是()。
5)在Java接口中,下列选项中属于有效的方法声明是()。
A.public void aMethod();B.void aMethod();A.static int MALE = 1;B.final int MALE = 1;C.int MALE = 1;D.private int MALE = 1;
A.类名 B.属性 C.方法
D.类和类之间的关系 A.发现类 B.发现对象 C.发现类的属性 D.发现类的方法
A.一个Java接口是一些方法特征的集合,但没有方法的实现
B.Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为 C.Java接口中可以声明私有成员 D.Java接口不能被实例化
C.void aMethod(){} D.private void aMethod();6)给定如下Java程序代码,在横线处加入()语句,可以使这段代码编译通过。
interface Parent{ public int count(int i);} public class Test implements Parent { public int count(int i){ return i % 9;} public static void main(String[] args){ ________________ int i = p.count(20);} }
A.Test p = new Test();B.Parent p = new Test();C.Parent p = new Parent();D.Test p = new Parent();7)以下选项中关于Oracle中数据库的说法错误的是()。
8)在Oracle中,使用数据库表student存放学生信息,其中birthday字段存放学生生日,查询该表中1980年9月15日及以后的学生信息,以下SQL语句正确的是()。
A.SELECT * FROM student WHERE birthday>='1980-09-15';B.SELECT * FROM student WHERE birthday >='15-9月-1980';C.SELECT * FROM student WHERE TO_DATE(birthday,'YYYY-MM-DD')>='2009-10-1';D.SELECT * FROM student WHERE birthday>=TO_CHAR('1980-09-15','YYYY-MM-DD');
A.数据库在逻辑上表现为数据文件、日志文件和控制文件等 B.必须首先创建数据库,然后才能使用Oracle C.可在安装Oracle软件时同时创建数据库,也可以在安装后再单独创建数据库 D.每个启动的数据库都对应一个数据库实例,然后由这个实例来访问和控制数据库 9)一个Oracle数据库表包含性别字段,在该字段上建立()最合适。
10)以下选项中关于DAO模式的说法错误的是()。
11)以下选项中关于Java分层开发技术中实体类的说法错误的是()。
12)以下选项中关于XML文档的说法正确的是()。
13)以下选项中关于DOM和SAX的说法错误的是()。
A.DOM和SAX都是目前常用的XML解析技术 B.DOM把XML文档映射成一个倒挂的树状结构
C.DOM模型内存消耗小,DOM解析器能提供更好的性能优势
A.在分层开发中,不同层之间可以通过实体类来传输数据 B.实体类一般对应一个数据库表,其属性和数据库表的字段对应 C.实体类最好实现java.io.Serializable,支持序列化机制 D.实体类的属性和方法一般均使用public修饰
A.唯一索引 B.位图索引 C.基于函数的索引 D.B树索引
A.DAO是“Data Access Object”的含义,实现对数据库资源的访问 B.DAO模式中要定义DAO接口和实现类,隔离了不同数据库的实现 C.DAO负责执行业务逻辑操作,将业务逻辑和数据访问隔离开来 D.使用DAO模式提高了数据访问代码的复用性
A.XML文档中使用用户自定义标签,标签名不区分大小写 B.可以使用DTD或者XSD定义XML文档结构 C.XML文档的作用是数据存储、数据交换、数据显示 D.XML文档总是以一个XML声明开始
D.SAX读取文档时会激活一系列事件,推给事件处理器,由事件处理器来访问文档 14)以下选项中关于Java中文件输入输出的说法正确的是()。
15)给定如下Java代码,实现文件复制功能,其中第()行代码有错误。
public class TestIO { public static void main(String[] args)throws Exception {
Reader fr = new FileReader(“c:source.txt”);//第三行
Writer fw = new FileWriter(“c: arget.txt”);char ch[] = new char[1024];int length = fr.read(ch);//第六行 while(length!=-1){ fw.write(ch);//第八行
} length = fr.read(ch);A.在Java中,文件的输入输出功能是通过流来实现的 B.如果要把数据写入到一个文件中,需要创建一个输入流对象 C.字符流在某些方面比如汉字的处理,比字节流更高效
D.可以通过Reader r=new Reader(“c:pet.txt”)来创建一个输入流对象
if(null!= fr)fr.close();//第十三行 if(null!= fw)fw.close();} }
A.三 B.六 C.八 D.十三
16)在Java EE中,使用数据源与JNDI连接数据库时,应在Tomcat的()文件中配置数据库的驱动程序。
17)DataSource配置如下:
A.web.xml B.server.xml C.context.xml D.conf.xml
type=“javax.sql.DataSource” maxActive=“100” maxIdle=“30” maxWait=“10000” username=“luckboy” password=“123” driverClassName=“com.microsoft.jdbc.sqlserver.SQLServerDriver” url=“jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=info” /> 在项目中通过JNDI获取数据源jdbc/info代码如下: public class ConnectionManager { private Connection conn;public void getList(){ try { _____①______;DataSource source = ______②______;conn = source.getConnection();...} catch(Exception e){ } e.printStackTrace();} } 按照顺序,以下()选项可以正确填写在对应的横线处。A.Context ct= new Context()ct.lookup(“/jdbc/info”)B.Context ct= new Context()(DataSource)ct.lookup(“java:comp/env/jdbc/info”)C.Context ct=new InitialContext()(DataSource)ct.lookup(“/jdbc/info”)D.Context ct=new InitialContext()(DataSource)ct.lookup(“java:comp/env/jdbc/info”)18)在JSP中使用SmartUpload组件进行文件上传必须遵守以下要求()。 19)下面选项中,关于JavaEE的三层结构的说法错误的是()。A.在项目中添加smartupload.jar文件 B.必须为form标签指定enctype属性,属性值为“multipart/form-data” C.form标签的method属性可以取值为“post”或“get” D.在form中使用text控件来选择文件 A.表示层为用户提供一种交互式操作界面,一般为Web应用程序 B.表示层依赖业务逻辑层,业务逻辑层也依赖表示层 C.表示层依赖数据访问层,数据访问层不依赖表示层 D.使用三层结构,职责划分清晰,可以进行无损替换 20)下面选项中,关于EL表达式使用正确的是()。 21)在JSP页面中使用 22)以下对Servlet生命周期的描述中,错误的是()。 23)在Servlet中有如下代码段: ...public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { RequestDispatcher dis;_____________________________;dis.forward(request,response); A.&{bean.name} B.${bean[name]} C.${bean.age+15} D.${bean.[“name”]} A. C.Servlet容器调用Servlet实例的destroy()方法来释放一个Servlet所使用的资源 D.调用destroy()后,被释放实例随后会被垃圾收集器所回收 }...那么能够正确填写在横线处的选项是()。A.dis = response.getRequestDispatcher(“error.jsp”);B.dis = request.getRequestDispatcher(“error.jsp”);C.dis = request.RequestDispatcher(“error.jsp”);D.dis =new RequestDispatcher(“error.jsp”);24)下面选项中关于Ajax中的XMLHttpRequest对象的说法正确的是()。 25)关于使用Ajax实现搜索的自动提示,下面选项中说法错误的是()。 A.当键盘的按键抬起时,触发onkeyup键盘事件,发送异步请求 B.服务器根据用户输入的关键字,从数据库中搜索相关信息,并返回到客户端 C.需要将文本框的autocomplete属性设置为on,以免影响搜索提示 D.当搜索提示出现后,需要将其中选中的搜索项突出显示,以便区分 A.XMLHttpRequest对象提供了异步发送请求的能力 B.XMLHttpRequest对象的open()方法用于建立)到服务器的连接并发送请求 C.通过XMLHttpRequest对象的readyState属性来指定回调函数 D.XMLHttpRequest对象的responseText属性表示从服务器端异步响应的文本内容 二、问答题(共5题,每题5分,共25分) 1、this和super的异同 2、java捕获异常的方式有哪几种,分别给以说明。 3、类的加载过程? 4、什么是事务? 5、Jsp内置对象有哪些,分别说明之? 试试卷答案 一、选择题(25*3=75分)1.B 2.D 3.C 4.D 5.AB 6.AB 7.A 8.B 9.B 10.C 11.D 12.BD 13.C 14.AC 15.C 16.C 17.D 18.AB 19.BC 20.C 21.D 22.A 23.B 24.AD 25.C 二、简答题(共5题,每题5分,共25分) 1、答:this引用当前对象;super引用当前对象的父类; 使用情况: 1)super.variable:用来访问父类被隐藏的成员变量; 2)super.Mathod([paramlist]):用来调用父类中被隐藏的方法; 3)super.([paramlist]):用来调用父类中的构造函数; 在类方法(static)中,不能使用this和super修饰符 2、try catch finally语句块的形式;throw exceptions方式。 3、答:类的初始化过程:当创建一个对象时,对象的各个变量根据其类型被设置为相应的默认初始值,然后调用构造方法,而每次调用构造方法都要执行三个阶段: 1)调用超类的构造方法; 2)由初始化语句对变量进行初始化; 3)执行构造方法的体。 4、答:事务处理是由以一个单一的逻辑单位完成的一系列操作,它可以由一系列的操作组成,如果在该单位包含的操作执行完毕后没有发生错误,那么它所做的改变就是永久的了;一旦发生错误就会回滚,不会做任何修改或改变。 5、答:HttpServletRequest类的Request对象; HttpServletResponse类的Response对象; JspWriter类的out对象; HttpSession类的session对象; ServletContext类的application对象; PageContext类的PageContext对象; ServletConfig类的Config对象; Object类的Page(相当于this)对象; Exception