`
paddy2008
  • 浏览: 8458 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嵊州
文章分类
社区版块
存档分类
最新评论
阅读更多
46、介绍一下hibernate 的工作原理、优点以及如何优化?
答:
工作原理:
启动 Hibernate 构建 Configuration 实例,初始化该实例中的所有变量
Configuration cfg = new Configuration().configure();
b.加载 hibernate.cfg.xml 文件至该实例内存,通过 hibernate.xfg.xml 文件中
的mapping 节点配置,加载hbm.xml 文件至该实例内存;
c. 由 上 面 得 到 的 Configuration  实 例 构 建 一 个 SessionFactory  实 例
SessionFactory sf = cfg.buildSessionFactory();
d.由上面得到的SessionFactory实例创建连接 Session s = sf.openSession();
e.由上面得到的 Session 实例创建事务操作接口 Transaction 的一个实例 tx
Transaction tx = s.beginTransaction();
f.通过 Session接口提供的各种方法操作数据库的访问
g.提交数据库的操作结果 tx.commit();
h.关闭Session链接 s.close();

优点:
a.对 JDBC 访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代
码。
b.Hibernate 是一个基于 JDBC 的主流持久化框架,是一个优秀的ORM 实现。他
很大程度的简化DAO 层的编码工作
c.hibernate使用Java 反射机制,而不是字节码增强程序来实现透明性。
d.hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它
支持各种关系数据库,从一对一到多对多的各种复杂关系。
优化:
a.使用双向一对多关联,不使用单向一对多
b.灵活使用单向一对多关联
c.不用一对一,用多对一取代
d.配置对象缓存,不使用集合缓存
e.一对多集合使用Bag,多对多集合使用Set
f.继承类使用显式多态
g.表字段要少,表关联不要怕多,可以利用二级缓存

48、对 hibernate 的延迟加载如何理解,在实际应用中,延迟加载与 session
关闭的矛盾是如何处理的?
答:延迟加载就是并不是在读取的时候就把数据加载进来,而是等到使用时再加
载。那么Hibernate 是怎么知识用户在什么时候使用数据了呢?又是如何加载数
据呢?其实很简单,它使用了代理机制。返回给用户的并不是实体本身,而是实
体对象的代理。代理对象在用户调用 getter 方法时就会去数据库加载数据。但
加载数据就需要数据库连接。而当我们把会话关闭时,数据库连接就同时关闭了。
这种情况就叫做未初始化的关系。
延迟加载与 session关闭的矛盾一般可以这样处理:
1)、关闭延迟加载特性。
操作起来比较简单,因为hibernate的延迟加载特性是在hbm配置里面可控制的。
默认 lazy="true",具体配置可以查看一下相关文档,就不详细叙述了。
但使用这个解决办法带来的隐患是十分大的。
首先,出现 no session or session was closed 就证明了您已经在使用外键关
联表,如果去掉延迟加载的话,则表示每次查询的开销都会变得十分的大,如果
关联表越多,后果也可以想象得到。所以不建议使用这个方法解决。
2)、在session关闭之前把我们想要查询的数据先获取了。
首先需要了解一下 session 什么时候关闭,也就是它的生命周期。通常情况下
hibernate 会在查询数据关闭 session,而使用 getHibernateTemplate().get
方法查询后会延迟关闭的时间。会在事务结束后才关闭。
使用拦截器(Interceptor)或过滤器(Filter)控制 session。
spring 为解决 hibernate 这一特性提供的解决方案,可以有效的控制 session
生命周期。


33、解释四种会话跟踪技术?
答:隐藏表单域、URL 重写,Cookie、Session。
1.隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话
应用。
2.URL重写:URL可以在后面附加参数,和服务器的请求一起发送,这些参数为名
字/值对。
3.Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie
头标将它作为HTTP 响应的一部分传送到客户端,客户端被请求保存Cookie 值,
在对同一服务器的后续请求使用一个 Cookie 头标将之返回到服务器。与其它技
术比较,Cookie 的一个优点是在浏览器会话结束后,甚至在客户端计算机重启
后它仍可以保留其值。
4.Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一
个会话
34、J2EE 、EJB、JDBC 是一回事吗,它们之间有什么关系?
答:不是一回事,J2EE (Java 2 Platform,Enterprise Edition)是一套全然不
同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开
发与部署,进而提高可移植性、安全与再用价值。J2EE 核心是一组技术规范与
指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,
让各种依循 J2EE 架构的不同平台之间,存在良好的兼容性。其中,EJB 和 JDBC
都属于J2EE 的一部分。
36、数据连接池的工作机制是什么?
答:J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的
池连接。 客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将
其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建
连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接
表记为空闲,其他调用就可以使用这个连接。
37、什么是ORM?
答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决
面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通
过使用描述对象和数据库之间映射的元数据,将 java程序中的对象自动持
久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。
50、WEB SERVICE 名词解释。JSWDL 开发包的介绍。JAXP、JAXM 的解释。SOAP、
UDDI,WSDL 解释。
答:Web Service 是基于网络的、分布式的模块化组件,它执行特定的任务,遵
守具体的技术规范,这些规范使得Web Service 能与其他兼容的组件进行互操作;
    JAXP(Java API for XML Parsing)定义了在 Java 中使用 DOM, SAX, XSLT
的通用的接口,这样在你的程序中你只要使用这些通用的接口,当你需要改变具
体的实现时候也不需要修改代码;
    JAXM(Java API for XML Messaging)是为 SOAP 通信提供访问方法和传输机
制的API;
    WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含
面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行
抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具
体端点即组合成为抽象端点(服务);
     SOAP 即简单对象访问协议(Simple Object Access Protocol),它是用于交
换XML 编码信息的轻量级协议;
    UDDI 的目的是为电子商务建立标准;UDDI 是一套基于Web 的、分布式的、
为Web Service 提供的、信息注册中心的实现标准规范,同时也包含一组使企业
能将自身提供的Web Service 注册,以使别的企业能够发现的访问协议的实现标
准。
55、Session 的基本原理是什么?
答:Session 对象的原理在于,服务器可以为客户端创建并维护一个所谓的
Session 对象,用于存放数据。在创建 Session 对象的同时,服务器将会为该
Session对象产生一个唯一编号,这个编号称之为 SessionID,服务器以Cookie
的方式将 SessionID 存放在客户端。当浏览器再次访问该服务器时,会将
SessionID 作为 Cookie 信息带到服务器,服务器可以通过该 SessionID 检索到
以前的Session 对象,并对其进行访问。需要注意的是,此时的 Cookie 中仅仅
保存了一个 SessionID,而相对较多的会话数据保存在服务器端对应的Session
对象中,由服务器来统一维护,这样一定程度保证了会话数据安全性,但增加了
服务器端的内存开销。存放在客户端的用于保存 SessionID 的Cookie 会在浏览
器关闭时清除。我们把用户打开一个浏览器访问某个应用开始,到关闭浏览器为
止交互过程称为一个“会话”。在一个“会话”过程中,可能会向同一个应用发
出了多次请求,这些请求将共享一个Session对象,因为这些请求携带了相同的
SessionID信息。Session对象的正常使用要依赖于Cookie。如果考虑到客户端
浏览器可能出于安全的考虑禁用了Cookie,应该使用URL 重写的方式使Session
在客户端禁用Cookie 的情况下继续生效。
56、JSP 中动态INCLUDE与静态INCLUDE的区别?Servlet 中forward与redirect
的区别?
答:动态 INCLUDE用 jsp:include动作实现 <jsp:include page="head.jsp"/>
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静
态 INCLUDE用 include伪码实现,它不会检查所含文件的变化,适用于包含静态
页面<%@include file="head.htm" %>
     forward 是容器中控制权的转向,是服务器请求资源,服务器直接访问目标
地址的URL,把那个URL 的响应内容读取过来,然后把这些内容再发给浏览器,
浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来
的地址。 redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请
求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以
session,request参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的
链接地址。前者更加高效,在前者可以满足需要时,尽量使用 forward()方法,
并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其
它服务器上的资源,则必须使用 sendRedirect()方法。 
61、Servlet 是线程安全吗?以下代码中使用 synchronized 关键字的意义是什
么?Synchronized (aList){
        aList.remove (1);
     }
答:默认不是线程安全的,但是 servlet 实现了 SingthreadModel 接口 就能单
线程执行。此题中代码的意思是给aList对象加同步锁,保证 aList对象在多线
程任务环境中,每次只能够有一个线程调用 remove 方法。从而提高对 aList 对
象操作的安全性和正确性。
62、就WEB2.0 相关信息做一下描述,谈谈你对这些技术概念的认识。
答:一些WEB2.0 产品,就可以理解以上观点。
Blog:用户织网,发表新知识,和其他用户内容链接,进而非常自然的组织这些
内容。
RSS:用户产生内容自动分发,定阅。
Podcasting:个人视频/声频的发布/定阅。
SNS:blog+人和人之间的链接。
WIKI:用户共同建设一个大百科全书。
从知识生产的角度看,WEB1.0 的任务,是将以前没有放在网上的人类知识,通
过商业的力量,放到网上去。
WEB2.0 的任务是,将这些知识,通过每个用户的浏览求知的力量,协作工作,
把知识有机的组织起来,在这个过程中继续将知识深化,并产生新的思想火花;
从内容产生者角度看,WEB1.0 是商业公司为主体把内容往网上搬,而WEB2.0 则
是以用户为主,以简便随意方式,通过 blog/podcasting 方式把新内容往网上
搬;
从交互性看,WEB1.0 是网站对用户为主;WEB2.0 是以P2P 为主。
从技术上看,WEB 客户端化,工作效率越来越高。
我们看到,用户在互联网上的作用越来越大;他们贡献内容,传播内容,而且提
供了这些内容之间的链接关系和浏览路径。在 SNS里面,内容是以用户为核心来
组织的。WEB2.0 是以用户为核心的互联网

64、Jdo 是什么?
答:JDO 是 Java 对象持久化的新的规范,为 java data object 的简称,也是一
个用于存取某种数据仓库中的对象的标准化 API。JDO 提供了透明的对象存储,
因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API 的使
用)。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使开发人员解脱出
来,从而集中时间和精力在业务逻辑上。另外,JDO 很灵活,因为它可以在任何
数据底层上运行。JDBC 只是面向关系数据库(RDBMS)JDO 更通用,提供到任何
数据底层的存储功能,比如关系数据库、文件、XML 以及对象数据库(ODBMS)
等等,使得应用可移植性更强。
66、get和post 的区别?
答:Form 中的get 和 post 方法,在数据传输过程中分别对应了 HTTP 协议中的
GET 和POST 方法。二者主要区别如下:
    1)Get 将表单中数据按照 variable=value 的形式,添加到action所指向的
URL 后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post 是将
表单中的数据放在form 的数据体中,按照变量和值相对应的方式,传递到action
所指向URL;
    2)Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的
所有操作对用户来说都是不可见的;
    3)Get 传输的数据量小,这主要是因为受 URL 长度限制;而 Post 可以传输
大量的数据,所以在上传文件只能使用Post;
   4)Get 限制Form表单的数据集必须为ASCII字符,而Post支持整个 ISO10646
字符集;
   5)Get 是Form 的默认方法。
68、介绍一下spring MVC 的工作原理、用途、为什么用?
答:
工作原理:
1.spring mvc请所有的请求都提交给 DispatcherServlet,它会委托应用系统的
其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet 查询一个或多个 HandlerMapping,找到处理请求的
Controller.
3.DispatcherServlet 请请求提交到目标 Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher 查询一个或多个 ViewResolver 视图解析器,找到 ModelAndView
对象指定的视图对象
6.视图对象负责渲染返回给客户端。
用途:
JSP、Servlet、JavaBean 技术的出现给我们构建强大的企业应用系统提供了可
能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、
一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。
为什么用:
AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到
应用程序代码中。使用 AOP 后,公共服务                         (比如日志、持久性、事务等


就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂
性。IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协
作对象。正如单词 倒置 所表明的,IOC 就像反过来的 JNDI。没有使用一堆抽
象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),
每一个对象都是用其协作对象构造的。因此是由容器管理协作对象
(collaborator)。 Spring 既是一个AOP 框架,也是一 IOC 容器。 Spring 最
好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置
文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的
协作对象。
71、EJB 与JAVA BEAN 的区别?
答:Java Bean 是可复用的组件,对Java Bean 并没有严格的规范,理论上讲,
任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean 是被容器
所创建(如Tomcat)的,所以Java Bean 应具有一个无参的构造器,另外,通常
Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。Java Bean 实
际上相当于微软COM 模型中的本地进程内COM 组件,它是不能被跨进程访问的。
Enterprise Java Bean 相当于 DCOM,即分布式组件。它是基于 Java 的远程方
法调用(RMI)技术的,所以EJB 可以被远程访问(跨进程、跨计算机)。但EJB
必须被布署在诸如 Webspere、WebLogic 这样的容器中,EJB 客户从不直接访问
真正的 EJB 组件,而是通过其容器访问。EJB 容器是EJB 组件的代理,EJB 组件
由容器所创建和管理。客户通过容器来访问真正的EJB 组件。
74、简要说明JVM、JSP、Servlet、Web Server、Web Browser 之间的关系。
答:当用户在 JSP 页面上提交了需要服务器处理的数据后,通过 Web Browser
发送到服务器端,Servlet会根据用户的请求产生必要的相应,如果需要还会通
过JVM 或Web Server 来获取资源,最后把服务器端的相应结果返回给用户。
80、什么是UDDI、SOAP、WSDL?
答:UDDI 是一套基于 Web 的、分布式的、为Web Service 提供的、信息注册中
心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service 注册,
以使别的企业能够发现的访问协议的实现标准。
     SOAP 即简单对象访问协议(Simple Object Access Protocol),它是用于交
换XML 编码信息的轻量级协议。
    WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含
面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行
抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具
体端点即组合成为抽象端点(服务)。
分享到:
评论
2 楼 paddy2008 2010-11-04  
lonvea 写道
你这笔试题,把架构师都考死。。。。

哦;我错了;不好意思啊;
1 楼 lonvea 2010-04-19  
你这笔试题,把架构师都考死。。。。

相关推荐

    java 笔试题 j2ee笔试题

    Java笔试题常常涉及到Java语言和J2EE框架的相关知识,以下是对这些知识点的详细解析: 1. **MVC模式**:MVC(Model-View-Controller)是一种软件设计模式,常用于构建用户界面,分离业务逻辑、数据模型和用户界面。...

    j2ee笔试经典大全

    ### J2EE笔试经典知识点概述 #### 一、基本概念 1. **组件(Component)**:在J2EE环境中,组件是实现业务逻辑的核心部分。例如EJB(Enterprise JavaBeans)、Servlets、JSP等。 2. **容器(Container)**:容器...

    j2ee面试笔试宝典

    《J2EE面试笔试宝典》是一份集大成的资料,涵盖了个人介绍、笔试题、面试技术题以及面试中的其他问题,旨在帮助求职者在J2EE领域找到理想的工作。这份宝典全面且深入地讲解了J2EE相关的知识和技术,让我们逐一探讨...

    J2EE面试笔试常见题集大全

    这份“J2EE面试笔试常见题集大全”显然是针对Java开发者,尤其是那些专注于J2EE平台的工程师们准备的。这份资料可能涵盖了J2EE的各个方面,包括但不限于基本概念、设计模式、核心技术、框架应用等。 1. **J2EE基础*...

    J2EE笔试题目答案经典篇

    《J2EE笔试题目答案经典篇》是一份涵盖了J2EE技术领域多个方面的资源,旨在帮助备考者系统性地复习并解答可能出现的笔试题目。这份资料主要包括四个部分:Java基础题、JSP&Servlet技术、J2EE相关知识以及其他知识点...

    SSH笔试题 j2ee笔试题

    - **基本概念**:Struts是一个开源的MVC(Model-View-Controller)框架,它主要用于构建基于J2EE的Web应用程序。 - **工作流程**:请求到达控制器ActionServlet,ActionServlet根据配置文件转发到相应的Action,...

    J2EE笔试面试题

    在面试或笔试中,对于J2EE开发者,掌握JSP(JavaServer Pages)和Servlet的基本概念及其操作至关重要。下面将详细阐述JSP和Servlet的相关知识点。 1. **转发(Forward)与重定向(Redirect)的区别** - **转发...

    J2EE.zip_J2EE_Java开发笔试题_笔试_笔试题

    这份“J2EE.zip_J2EE_Java开发笔试题_笔试_笔试题”包含了一份针对J2EE技术开发工程师的笔试题目和参考答案,旨在测试应聘者对J2EE平台的理解、应用以及问题解决能力。下面将详细探讨J2EE中的核心概念和技术,以帮助...

    j2ee面试,笔试题目

    本资料包包含了丰富的J2EE面试和笔试题目,旨在帮助求职者准备面对各种Java相关的技术考核。以下是一些关键的J2EE知识点和常见面试问题的详细解析: 1. **Servlet与JSP**: - Servlet是Java编程语言中的一个接口,...

    j2ee,javaee,笔试,面试,题库汇总,笔试面试题库含答案

    Java EE,通常简称为J2EE,是Java平台企业版,是Oracle公司提供的一种用于构建分布式、多层的企业级应用程序的框架。它包含了多种服务、APIs和协议,旨在简化开发、部署和管理复杂的Web应用。Java EE的核心理念是...

    笔试试题-J2EE开发技术

    ### 笔试试题-J2EE开发技术知识点解析 #### 一、选择题解析 ##### 1. 下面哪一项不属于JSP的指令? - **答案**:【C】userBean - **解析**:JSP提供了三种类型的指令,分别是`page`、`include`和`taglib`。 - `...

    j2ee笔试和面试题

    本篇文章将详细探讨J2EE在笔试和面试中的常见知识点,帮助你准备相关考试或面试。 1. **Servlet**:Servlet是Java编写的服务器端程序,主要功能是对HTTP请求进行处理。面试中可能会涉及Servlet生命周期、Servlet...

    经典的J2EE笔试题,找工作必备

    为准备J2EE笔试的同学们。word格式。

    J2EE面试笔试题大汇总和J2EE基础知识

    J2EE面试笔试题大汇总及J2EE基础知识涵盖了Java企业级应用开发中的核心概念和技术。以下是这些知识点的详细解释: 1. 面向对象的特征: - 抽象:抽象是将复杂问题简化的过程,它关注与问题相关的关键特征,忽略...

    JAVA工程师笔试大全[J2EE]

    从给定的文件标题“JAVA工程师笔试大全[J2EE]”和描述中,我们可以提炼出以下关键知识点,这些知识点对于JAVA工程师尤其是专注于J2EE(Java Platform, Enterprise Edition)领域的人来说至关重要。 ### 1. J2EE概述...

    J2EE面试笔试题

    【J2EE面试笔试题解析】 1. 数据库并发访问解决方案 在J2EE应用中,当面临大量用户同时访问数据库的情况,采用数据库连接池技术是常见解决方案。数据库连接池在J2EE服务器启动时预建一定数量的连接,保持这些连接在...

    J2EE SSH 笔试复习

    根据给定文件中的标题、描述、标签以及部分内容,可以总结并生成以下与J2EE SSH框架相关的知识点: ### J2EE SSH框架理论复习 #### 一、基础知识回顾 1. **J2EE(Java 2 Platform, Enterprise Edition)**: - 是...

    java面试题,J2EE面试题 笔试题

    最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、...

    J2EE笔试面试集合

    在Java J2EE相关的笔试和面试中,常常会涉及到各种技术点。让我们逐一解析这些题目中的知识点: 1. 题目1展示了控制流语句`continue`的使用,当`i == 1`时跳过当前循环体的剩余部分,所以`total`的值为2。 2. 题目...

    较全的java笔试面试题集(有大公司的)

    这份"较全的java笔试面试题集(有大公司的)"资源显然为求职者提供了宝贵的准备材料,涵盖了J2EE技术栈的多个重要方面。下面,我们将深入探讨这些知识点。 首先,基础概念是面试的基石,包括Java语言特性、面向对象...

Global site tag (gtag.js) - Google Analytics