1. Servlet的基本架构

Servlet是Server与Applet的缩写,是服务端小程序的意思。是SUN公司提供的一门用于开发动态Web资源的技术。 Servlet本质上也是Java类,但要遵循Servlet规范进行编写,没有main()方法,它的创建、使用、销毁都由Servlet容器进行管理(如Tomcat)。Servlet是和HTTP协议是紧密联系的,其可以处理HTTP协议相关的所有内容。这也是Servlet应用广泛的原因之一。提供了Servlet功能的服务器,叫做Servlet容器,其常见容器有很多,如Tomcat, Jetty, resin, Oracle Application server, WebLogic Server, Glassfish, Websphere, JBoss等。

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 {}
}

Servlet详解

2. JDO是什么?

JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。

3. xml的有哪些解析技术?区别是什么?

解析方式 思想 优点 缺点
DOM 将整个xml文件读入内存,建立一个dom树来解析每个结点 a、由于整棵树在内存中,因此可以对xml文档随机访问 b、可以对xml文档进行修改操作 c、较sax,dom使用也更简单。 a、整个文档必须一次性解析完 a、由于整个文档都需要载入内存,对于大文档成本高
SAX 部分解析,基于事件驱动,可以注册自己感兴趣的事件,比如 EntityResolver, DTDHandler, ContentHandler, ErrorHandler接口,分别用于监听解析实体事件、DTD处理事件、正文处理事件和处理出错事件,默认实现类为DefaultHandler a、无需将整个xml文档载入内存,因此消耗内存少 b、可以注册多个ContentHandler a、不能随机的访问xml中的节点 b、不能修改文档
JDOM 纯java,API大量使用了Collection类,且仅使用具体类而不使用接口,自身不包含解析器,它通常使用SAX2解析器来解析和验证输入xml文件,也可以将以前构造的DOM表示作为输入,包含转换器可以将JDOM表示输出为SAX2事件流、DOM模型或XML文本文档 a、DOM方式的优点 b、具有SAX的Java规则 a、DOM方式的缺点
DOM4 目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理 最优秀的一个,集易用和性能于一身。

XPath 是一门在 XML 文档中查找信息的语言, 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。因此,对 XPath 的理解是很多高级 XML 应用的基础。
XPath非常类似对数据库操作的SQL语言,或者说JQuery,它可以方便开发者抓起文档中需要的东西。(dom4j也支持xpath)

4. 你在项目中用到了xml技术的哪些方面?如何实现的?

用到了数据存储,信息配置两方面,在做数据交换平台的时候,将数据组装成xml文件,然后将xml文件压缩加密后通过网络传送给接收者,接收解密与解压缩后再次xml文件中还原相关信息进行处理,在做软件配置时,利用xml可以很放百年的进行,软件的各种配置都可以存储在xml文件中,比如SharedPrefences。

5. EJB 与JAVA BEAN的区别?

java bean是可复用的组件,对java bean并没有严格的规范,理论上讲,任何一个java类都可以是一个bean,但通常情况下,由于java bean是被容器所创建的,所以java bean应该具有一个无参构造器,另外还要实现SErializable接口用于实现bean的持久性。java bean实际上相当于微软com模型中的本地进程内组件,然是不能被跨进程访问的。

Enterprise java bean将挡雨dcom,即分布式组件,它是基于java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程,跨计算机),但是EJB必须被部署在诸如Webspere/WebLogic这样的容器内,EJB客户从不直接访问真正的组件,而是通过其同期访问,EJB容器是EJB组件的代理,EJB组件由容器所创建和管理,客户通过容器来访问真正的组件。

6. struts的应用

Struts是采用java servlet/javaServer pagers技术,开发web应用程序的开放源码的framework。采用struts能开发出基于mvc设计模式的应用框架,struts有如下的主要功能:

  1. 包含一个controller servlet,能将用户送到相应的action对象
  2. jsp自由tag库,并且在controller servlet中提供关联支持,帮助开发员简历交互式表单应用
  3. 提供了一系列实用对象:xml处理,通过java reflection apis自动处理javabeans属性,国际化的提示和消息。

7. forward和redirect的区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把相应内容读取过来,然后在讲这些内容发送给浏览器,浏览器根本不知道服务器发送的内容是从哪来的,所以它的地址栏中还是原来的地址。

redirect就是服务端根据逻辑,发送一个状态码,高速浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

8. Servlet的生命周期,以及和CGI的区别

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其Service方法,Service方法自动派遣运行与请求对应的doXXXfangfa (doget, doPost)等,当服务器决定将实例销毁的时候调用其Destory方法。

与CGI的区别:Servlet处于服务器进程中,它通过多线程方式运行其Service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,搜易效率上低于CGI。

9. 说出ArrayList,Vector,LinkedList的存储性能和特性。

对比/种类 ArrayList Vector LinkedList
实现方式 数组 数组 双向链表
存储容量 大于实际元素 大于实际元素 等于实际元个数
线程安全 不安全 安全(利用synchronized) 不安全
扩充方式 每次增加原来的一半 每次增加原来的一倍

