我实习期间,面试了8家公司,我的印象中,有很多java面试的题目。再次分享给大家,以便以后自己找工作也可以作为参考。
1、servlet的生命周期
(1)装载servlet,这一项操作一般是动态执行的。 。然而,Servlet通常会提供一个管理的选项,用于在Servlet启动时强制装载和初始化特定的Servlet
(2)server创建一个实例
(3)server调用servlet的init方法
(4)一个客户端请求达到server
(5)server创建一个请求对象
(6)server创建一个响应对象
(7)service激活servlet的service方法,传递请求和响应对象作为参数
(9) service方法使用响应对象的方法。将响应传回Server,最终到达客户端。Service方法可能激活其他方法以处理请求。如doGet,doPost或其他程序员自己开发的方法
(10) 对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此servlet的service方法,将这两个对象作为参数传递给它,如此重复以上的循环,但无需再次调用init方法,Servlet一般只初始化一次
(11) 当Server不再需要Servlet时,比如当Server要关闭时,Server调用Servlet的destroy
2、jsp的有点
(1)一次编译,多次,多处运行,代码的执行效率高
JSP的脚本语言是java语言,因此它具有java语言的一切特性。同时,JSP也支持现在大部分平台。当JSP
第一次被请求时,JSP页面转换成Servlet,然后被编译成.class文件,以后(除非页面有改动或web服务器被重新
启动)再有客户端请求改JSP页面时,JSP页面不被重新编译,而是直接执行已编译好的.class文件,因此执行效率
特别高
(2)组件的重用性。
可重用的。跨平台的javabeans和EJB组件,为JSP程序的开发提供方便,我们可以将复杂的处理程序(如页面需要
现实的动态的内容对数据库的操作)放到组件中。可以多次使用这些组件,极大的减少了再JSP页面中重写重复的代码。
(3)将内容的生产和现实进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者脚本来生成页面上的动态内容。生成动态内容的语句一般被封装在JavaBean组件、EJB组件或JSP脚本段中。这样,页面的设计人员和页面的编程人员可以同步进行。同时在客户端通过查看源文件,看不到JSP标识的语句,更看不到JavaBean和EJB组件,也可以保护源程序的代码。 |
3、JSP九大内置对象
request response page config application out session exception pageContext
4、string、stringBuffer、stringBuilder的区别
String是非可变类,其对象为字符串常量,不适合频繁改变,如插入(insert),删除(delete),添加(append)等
StringBuffer是可变类,其对象为可修改的字符序列,比较适合用来频繁的修改字符串,比如常用的是添加(append);而且是线程安全的。当需要多次修改时,尽量用这个类。
StringBuilder是可变类,但基于单线程的,也就是说多线程是不安全的,其余和StringBuffer一样。所以速度相对较快,如果不涉及多线程,建议使用这个。
5、Spring使用了JAVA中的什么技术
答案: java中的反射技术
然后变态的面试官又会问:java的反射技术原理?