JAVA面试题目(一)

   我实习期间,面试了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

  

 (1).session对象

  前面在Servlet部分已经提到,过当客户第一次访问Web服务器发布目录(一个Web服务器有一个或多个"发布目录")下的网页文件时,Web服务器会自动创建一个session对象,并为其分配唯一的ID号,客户可以将其需要的一些信息保存到该session对象,以便需要时使用。session对象就是指通过getSession法办法得到的对象,在JSP中是隐含对象,关于session对象的使用读者可以参见Servlet API

 (2).application对象

  当Web服务器启动时,Web服务器会自动创建application对象。Application对象一旦创建,它将一直存在,直到Web服务器关闭。因此,application对象可以实现多客户间的数据共享。

  一个Web服务器常常有多个发布目录,当Web服务器启动时,它自动为每个发布目录都创建一个application对象,这些application对象各自独立,而且和发布目录一一对应。

  application的生命周期:从Web服务器启动到Web服务器关闭。

  application在生命周期内的作用范围:在同一个发布目录A下的所有网页文件中,都可以对"和发布目录A对应"的application对象进行操作,而且访问发布目录A的所有客户都共用一个application对象。因此,当在该application中存放数据信息时,所有访问该发布目录A的客户都能够对其进行访问,实现了多客户之间的数据共享。 


有一个面试官问过session和 application的区别。  



4、string、stringBuffer、stringBuilder的区别

  String是非可变类,其对象为字符串常量,不适合频繁改变,如插入(insert),删除(delete),添加(append)等        

       StringBuffer是可变类,其对象为可修改的字符序列,比较适合用来频繁的修改字符串,比如常用的是添加(append);而且是线程安全的。当需要多次修改时,尽量用这个类。  

StringBuilder是可变类,但基于单线程的,也就是说多线程是不安全的,其余和StringBuffer一样。所以速度相对较快,如果不涉及多线程,建议使用这个。  

  

5、Spring使用了JAVA中的什么技术

                 答案:  java中的反射技术

         然后变态的面试官又会问:java的反射技术原理?

             

      






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值