J2EE面试题集锦
金蝶面试题
金蝶面试题第一部分java基础一、选择题(单选)(12题共24分)1、以下哪项不属于java基础数据类型(A) int, short, byte, long(B) float, double(C) boolean(D) String2、下列哪个类不是Collection的子类(A) List(B) Set(C) Map(D) Vector3、若覆盖了某个类的hashCode 方法,则必须同时覆盖它的哪个方法(A) contains(B) clone(C) toString(D) equals4、以下关于java垃圾回收器描述错误的是(A) 垃圾回收可以有效地防止内存泄露,有效地使用可以使用的内存(B) 回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收等(C) 可以手动执行system.gc(),通知GC运行,GC会立刻执行垃圾回收(D) 程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收5、请问下例方法的返回结果是什么public int f(){int i=0;try{++i;}finally{++i;}return ++i;}(A) 1(B) 2(C) 3(D) 06、请分析下例代码的正确输出public static void main(String[] args){StringBuffer a = new StringBuffer("A");StringBuffer b = new StringBuffer("B");operat(a,b);System.out.println(a+","+b);}public static void operat(StringBuffer x, StringBuffer y){ x.append(y);y=x;}(A) A,B(B) A,A(C) AB,B(D) AB,AB7、下面isEmptyString函数正确的是(A)public boolean isEmptyString(String str){ return str == null || str.length()==0;}(B)public boolean isEmptyString(String str){ return str.length()==0 || str == null;}(C)public boolean isEmptyString(String str){ return str =="" || str.length() ==0;}(D)public boolean isEmptyString(String str){ return str.equals("") || str.length() ==0;}8、对于以下代码片段,有行号的代码执行顺序是class SuperTest{private String name ="Default Name"; // 1 public SuperT est(){System.out.println("SuperTest Construct");// 2 } }class Test extends SuperTest{private static String const1="CONST"; // 3 public Test(){System.out.println("Test Construct"); // 4}public static void main(String[] args){new Test(); // 5}}(A) 3,5,1,2,4(B) 5,3,4,1,2(C) 3,5,2,4,1(D) 5,3,4,2,19,基于下例声明Integer s = new Integer(9);Integer t = new Integer(9);Long u = new Long( 9 );表达式结果为true的是(A) (s==t)(B) (s.equals(u))(C) (s.equals(t))(D) (s.equals(9))10、如果使用了for(;;),则(A) 发生编译错误(B) 根本不进入循环(C) 这时个无限循环(D) 发生运行错误11、以下关于OverLoad 和Override的描述错误的是(A) 重写Overriding 是父类与子类之间多态性的一种表现(B) 重载Overloading 是一个类中多态性的一种表现(C) 某个方法被重写(Overriding) 指:在子类种定义某方法与其父类有相同的名称和参数(D) 在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)(E) 重载Overload的方法不可以改变返回值的类型12.以下说法错误的是()(A) ArrayList和Vector都是使用数组的方式存储数据(B) Vector是线程安全的(C) LinkedList相比ArrayList插入数据慢(D) LinkedList使用双向链表实现存储二、问答题(3题共6分)1.下列方法有那些错误或隐患(提示:至少2处)public void updateData(){String sql="update t_a set fok=1 where fid=?";Connection conn =getConnection();PreparedStatement ps =conn.prepareStatement(sql);ps.setString(0,"0001");ps.executeUpdate();ps.close();conn.close();}1.没有捕获异常try catch finally2.ps.setString(0,”0001”),错误,应是从索引1开始.2.请简单描述一下JVM加载class文件的原理及虚拟机访问类时的顺序3.优化以下代码并简述原因for(int i=0;i<1000;i++){for(int j=0;j<100;j++){for(int k=0;k<10;k++){function(i,j,k);}}}第二部分J2EE 应用开发一、选择题(单选)(4题共8分)1.创建一个会话EJB需要包含下列哪些部分(A) Home Interface,Remote Interface 和一个实现SessionBean 接口的类(B) Home Interface,Remote Interface 和一个继承SessionBean 的类(C) Remote Interface 和一个实现SessionBean 接口的类(D)Remote Interface 和一个继承SessionBean 的类2.请列出EJB分类(A) SessionBean 和Entity Bean(B) Stateless Session Bean 和Stateful Session Bean(C)BMP和CMP(D)SessionBean 、Entity Bean和MessageDriver Bean3.EJB事务属性设置为Required时表示(A) 如果当前已经存在一个运行事务,EJB将加入该事务,如果没有运行的事务存在,则EJB容器新建一个事务(B) 如果此时已经有一个运行事务,该事务将被挂起,一个新的事务将在你的EJB调用过程中存在,当存储过程结束后,老的事务将恢复(C)如果当前已经存在一个运行事务,那么该bean将运行在这个事务中,如果不存在则该bean 运行在一个事务的环境中(D)必须存在一个运行的事务,否则将抛出javax.EJB.EJBTransactionRequiredException异常4.在EJB中,以下关于本地接口描述错误的是(A) EJB都是通过该接口创建实例(B) EJB2.0规范新增的内容,它使得Bean能够避免远程调用的开销(C) 必须在EJB部署的机器上使用,既客户程序和提供服务的组建必须在同一个JVM上运行(D) 所有数据和返回值都通过引用的方式船体,而不是传递值二、问答题(1题共2分)1、无状态会话Bean 和有状态会话bean 有何区别?第三部分Java 工具(1题共5分)1、请尽量例举一下你在Java开发实际工作中使用过,或者了解过的相关工具开放工具:测试工具:代码管理工具:性能分析工具:设计工具:反编译工具:应用服务器:构建工具:第四部分数据结构与算法一、选择题(单选)(6题共6分)1、链表不具有的特点是()A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表长度成正比2、链式栈与顺序栈相比,一个比较明显的优点是()A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便3、具有一个结点的完全二叉树的高度为1,那么具有65个结点的完全二叉树的高度为()A.8B.7C.6D.54、对有18个元素的有序表做对折查找,则查找A[3]的比较序列的下标依次为()A.1-2-3B.9-5-2-3C.9-5-3D.9-4-2-35、设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是()A.A、B、C、DB.D、C、B、AC.A、C、D、BD.D、A、B、C5、对于Java容器类ArrayList,下列描述正确的是()A.ArrayList内部为链表结构B.ArrayList的数据访问接口没有考虑线程同步C.ArrayList具有容量自动扩展能力,所以不需要设置ArrayList的初始容量D.ArrayList访问元素接口get(i)和原始数组[i]访问具有同样的效率二、问答题(1题共4分)1、给定一个单向链表,请设计算法测试此链表是否形成闭环(即链表尾部节点又指向链表中,要求高效及内存耗费)(4分) 第五部分系统设计一、选择题(单选)(4题共8分)1、使用UML建模时,若需要描述跨越多个用例的单个对象的行为,使用___是最适合的A.协作图(Collaboration Diagram)B.序列图(Sequence Diagram)C.活动图(Activity Diagram)D.状态图(Statechart Diagram)2、UML中,一个用例和它的时序图之间是()的关系;在学校,一个学生可以选择多门课程,一门课程可以由多个学生选修,那么学生和课程之间是()关系;类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B 之间是()关系;森林和树木之间是()关系(4个单选)A.关联B.聚合C.泛化D.实现E.依赖3、合成/聚合复用原则讲的是()A.要尽量使用合成/聚合,尽量不要使用继承B.要尽量使用继承,尽量不要使用合成/聚合C.要使用关联,不要使用聚合D.要使用合成,不要使用关联4、一个应用程序使用了大量的对象,造成了很大的存储开销,并且对象的大多数状态都可变为外部状态,这种情况下,选择以下哪种模式比较合适A.Proxy(代理)/doc/cc14324150.html,posite(组成)C.Flyweight(享元)D.Facade(外观)二、问答题(1题共2分)1、写一个Singleton(单态模式)类第六部分软件工程一、选择题(单选)(7题共7分)1、程序的三种基本控制结构是A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移2、耦合关系从强到弱的顺序依次为A.组合、泛化、依赖、聚合B.泛化、组合、聚合、依赖C.依赖、泛化、组合、聚合D.聚合、组合、泛化、依赖3、具有风险分析的软件生存周期模型是A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型4、原型化方法是用户和设计者之间执行的一种交互构成,尤其适用于A.需求不确定性高的系统B.需求确定的系统C.管理信息系统D.实时系统5、模块内聚度越高,说明模块内各成分彼此结合的程度越A.松散B.紧密C.相等D.无法判断6、软件测试方法中,黑盒、白盒测试是常用的方法,其中白盒测试主要用于测试A.结果合理性B.软件外部功能C.程序正确性D.程序内部逻辑7、瀑布模型是以文档为驱动,适合___的软件项目的模型A.需求较明确的软件项目B.已有产品的升级C.需求模型的软件项目D.陌生领域的软件项目二、问答题(请从以下2题中任选一题作答,共3分)1、在软件开发过程中,有什么措施和方法可以提高和确保软件产品的质量?你之间参与的具体哪个项目用了以上的一种或者多种措施或方法?最终达到的效果如何?2、有以下几种常见的开发模型:瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model),螺旋模型(Spiral Model)、迭代开发模型(RUP),请选取以上的一种开发模型描述他们的特点和优点和缺点。
java技术综合面试题目(含参考答案)
目录1 Struts框架 (2)2 Spring框架 (8)3 AJAX技术 (14)4 Hibernate框架 (17)5 框架综合运用 (24)6 J2EE初级题目 (27)7 J2SE初级题目 (34)1Struts框架1.Struts框架的整体运行流程在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象,例如:Action的映射信息存放在ActionMapping对象中.当ActionServlet接收到一个客户请求时,将执行如下流程.A.检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;B.如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;C.根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm 的validate()方法;D.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;E. ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;F. Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件;G. ActionForward对象指向JSP组件生成动态网页,返回给客户2.ActionServlet在Struts框架中的总体作用功能是什么A.在web应用启动时ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象,例如:Action的映射信息存放在ActionMapping对象中。
JAVA面试题大全(含答案)
1. J2EE是什么?它包括哪些技术?解答:从整体上讲,J2EE是使用Java技术开发企业级应用的工业标准,它是Java 技术不断适应和促进企业级应用过程中的产物。
适用于企业级应用的J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。
J2EE是一个标准,而不是一个现成的产品。
主要包括以下这些技术:1) Servlet Servlet是Java平台上的CGI技术。
Servlet在服务器端运行,动态地生成Web页面。
与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。
对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。
2)JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。
从这一点来看,非常类似Microsoft ASP、PHP等技术。
借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP 来合成。
在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。
3) EJB EJB定义了一组可重用的组件:Enterprise Beans。
开发人员可以利用这些组件,像搭积木一样建立分布式应用。
4)JDBC JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。
JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。
利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。
东软集团面试题及答案
东软集团面试题及答案1 堆和栈那个是对程序员透明的?答案:栈。
2 请结合具体实例阐述一下面向对象中"多态"的概念。
答案:同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种:→编译时多态---- 通过overload来实现,系统在编译时,根据传递的参数和返回的类型等信息决定实现何种操作→运行时多态---- 通过override来实现,根据运行时具体对象的类型决定调用哪个方法。
给我面试的人很有亲和力,我没有感到有压力。
首先是自我介绍;他根据你自己介绍的情况来问你问题,我主要是说得现在正在做的青软实训内部管理系统。
你在项目组里主要负责什么?是怎么做的?主要负责页面前台展示,我现在设计页面框架,用的Struts-tile;把页面分为4部分,sidebar,header,footer,context;然后把sidebar,header,footer 这些每个页面都要用的写成一个整体,放在配置文件中,每个页面都引用他,这样就不用变了。
变得就是context部分。
另外在sidebar里面,用javascript来实现导航栏的弹出功能。
用什么方法可以检测一个环行链表?首先可以在data里面初始化一个数据,然后向下循环,可以找到这条数据的话,就是环行链表,否则就不是;但这个链表不一定是完全的链表,里面可能有分支,该怎么检测?设置一个循环,条件设为true,如果可以结束就不是,不能结束里面就有环。
那这样的话怎么让他跳出循环呢?我也不知道,那请教一下吧。
你看看如果next引用如果相同的话是不是就是环行链表?对,是那你想个办法来实现他吧。
把这个next引用,写进一个list,以后都把next引用和list里面的内容进行比较,如果有相同的就是环,没有就不是。
但如果链表很大,而你做的是嵌入式项目,有内存溢出,该怎么检测呢?呵呵,我想不出来了。
1.2.自我介绍,(注自我介绍中的自我经历可能会成为他的考点)3.我在自我介绍中说了我参加过数学建模,他问了我我们建的什么模型,我给他介绍了一下。
javaee面试题目及答案
javaee面试题目及答案一、介绍在JavaEE开发领域,面试是获得理想职位的重要环节之一。
本文将为您提供一些常见的JavaEE面试题目及其答案,帮助您在面试中更好地展示自己的技能和知识。
二、Java基础1. 什么是Java语言?Java语言是一种面向对象的高级程序设计语言,拥有跨平台特性,由Sun Microsystems于1995年开发。
2. Java和C++有什么区别?Java是一种解释型语言,不依赖于特定操作系统,而C++是一种编译型语言。
此外,Java具有垃圾回收机制和自动内存管理,而C++需要手动处理内存。
3. 描述Java的特性。
Java具有以下特性:- 简单性:Java语法相对简单,易于学习和使用。
- 面向对象:Java支持面向对象的编程范式,并提供封装、继承和多态等特性。
- 平台无关性:Java程序可以在任何支持Java虚拟机(JVM)的平台上运行。
- 安全性:Java有安全管理机制,可以防止恶意代码的执行。
- 可移植性:Java程序可以在不同操作系统和硬件平台上无需修改而运行。
- 多线程:Java支持多线程编程,可以实现多个任务的并发执行。
- 高性能:Java通过即时编译器(JIT)实现高效的执行速度。
4. 什么是Java虚拟机(JVM)?Java虚拟机是Java程序的运行环境,负责解释和执行Java字节码。
不同的操作系统需要使用相应的JVM来运行Java程序。
5. 解释Java的垃圾回收机制。
Java的垃圾回收机制是自动内存管理的重要组成部分。
垃圾回收器会自动识别和回收不再使用的内存,开发者无需手动释放内存。
这样可以有效避免内存泄漏和内存溢出的问题。
6. 什么是Java的异常处理机制?Java的异常处理机制用于处理程序执行过程中可能出现的错误或异常情况。
通过在代码中捕获异常并进行处理,可以提高程序的健壮性和可靠性。
三、JavaEE框架1. 什么是JavaEE框架?JavaEE框架是用于简化企业级应用程序开发的一套工具和组件集合。
Java经典面试题及答案(200题)
Java经典面试题及答案(200题) Java经典面试题200道Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。
简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
2. == 和 equals 的区别是什么?「== 解读」对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都为 true。
「equals 解读」equals 本质上就是 ==,只不过 String 和 Integer 等重写了equals 方法,把它变成了值比较。
2024年Java经典面试题及答案
2024年Java经典面试题及答案问:Java中的泛型是什么?它有什么作用?答:Java中的泛型是一种参数化类型,它允许使用一个占位符来代表各种类型。
它的作用是在编译时检测类型的一致性,避免了类型转换错误,并提高了代码的重用性。
问:Java中的静态方法和实例方法有什么区别?答:静态方法是属于类的方法,可以在不创建实例对象的情况下被调用,它可以直接通过类名来调用。
实例方法是属于具体实例对象的方法,需要先创建实例对象才能调用。
问:Java中的反射是什么?它有什么用途?答:反射是指在运行状态中,动态获取类的信息并操作类的属性和方法。
它的主要用途是在运行时动态创建对象、访问属性和调用方法,以及在编译时无法确定类型的情况下进行操作。
问:Java中的多线程是什么?如何创建多线程?答:多线程是指在一个程序中同时执行多个线程,每个线程可以独立执行不同的任务。
要创建多线程可以通过继承Thread 类或实现Runnable接口来实现。
问:Java中的异常处理是什么?有哪些常见的异常类型?答:异常处理是指在程序执行过程中处理各种错误或异常情况。
常见的异常类型包括NullPointerException、ArrayIndexOutOfBoundsExcpetion、IOException等。
问:Java中的集合框架是什么?它有哪些常见的接口和类?答:集合框架是Java中用于存储和操作对象的数据结构。
常见的接口包括List、Set、Map等,常见的类包括ArrayList、LinkedList、HashSet、HashMap等。
问:Java中的IO流是什么?它有哪些常见的流类型?答:IO流是用于输入和输出操作的流。
常见的流类型包括字节流和字符流,分别对应InputStream/OutputStream和Reader/Writer。
在Java编程中, IO流是非常重要的一个概念。
IO流是用于将数据从一个地方传输到另一个地方的机制,它允许程序通过输入和输出来访问数据。
Java高级面试题整理(附答案)
String 作为数据类型,传输对象和中间人角色的重要性和流行性也使这个问题在 Java 面试中很常见。
A foo() /\ /\ foo() B C foo() \/ \/ D foo()
即使我们删除钻石的顶部 A 类并允许多重继承,我们也将看到这个问题含糊性的一面。如果你把这个理由告诉面试官,他会问为什么 C++ 可以支持多重继承而 Java不行。嗯,在这种情况下,我会试着向他解释我下面给出的第二个原因,它不是因为技术难度, 而是更多的可维护 和更清晰的设计是驱动因素, 虽然这只能由 Java 言语设计师确认,我们只是推测。维基百科链接有一些很好的解释,说明在使用多重继
1)第一个原因是围绕钻石 形继承问题产生的歧义,考虑一个类 A 有 foo() 方法, 然后 B 和 C 派生自 A, 并且有自己的 foo() 实现,现在 D 类使 用多个继承派生自 B 和C,如果我们只引用 foo(), 编译器将无法决定它应该调用哪个 foo()。这也称为 Diamond 问题,因为这个继承方案的 结构类似于菱形,见下图:
为什么等待和通知需要从同步块或方法中调用, 以及 Java 中的 wait,sleep 和 yield 方法之间的差异,如果你还没有读过,你会觉得有趣。 为何 wait,notify 和 notifyAll 属于 Object 类? 为什么它们不应该在 Thread 类中? 以下是我认为有意义的一些想法:
2. 为什么 Java中不支持多重继承?
java面试题大全及答案
java面试题大全及答案Java是一种广泛使用的编程语言,具有良好的可移植性和可伸缩性,因此在软件开发领域广受欢迎。
对于求职者来说,掌握Java面试题和答案是非常重要的,因为这将帮助他们更好地准备面试并展示自己的技能和知识。
本文将为您提供一些常见的Java面试题及其答案。
一、Java基础知识1. 什么是Java?它的特点是什么?答:Java是一种面向对象的编程语言,具有平台无关性、可移植性、安全性和简单性等特点。
2. Java与C++有什么区别?答:Java是一种基于虚拟机的高级语言,而C++是一种编译型语言。
Java具有更严格的语法和更强的安全性,而C++更加灵活和高效。
3. 什么是Java虚拟机(JVM)?答:JVM是Java程序运行的虚拟计算机,它将Java字节码转换为特定平台上的机器码。
4. 说一下Java的基本数据类型。
答:Java的基本数据类型包括整型(int、short、long、byte)、浮点型(float、double)、字符型(char)和布尔型(boolean)。
5. Java中的四种访问修饰符是什么?答:Java中的四种访问修饰符是public、protected、private和default。
二、面向对象编程1. 什么是面向对象编程?答:面向对象编程(OOP)是一种编程方法,它将数据和操作封装在对象中,通过对象之间的交互来完成任务。
2. Java中的继承是什么?如何实现继承?答:继承是一种对象之间的关系,它允许一个类(子类)继承另一个类(父类)的属性和方法。
在Java中,使用关键字"extends"实现继承。
3. 什么是多态性?答:多态性是指一个对象的多种形态。
在Java中,通过方法的重载和方法的重写实现多态性。
4. 什么是抽象类?如何定义抽象类?答:抽象类是一种不能实例化的类,它只能作为其他类的父类来使用。
在Java中,使用关键字"abstract"定义抽象类。
EJB面试题
94、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS.....95、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组件。96、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。?答:EJB包括Session?Bean、Entity?Bean、Message?Driven?Bean,基于JNDI、RMI、JAT等技术实现。SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。Session?Bean?还可以再细分为?Stateful?Session?Bean?与?Stateless?Session?Bean?,这两种的?Session?Bean都可以将系统逻辑放在?method之中执行,不同的是?Stateful?Session?Bean?可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的?Stateful?Session?Bean?的实体。Stateless?Session?Bean?虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫?Stateless?Session?Bean?的时候,EJB?Container?并不会找寻特定的?Stateless?Session?Bean?的实体来执行这个?method。换言之,很可能数个使用者在执行某个?Stateless?Session?Bean?的?methods?时,会是同一个?Bean?的?Instance?在执行。从内存方面来看,?Stateful?Session?Bean?与?Stateless?Session?Bean?比较,?Stateful?Session?Bean?会消耗?J2EE?Server?较多的内存,然而?Stateful?Session?Bean?的优势却在于他可以维持使用者的状态。97、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组件。EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?SessionBean:Stateless?Session?Bean?的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful?Session?Bean?时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful?Session?Bean?的方法时容器会把调用分派到与此客户机相关联的Bean实例。EntityBean:Entity?Beans能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity?beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity?beans也是存活的。Entity?Beans生命周期能够被容器或者?Beans自己管理。EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun?Microsystems的Transaction?Service(JTS)、Java?Transaction?API(JTA),开发组(X/Open)的XA接口。98、EJB的角色和三个对象答:一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise?Bean?Provider)?、应用组合者(Application?Assembler)、部署者(Deployer)、EJB?服务器提供者(EJB?Server?Provider)、EJB?容器提供者(EJB?Container?Provider)、系统管理员(System?Administrator)三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类99、EJB容器提供的服务答:主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。100、EJB规范规定EJB中禁止的操作有哪些???答:1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等),2.不能操作awt,3.不能实现服务器功能,4.不能对静态属生存取,5.不能使用IO操作直接存取文件系统,6.不能加载本地库.,7.不能将this作为变量和返回,8.不能循环调用。101、remote接口和home接口主要作用答:remote接口定义了业务方法,用于EJB客户端调用业务方法。home接口是EJB工厂用于创建和移除查找EJB实例102、bean?实例的生命周期答:对于Stateless?Session?Bean、Entity?Bean、Message?Driven?Bean一般存在缓冲池管理,而对于Entity?Bean和Statefull?Session?Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB?Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。103、EJB的激活机制答:以Stateful?Session?Bean?为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB?Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActive和ejbPassivate方法。104、EJB的几种类型答:会话(Session)Bean?,实体(Entity)Bean?消息驱动的(Message?Driven)Bean会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种105、客服端调用EJB对象的几个基本步骤答:设置JNDI服务工厂以及JNDI服务地址系统属性,查找Home接口,从Home接口调用Create方法创建Remote接口,通过Remote接口调用其业务方法。
测试常考面试题及答案
测试常考面试题及答案一、单选题1. 在软件开发中,敏捷开发方法的核心价值是什么?A. 个体和互动高于流程和工具B. 可工作的软件高于详尽的文档C. 客户合作高于合同谈判D. 响应变化高于遵循计划答案:A2. 下列哪个不是面向对象编程的基本原则?A. 封装B. 继承C. 多态D. 函数式编程答案:D3. 在数据库设计中,规范化的主要目的是什么?A. 提高查询速度B. 减少数据冗余C. 增加数据存储量D. 简化数据库结构答案:B二、多选题1. 以下哪些是JavaScript中常用的数据类型?A. 数字B. 字符串C. 布尔值D. 函数答案:A, B, C, D2. 在软件开发过程中,哪些文档是常见的?A. 需求文档B. 设计文档C. 用户手册D. 测试报告答案:A, B, C, D三、判断题1. 在Java中,String类型是基本数据类型。
答案:错误2. RESTful API是一种软件架构风格,用于设计网络应用的API。
答案:正确四、简答题1. 请简述什么是SOLID原则,并列举其中两个原则。
答案:SOLID原则是面向对象设计原则,用于提高软件的可维护性和可扩展性。
其中两个原则分别是:- 单一职责原则(SRP):一个类应该只有一个引起它变化的原因。
- 开放封闭原则(OCP):软件实体应对扩展开放,对修改封闭。
2. 解释什么是闭包,并给出一个简单的JavaScript示例。
答案:闭包是一个函数和声明该函数的词法环境的组合。
闭包允许函数访问其词法作用域之外的变量。
示例:```javascriptfunction createClosure() {var secret = "I'm a secret!";return function() {console.log(secret);};}var myClosure = createClosure();myClosure(); // 输出:I'm a secret! ```五、编程题1. 编写一个函数,实现字符串反转的功能。
一年经验java面试题
一年经验java面试题Java是一门广泛应用于软件开发领域的高级编程语言。
作为一名具有一年经验的Java开发者,在面试中,掌握一些常见的Java面试题是非常重要的。
本文将介绍一些针对一年经验Java开发者的常见面试题。
一、Java基础知识1. 什么是Java?Java是一种面向对象的编程语言,具有简单、可移植、可靠、安全和高性能等特点。
2. Java的特点有哪些?Java具有平台无关性、面向对象、多线程、自动内存管理以及丰富的库和工具等特点。
3. Java的内存管理是如何工作的?Java使用垃圾回收机制来自动管理内存。
通过标记-清除、复制、标记-压缩等技术,及时释放不再使用的内存,提高程序的性能。
4. 什么是Java的垃圾回收机制?垃圾回收机制是Java自动管理内存的一种机制。
通过监控对象的引用情况,回收不再使用的对象内存,减少内存泄漏的风险。
5. Java中的String和StringBuilder有何区别?String是不可变的,每次对String进行操作时,都会创建一个新的String对象。
而StringBuilder是可变的,可以在原有的对象基础上进行操作,减少内存开销。
二、Java面向对象1. 什么是面向对象编程?面向对象编程是一种以对象为基础,通过封装、继承和多态等机制来组织和管理代码的编程范式。
2. 什么是封装?封装是将相关的数据和方法组合成一个对象,隐藏对象的内部细节,只向外部提供有限的访问接口。
3. 什么是继承?继承是一种从现有类派生出新类的机制,新类继承了现有类的属性和方法。
通过继承,可以实现代码的重用和扩展。
4. 什么是多态?多态是一种允许不同类的对象对同一消息做出不同响应的能力。
通过多态,可以提高代码的灵活性和复用性。
5. 什么是接口?接口是一种定义了一组方法规范的抽象类型。
通过接口,可以实现类与类之间的松耦合,提高代码的可维护性和扩展性。
三、Java集合框架1. Java集合框架有哪些核心接口?Java集合框架包括List、Set、Map等核心接口。
java开发框架面试题整理
Java开发框架面试Struts2热点面试题?1. 简述Struts2 的工作流程:①. 请求发送给StrutsPrepareAndExecuteFilter②. StrutsPrepareAndExecuteFilter 判定该请求是否是一个Struts2 请求③. 若该请求是一个Struts2 请求,则StrutsPrepareAndExecuteFilter 把请求的处理交给ActionProxy④. ActionProxy 创建一个ActionInvocation 的实例,并进行初始化⑤. ActionInvocation 实例在调用Action 的过程前后,涉及到相关拦截器(Intercepter)的调用。
⑥. Action 执行完毕,ActionInvocation 负责根据struts.xml 中的配置找到对应的返回结果。
调用结果的execute 方法,渲染结果。
⑦. 执行各个拦截器invocation.invoke() 之后的代码⑧. 把结果发送到客户端2. Struts2 拦截器和过滤器的区别:①、过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器。
②、Struts2 拦截器只能对Action 请求起作用,而过滤器则可以对几乎所有请求起作用。
③、拦截器可以访问Action 上下文(ActionContext)、值栈里的对象(ValueStack),而过滤器不能.④、在Action 的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
3. 为什么要使用Struts2 & Struts2 的优点:①. 基于MVC 架构,框架结构清晰。
②. 使用OGNL: OGNL 可以快捷的访问值栈中的数据、调用值栈中对象的方法③. 拦截器: Struts2 的拦截器是一个Action 级别的AOP, Struts2 中的许多特性都是通过拦截器来实现的, 例如异常处理,文件上传,验证等。
(完整版)Java系统架构师【面试题】
Java系统分析/架构师面试题【专业知识相关】1、谈谈对OOP、IOC、AOP的设计理念的理解;2、谈谈对主流的J2EE框架(Spring、Struts、Ibatis、Hibernate等);这些框架的局限性在哪儿?在何种情况下会不适合用这些框架?3、关于J2EE方面开发方面,说出前、后端的设计模型;(提示:比如前端的MVC框架,Axis,Ext,JQuery,Flex等,后端的Ejb,Spring,IOC,AOP,JMS,JNDI,RMI,以及负载均衡等)4、什么是SOA,ROA?谈谈两种技术的原理及适用场景;5、说说JVM原理,内存泄露与溢出的区别,何时产生内存泄露?6、谈谈JAVA通信方面相关知识,以及大项目之间通信方案;【软件架构、服务器、中间件相关】7、谈谈架构师的职责有哪些?8、软件设计领域,有哪些设计模式,你常用的几种设计模式;各个设计模式有哪些优缺点,适应哪些场景;9、谈谈你日常用的几种WEB服务器、中间件的相关特性及优缺点;10、如果要设计一个搜索引擎,像Google那样只有两个页面,要求性能最大化,Web方面应该如何设计?(不需要考虑搜索的逻辑)11、企业级应用有哪些特殊要求?在何种情况下我们不需要考虑这些要求?12、谈谈你现在做技术最大的困惑是什么?13、描述一个你感觉最成功的一次架构案例?14、怎么做到系统整合?(提示:A、通过代码的整合方式,使用相同的数据库。
B、通过SSO方式,可以是异构数据库.)15、浅谈一下负载均衡的原理?16、怎么处理权限分配?有几种权限分配模型?(提示:目前流行的三种:A、自主型访问控制;B、强制型访问控制;C、基于角色的访问控制RBAC)【数据库方面】17、怎么处理日志问题?有那些可行的方案?18、用JAVA如何实现每天1亿条记录的数据存储,数据库方面怎么设计?19、对应大表数据是如何处理;以及数据库性能调优策略;(提示:索引,SQL语句效率(切忌全表扫描),数据迁移,水平切面等)20、分布式系统,数据库设计方面,应注意哪些方面?( 提示:权限设计、图片存储、服务器集群设计等)21、当用户反映,平台访问变的很慢的时候,怎样处理这个问题的?(提示:A、数据库端;B、后端应用平台端;C、前端Web端;D、负载均衡;E、网络设置;F、机器性能的优化;G、考虑是否有病毒、木马等干扰等等)【项目管理、团队建设相关】22、介绍一下你主导过的项目;(提示:要能熟练说明,你曾经负责的产品、项目研发?含设计开发思想、技术实现、任务安排、进度控制、版本控制、需求控制、后期规划能一系列问题。
EJB面试题.doc
EJB面试题选择题(45题)1. EJB是什么?(选择2项)A. Enterprise JavaBean(企业级JavaBean)B. Extend JavaBean(扩展JaveBean)C. 一种分布式组件规范D. 一种对于Servlet技术的扩展2. J2EE服务器包含哪两个部分?(选择2项)A. JavaBean容器B. EJB容器C. Web容器D. JSP容器3. EJB的优点有哪些?(选择2项)A. 技术领先B. 价格低廉C. 性能优越D. 强大的容器支持4. 以下哪些服务器容器支持EJB?(选择2项)A. IISB. WebLogicC. TomcatD. Websphere5. EJB类库存在于Java的哪个版本中?(选择1项)。
A. J2SEB. J2EEC. J2MED. J2NE6. 要创建一个EJB,必须要至少编写哪些Java类和接口?(选择3项)A. 定义远程(或业务)接口B. 定义本地接口C. 定义Bean接口D. 编写Bean的实现7. EJB是否可以脱离容器而运行?(选择1项)A. 是B. 否8. CMP与BMP分别表示什么?(选择1项)A. CMP表示Bean管理持久性(Persistence),BMP表示容器管理持久性B. CMP表示容器管理持久性(Persistence),BMP表示Bean 管理持久性C. CMP表示Bean管理进程(Process),BMP表示容器管理进程D. CMP表示容器管理进程(Process),BMP表示Bean管理进程9. EJB是什么?(选择1项) [ ]A. 服务器端产品B. 服务器端组件开发架构C. 特殊类型的JavaBeanD. 用于实现商业逻辑10. EJB架构主要使用的设计模式是什么?(选择2项) [ ]A. Proxy 代理B. StrategyC. Delegate 委派D. Responsibility Chain11. EJB的类型主要有什么?(选择3项) [ ]A. Command BeanB. Data Access BeanC. Session BeanD. Entity BeanE. Java BeanF. Message-Driven Bean12. EJB3.0中Session Bean的组成可以包括:[]A. Home interfaceB. A thread classC. Remote interfaceD. Primary key classE. Local home interfaceF. Local interfaceG. ejb-jar.xmlH. application.xmlI. Bean class13.EJB3.0中Entity Bean的组成可以包括:[]A. Home interfaceB. web.xmlC. Remote interfaceD. Primary key classE. Local home interfaceF. Local interfaceG. ejb-jar.xmlH. ejb.xmlI. Bean class14. Session Bean按是否跟踪客户状态分:[]A. State Session BeanB. Stateless Session BeanC. BMT Session BeanD. CMT Session BeanE. Stateful Session Bean15. Entity Bean根据数据持久性的处理方式分:[]A. BMT Entity BeanB. BMP Entity BeanC. CMP Entity BeanD. CMT Entity Bean16. Entity Bean的事务处理方式可采用:[]A. BMPB. BMTC. CMTD. CMP17. Session Bean和Message-Driven Bean的事务处理方式可采用:[]A. BMT和CMPB. BMT和CMTC. BMP和CMPD. BMP和CMT18. 申明方式的事务处理的属性有:[]A. SupportsB. ShouldC. NotSupportedD. RequiredE. MaybeF. RequiresNewG. MandatoryH. Never19. Local interface引入的目的是:[]A. 本地客户程序才能调用EJBB. 为了性能C. 解决Session Bean与Enity Bean之间的交互20. Message-Driven Bean的Bean Class必须实现[] ;bean class中服务方法的签名是[]A. onMessageB. MessageListenerC. MessageDrivenBean21. EJBContext是EJB与EJB Container沟通的桥梁,在EJBContext中定义了与安全相关的两个方法是[], 与事务相关的三个方法是[] , 与定时服务相关的方法是[]。
java hibernate面试题
java hibernate面试题1. 介绍Hibernate框架Hibernate是一个开源的对象关系映射(ORM)框架,用于在Java应用程序和数据库之间建立映射关系。
它提供了一种面向对象的编程模型,将Java对象与数据库表之间进行映射,从而使开发人员可以直接使用Java对象进行数据库操作。
Hibernate直接通过简单的配置,实现了对底层数据库的统一访问,大大简化了数据库操作代码。
2. Hibernate框架的特点和优势- 透明性: Hibernate隐藏了底层数据库的细节,使开发人员能够专注于业务逻辑而不用关心数据库操作。
- 高度可定制性: Hibernate提供了丰富的配置选项和灵活的映射策略,可以根据项目需求进行定制。
- 数据库无关性: Hibernate支持多种数据库,使用统一的API进行开发,使得应用程序可以无缝切换数据库。
- 缓存管理: Hibernate提供了缓存机制,可以提高应用程序的性能和扩展性。
- 对象关系映射: Hibernate将Java对象与数据库表之间建立映射关系,简化了数据库操作的代码编写。
- 事务管理: Hibernate支持事务管理,可以保证数据的一致性和完整性。
3. Hibernate中的持久化状态在Hibernate中,实体对象可以存在三种状态:瞬时态、持久态和脱管态。
- 瞬时态(Transient): 对象在内存中创建,但没有与会话关联。
对该对象进行更改不会影响数据库。
- 持久态(Persistent): 对象与会话关联,并且Hibernate会自动跟踪该对象的变化,并在事务提交时同步到数据库中。
- 脱管态(Detached): 对象与会话分离,再次与会话关联时需要手动进行合并或者更新操作。
4. Hibernate中的对象关系映射Hibernate通过注解或者XML文件来描述Java对象与数据库表之间的映射关系。
常用的映射关系有以下几种:- 一对一(One-to-one): 一个对象与另一个对象之间存在唯一对应关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标 准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean .这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体.Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method.换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行.从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态.
ng.Math (F)
ng.Void (F)
ng.Class (F)
ng.ClassLoader (T)
2.抽象类和接口的区别
(1)接口可以被多重implements,抽象类只能被单一extends
J2EE面试题集锦(附答案)java 2007-09-26 10:52:34 阅读1184 评论1 字号:大中小 订阅 .
一、基础问答
1.下面哪些类可以被继承?
ng.Thread (T)
ng.Number (T)
ng.Double (F)
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synch源自onized,wait与notify
11.JSP中动态INCLUDE与静态INCLUDE的区别?
动态INCLUDE用jsp:include动作实现
<jsp:include page="included.jsp" flush="true"/>
}
}
2.文件读写,实现一个计数器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(new FileReader(f));
HashMap 与Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null为关键码的.
4.forward和redirect的区别
forward: an internal transfer in servlet
redirect: 重定向,有2次request,第2次request将丢失第一次的attributs/parameters等
缺点:
(1).WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。
(2).WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA。
10.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
(2)JMS:Java Message Service,JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.
(3)JTA:Java Transaction API,JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.
(4)JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略.
4. 请说出你所知道的线程同步的方法。
wait():使一个线程处于等待状态,并且释放所持有的对象的lock.
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
3. 垃圾回收的优点和原理。并考虑2种回收机制。
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收, 程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
8.XML的解析方法
Sax,DOM,JDOM
9.什么是Web Service?
Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。
Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
(2)接口只有定义,抽象类可以有定义和实现
(3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)
3.Hashtable的原理,并说出HashMap与Hashtable的区别
HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.
(5)RMI:Remote Method Interface,远程方法调用
7.EJB是基于哪些技术实现的?并说 出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别.
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现.
2. Java的接口和C++的虚类的相同和不同处。
由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是public.一个类可以实现多个接口。
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件.EntityBean被用来代表 应用系统中用到的数据.对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑;EntityBean是一种持久性 对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体.
它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面
<%@ include file="included.htm" %>
二、Java编程与程序运行结果
1.Java编程,打印昨天的当前时刻
5.什么是Web容器?
实现J2EE规范中web协议的应用.该协议定义了web程序的运行时环境,包括:并发性,安全性,生命周期管理等等.
6.解释下面关于J2EE的名词
(1)JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能.
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。