10. 同步和异步有什么异同,在什么情况下分别使用他们?举例说明。

如果数据在线程间共享,例如正在写的数据以后肯呢个被另一个线程读到,或者正在读的数据已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

当应用程序在一个对象上调用了一个需要花费时间很长执行的方法,并且不希望让程序等待方法的执行时,就应该使用异步编程,在很多情况下采用异步途径更有效率。

每日十道面试题(五)相关推荐

  1. 【前端小小白】—每日5道面试题打卡(十五)

    [前端小小白]-每日5道面试题打卡(十五) 每天进步1% 不多 就1% 一.数组的方法有哪些? var list = [1,2,3];list.pop();//删除数组的最后一个元素 var list ...

  2. 【前端】—每日5道面试题打卡(十六)

    [前端]-每日5道面试题打卡(十六) 每天进步1% 不多 就1% 一.输出今天的日期,以 YYYY-MM-DD 的方式,比如今天是 2021 年7 月 22 日,则输出2021-07-22 ? 二.希 ...

  3. 求职无忧之 JavaScript 每日 3 道 面试题

    求职无忧之 JavaScript 每日 3 道 面试题 请自行思考整理相应的面试题,使用精炼的语言作答填写答案,每天早上 8:20-9:20 认真背记对应的面试题 01.什么是深浅拷贝?如何实现深拷贝 ...

  4. (Java实习生)每日10道面试题打卡——JavaWeb篇

    临近秋招,备战暑期实习,祝大家每天进步亿点点!打卡 Day05! 本篇总结的是javaweb相关的面试题,后续会每日更新~ 剧透:明日更新 JVM 面试题,相关知识不牢固的先去补一补哦 O(∩_∩)O ...

  5. 二十道面试题成都至少16k

    面试题: HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理 Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的 ...

  6. (Java实习生)每日10道面试题打卡——Java基础知识篇

    临近秋招,备战暑期实习,祝大家每天进步亿点点! 本篇总结的是Java基础知识相关的面试题,后续会每日更新~ 1.请你说一下什么是面向对象? Java是面向对象的编程语言,不同于C语言是面向过程的.对于 ...

  7. (Java实习生)每日10道面试题打卡——Java基础知识篇2

    临近秋招,备战暑期实习,祝大家每天进步亿点点! 本篇总结的是Java基础知识相关的面试题,后续会每日更新~ 1.请你说一下Java中的IO流?以及他们的分类和作用? IO 流的分类: 按照数据流的方向 ...

  8. 探讨Java中最常见的十道面试题(超经典)

    第一,谈谈final, finally, finalize的区别.  final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明 ...

  9. (Java实习生)每日10道面试题打卡——Java简单集合篇

    临近秋招,备战暑期实习,祝大家每天进步亿点点! 本篇总结的是Java集合知识相关的面试题,后续会每日更新~ 1. 请问如何使ArrayList保证线程安全? 答案如下: // 方式一: // sync ...

最新文章

  1. 012_Switch开关
  2. 细思极恐!未来百万人将下岗十大职业将消失
  3. JS中基本数据类型和引用类型最根本的区别
  4. 深入理解Java虚拟机——第十二章——Java内存模型与线程
  5. webstrom 中 plugins error 设置里 Languages Frameworks里面没有JavaScript?
  6. 【英语-刘晓艳-词汇】词汇06
  7. js 去重某个键值 数组对象_JS数组去重常见方法分析
  8. java拼装树_java 数据拼装成树结构
  9. 下次偶转贴贴子时得加上转贴才行~~~
  10. Ruby设计模式透析之 —— 策略(Strategy)
  11. 练习题|python常用模块
  12. VS2015+WDK10+Win10 Win7以上系统驱动发开环境搭建
  13. python opencv实现 12色相环、24色相环(基于RGB空间和基于HSV空间实现)
  14. 「津津乐道播客」#309 厂长来了:我们买买买了这么多年,然后呢?(feat. 只二)...
  15. 【转】安装虚拟机VMware及在VMware下安装Ghost XP系统图文教程(附PQ分区及VMwa
  16. 如何在PC,Mac或iPhone上启用iTunes家长限制
  17. 【转载】C/C++ 笔试面试(1)—— sizeof
  18. 剖析公司技术栈,看看是否对大家适用!
  19. 千锋android培训学院!双非渣本Android四年磨一剑,真香!
  20. MATLAB数据转化num,str,cell,char

热门文章

  1. 【男人不可以穷】下载
  2. 3d Max安装失败(Microsoft Visual C++ 2010 Redistributable)
  3. C杂讲 字符串格式化 组包与解包
  4. ZoomKeeper
  5. VASP自旋(NM、AM、AFM)
  6. 如何从iPhone的音乐应用程序中删除Apple Music
  7. 智慧安全3.0的融合之道
  8. 海康SDK的NET_DVR_GET_FTPCFG_V40
  9. NetInside可观测分析平台上线了
  10. vcpu和cpu的关系