面试集锦

本文深入探讨了Hibernate的工作原理,通过文件将对象与数据库表映射,简化数据库操作;阐述了MVC架构的工作原理,强调其模块化设计;解释了WebService的概念与优势,以及如何在不同环境中使用;介绍了HashTable的原理及其与HashMap的区别;最后讨论了ArrayList与Vector的区别,并对比了HashMap与HashTable的主要特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Hibernate的工作原理

通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的。

2. MVC的工作原理

3. 什么是Web Service

答: Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。
   Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。

 优势:
     (1).跨平台。
     (2).SOAP协议是基于XML和HTTP这些业界的标准的,得到了所有的重要公司的支持。
     (3).由于使用了SOAP,数据是以ASCII文本的方式而非二进制传输,调试很方便;并且由于这样,它的数据容易通过防火墙,不需要防火    墙为了程序而单独开一个“漏洞”。
     (4).此外,WebService实现的技术难度要比CORBA和DCOM小得多。
     (5).要实现B2B集成,EDI比较完善与比较复杂;而用WebService则可以低成本的实现,小公司也可以用上。
     (6).在C/S的程序中,WebService可以实现网页无整体刷新的与服务器打交道并取数。
 缺点:
     (1).WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。
     (2).WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA。

4. Hashtable的原理,并说出HashMap与Hashtable的区别   Vector 和ArrayList有什么区别?
  答:HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.

就ArrayList与Vector主要从二方面来说.

   一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

   二.数据增长:当需要增长时,Vector 默认增长为原来一培,而ArrayList却是原来的一半

就HashMap与HashTable主要从三方面来说。

   一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
   二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

   三.值:只有HashMap可以让你将空值作为一个表的条目的key或value


5. 解析XML主要方法有哪些?各有什么区别?

答: 有DOM,SAX,STAX等

DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,

适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

STAX:Streaming API for XML (StAX)

6. 设计模式 和 架构设计 的理解

架构设计也类似一种工作流,它是动态的,这点不象建筑设计那样,一开始就能完全确定,架构设计伴随着整个项目的进行过程之中,有两种具体操作保证架构设计的正确完成,那就是设计模式(静态)和工程项目方法(RUP或XP 动态的)。

设计模式是支撑架构的一种重要组件,这与建筑有很相象的地方,一个建筑物建立设计需要建筑架构设计,在具体施工中,有很多建筑方面的规则和模式。

架构设计的总体目标,可以概括下面几点:

1. 最大化的重用:这个重用包括组件重用 和设计模式使用等多个方面。

2. 尽可能的简单明了

3. 最灵活的拓展性:架构设计要具备灵活性 拓展性,这样,用户可以在你的架构上进行二次开发或更加具体的开发。


http://www.ibm.com/developerworks/cn/web/1107_chengfu_nodejs/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值