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),请选取以上的一种开发模型描述他们的特点和优点和缺点。
东软集团面试题及答案
东软集团面试题及答案1堆和栈那个是对程序员透明的?2请结合具体实例阐述一下面向对象中"多态"的概念。
答案:同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的结果,它有两种:T编译时多态----通过overload来实现,系统在编译时,根据传递的参数和返回的类型等信息决定实现何种操作T运行时多态----通过override来实现,根据运行时具体对象的类型决定调用哪个方法。
给我面试的人很有亲和力,我没有感到有压力。
首先是自我介绍;他根据你自己介绍的情况来问你问题,我主要是说得现在正在做的青软实训内部管理系统。
你在项目组里主要负责什么?是怎么做的?主要负责页面前台展示,我现在设计页面框架,用的Struts-tile;把页面分为4 咅B分,sidebar,header,footer,c on tex然后把sidebar,header,footer这些每个页面都要用的写成一个整体,放在配置文件中,每个页面都引用他,这样就不用变了。
变得就是con text部分。
另外在sidebar里面,用javascript来实现导航栏的弹出功能。
用什么方法可以检测一个环行链表?首先可以在data 里面初始化一个数据,然后向下循环,可以找到这条数据的话,就是环行链表,否则就不是;但这个链表不一定是完全的链表,里面可能有分支,该怎么检测?设置一个循环,条件设为true,如果可以结束就不是,不能结束里面就有环。
那这样的话怎么让他跳出循环呢?我也不知道,那请教一下吧。
你看看如果next引用如果相同的话是不是就是环行链表?对,是那你想个办法来实现他吧。
把这个next引用,写进一个list,以后都把next引用和list里面的内容进行比较,如果有相同的就是环,没有就不是。
但如果链表很大,而你做的是嵌入式项目,有内存溢出,该怎么检测呢?呵呵, 我想不出来了。
1.2.自我介绍,(注自我介绍中的自我经历可能会成为他的考点)3.我在自我介绍中说了我参加过数学建模, 他问了我我们建的什么模型,我给他介绍了一下。
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参数的存储过程。
java面试题目
10.ext与jquery的比较
11.查找一颗二叉树中任意两个节点最近的公共父节点;(没有父指针)
12.将链表成对反序,12345变成21435(时间O(n),空间O(1))
13.安全线程相关的概念 (选择出错的,多线程访问共享资源,只有一个些,多个读不安全)
12、一个选择多线程在什么条件下安全的,具体忘了
13、一个给出多个排序方式,求每种的时间复杂度
14、给了一段代码,要你找出其中写得有问题的地方,一个C++的代码具体忘了。
15、写一个代码求出一个二叉树中任意两个节点a和b最近的公共父节点
16、写一个代码求一个链表每相领两个节点互换
17、写一个斐波那契数列求法程序
1、一个数组{1,0,2,4,5,1,1,2,6,2,8,9,6},要求写一个函数输出数组中出现次数最多的那个元素以及元素出现的次数(如果元素出现的次数相同,则输出值较大的那个元素),同时输出数组中最大的那个元素。
2、两个链表结构A和B,合并为一个链表C,用原来的链表A和B的节点保存链表C。
3、用一个自然数列1~n表示页码,页码首位不为0,如1就是1,不是01或001。要求写一个函数算出整本书0,1,2,3,4,...9这些数字出现的次数并输出。
18、写一个智能指针的实现程序
19、有N个球,m个红n个白,求取两个一红一白的概率
1.一道逻辑思维算法题:
有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?
2.M*N的二维数组方阵,按照45斜角S形打印
3.给你两个文件,每个文件存储10gURL,求其交集:
东软集团面试题及答案
东软集团面试题及答案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框架是用于简化企业级应用程序开发的一套工具和组件集合。
j2ee考试题带答案
西北农林科技大学本科课程考试试题(卷)2012—2013学年第1学期《J2技术》课程A卷专业班级:命题教师:审题教师:学生姓名:学号:考试成绩:本试卷由笔试和机试两部分组成。
一到三题为笔试部分,第四题为机试部分一、选择题(每题3分【按空分配分数】,共30分)得分:分1. 相比于,基于的技术作为企业级应用解决方案的主要优势体现在(),使得开发出的应用是可向外伸缩的()。
A. 安全性B. 运行的时空效率C. 事务处理能力D. 支持分布的能力企业级的与普通的区别是企业级的不仅可以供本地客户端访问,还可以供远程客户端访问。
本质区别是访问者和被访问者是否位于同一台虚拟机上。
2.消息服务( ) 与方法调用( )两者的最大区别就是:消息服务还可以实现()、()以与异构系统集成。
消息服务()是一个消息标准,它允许应用程序组件生成、发送、接收和读取消息。
它能够进行分布式的、松耦合的、可靠地、异步的信息交流。
A. 异步B. 业务调用C. 松耦合D. 消息传递3. 关于无状态会话和有状态会话中“状态”说法正确的是()。
A. 有状态会话实例有对应的生命周期,而无状态会话则没有B. 有状态会话可维持同一个客户端的多个调用之间的状态信息,无状态会话则不能C. 有状态会话可以实现业务对象的持久化,无状态会话不能D. 有状态会话可以维护客户端的状态,无状态会话不能4.实体之间的关系包括一对一、多对多、(对多一)和(一对多)共四种关联关系,以与( D )关系。
持久化,实体类表示对象,是对数据库中记录的表示A. 一对多B. 多对一C. 继承D. 映射5. 判断访问的方式是本地() 访问还是远程() 访问取决于访问客户端和是否位于()或者()。
A. 同一台计算机B. 同一个( , 虚拟机)C. 同一个网络D. 同一个进程6. 采用实体完成对象/关系的持久性映射(, )。
其中,一个实体类对应关系数据库的零或一个( A ),一个实体实例对象对应到关系数据库中的一个( B )。
中国银行笔程序员面试题
中国银行笔试题1.J2EE是什么?2.介绍Java中的Collection framework(包括如何写自己的数据结构)?如COLLECTION中遗留类(HASHTABLE、VECTOR)和现有类的区别?(同步)3.Java中异常处理机制,事件机制?4.EJB与JAVA BEAN的区别?EJB与JAVA BEAN是SUN的不同组件规范,EJB是在容器中运行的,分步式的,而JAVA BEAN主要是一种可利用的组件,主要在客户端UI表现上。
5.JAVA中的多形与继承?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Officeffice" />可出编程,选择题。
6.抽象类与接口?接口的好处是将实现与表现分离。
抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。
7.Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?8.JAVA servletapi中forward() 与redirect()的区别?forward()方法可以使用原来的对象,而且速度较快。
9.JAVA解析XML的方式?SAX、dom10.用JAVA实现数据库查询,这是一道编程题。
基本操作,不用讲了。
11.用JAVA实现一种排序,比较,JAVA类实现序列化的方法(二种)?如在COLLECTION框架中,实现比较要实现什么样的接口。
12.JSP中动态INCLUDE与静态INCLUDE的区别?老一套,动态可以带参数,静态相当于一段静态HTML文件。
13.应用服务器与web SERVER的区别?14.设计模式与UML方面。
如工厂模式,解决多数据库支持问题。
15。
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
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 方法,把它变成了值比较。
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接口调用其业务方法。
中软国际java面试题及参考答案
中软国际java面试题及参考答案面试题是中软国际java个人求职者在面试过程中的敲门砖,以下是店铺为大家收集到的中软国际java面试题及参考答案,希望对大家有帮助!中软国际java面试题及参考答案:填空题(1)Java语言具有许多优点和特点,下列选项中,哪个反映了Java 程序并行机制的特点?( B )A)安全性 B)多线性 C)跨平台 D)可移植(2)下列哪个类声明是正确的?( D )。
A)abstract final class HI{···}B)abstract private move(){···}C)protected private number; D)public abstract class Car{···}(3)下列关于for循环和while循环的说法中哪个是正确的?( D )。
A)while循环能实现的操作,for循环也都能实现B)while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C)两种循环任何时候都可替换D)两种循环结构中都必须有循环体,循环体不能为空(4)异常包含下列那些内容?( C )。
A)程序中的语法错误 B)程序的编译错误C)程序执行过程中遇到的事先没有预料到的情况D)程序事先定义好的可能出现的意外情况(5)Character流与Byte流的区别是 ( )。
A)每次读入的字节数不同 B)前者带有缓冲,后者没有C)前者是块读写,后者是字节读写D)二者没有区别,可以互换使用(6)监听事件和处理事件 ( )。
A)都由Listener完成 B)都由相应事件Listener处登记过的构件完成C)由Listener和构件分别完成 D)由Listener和窗口分别完成(7)Applet可以做下列那些操作? ( )。
A)读取客户端文件 B)在客户端主机上创建新文件C)在客户端装载程序库 D)读取客户端部分系统变量(8)下列哪个属于容器的构件? ( AD )。
(完整版)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、介绍一下你主导过的项目;(提示:要能熟练说明,你曾经负责的产品、项目研发?含设计开发思想、技术实现、任务安排、进度控制、版本控制、需求控制、后期规划能一系列问题。
java工程师面试题及答案
java工程师面试题及答案Java工程师面试中,面试官通常会通过一系列技术问题来评估候选人的技术能力和经验。
以下是一些常见的Java面试题及答案,供参考:1. Java和C++的主要区别是什么?- Java是一种纯面向对象的语言,而C++支持面向过程和面向对象两种编程范式。
- Java不支持指针操作,而C++支持。
- Java有垃圾回收机制,而C++需要手动管理内存。
- Java是跨平台的,而C++不是。
2. 什么是JVM?- JVM(Java虚拟机)是一个可以执行Java字节码的虚拟计算机。
它将Java源代码编译成字节码,然后在JVM上运行。
3. 什么是多线程?- 多线程是程序设计中的一种方法,允许两个或多个线程同时执行。
Java通过`Thread`类和`Runnable`接口来实现多线程。
4. 同步和异步的区别是什么?- 同步是指多个线程访问共享资源时,一次只允许一个线程访问,这样可以防止数据不一致。
- 异步是指多个线程可以同时访问共享资源,但需要额外的机制来保证数据的一致性。
5. Java中的集合框架有哪些?- Java集合框架包括`List`、`Set`、`Map`等接口,以及它们的实现类如`ArrayList`、`HashSet`、`HashMap`等。
6. 什么是泛型?- 泛型是一种类型安全的特性,它允许在编译时检查类型,从而避免类型转换的错误。
泛型在Java 5中被引入。
7. Java中的异常处理机制是怎样的?- Java使用`try`、`catch`和`finally`块来处理异常。
`try`块包含可能会抛出异常的代码,`catch`块捕获并处理异常,`finally`块则无论是否发生异常都会执行。
8. 什么是Java反射?- 反射允许程序在运行时查询、访问和修改类和对象的属性和方法。
它在Java中是通过`ng.reflect`包实现的。
9. 什么是序列化?- 序列化是将对象的状态信息转换为可以存储或传输的格式的过程。
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): 一个对象与另一个对象之间存在唯一对应关系。