tiankongch
java软件工程师面试题集 EJB方面 1、有哪些内容?分别用在什么场合? 和的区别? 答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC,JMS..... 2、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组件。 3、EJB的基本架构 答:一个EJB包括三个部分: Remote Interface 接口的代码 package Beans; import ; import ; public interface Add extends EJBObject { //some method declare } Home Interface 接口的代码 package Beans; import ; import ; import ; public interface AddHome extends EJBHome { //some method declare } EJB类的代码 package Beans; import ; import ; import ; public class AddBean Implements SessionBean { //some method declare } J2EE,MVC方面 1、MVC的各个部分都有那些技术来实现?如何实现? 答:MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 2、应用服务器与WEB SERVER的区别? 希望大家补上,谢谢 3、J2EE是什么? 答:Je22是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。 4、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。 答:Web Service描述语言WSDL SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。 UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。 5、BS与CS的联系与区别。 希望大家补上,谢谢 6、STRUTS的应用(如STRUTS架构) 答:Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能: 一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。 二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。 三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。 设计模式方面 1、开发中都用到了那些设计模式?用在什么场合? 答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。 2、UML方面 答:标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图, JavaScript方面 1、如何校验数字型? var re=/^d{1,8}$|.d{1,2}$/; var str=(i).value; var r=(re); if (r==null) { sign=-4; break; } else{ (i).value=parseFloat(str); } CORBA方面 1、CORBA是什么?用途是什么? 答:CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。 其目的为: 用不同的程序设计语言书写 在不同的进程中运行 为不同的操作系统开发 LINUX方面 1、LINUX下线程,GDI类的解释。 答:LINUX实现的就是基于核心轻量级进程的"一对一"线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。 GDI类为图像设备编程接口类库。 1、面向对象的三个基本特征 2、方法重载和方法重写的概念和区别 3、接口和内部类、抽象类的特性 4、文件读写的基本类 **5、串行化的注意事项以及如何实现串行化 6、线程的基本概念、线程的基本状态以及状态之间的关系 7、线程的同步、如何实现线程的同步 8、几种常用的数据结构及内部实现原理。 9、Socket通信(TCP、UDP区别及Java实现方式) **10、Java的事件委托机制和垃圾回收机制 11、JDBC调用数据库的基本步骤 **12、解析XML文件的几种方式和区别 13、Java四种基本权限的定义 14、Java的国际化 二、JSP 1、至少要能说出7个隐含对象以及他们的区别 ** 2、forward 和redirect的区别 3、JSP的常用指令 三、servlet 1、什么情况下调用doGet()和doPost()? 2、servlet的init()方法和service()方法的区别 3、servlet的生命周期 4、如何现实servlet的单线程模式 5、servlet的配置 6、四种会话跟踪技术 四、EJB **1、EJB容器提供的服务 主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。 2、EJB的角色和三个对象 EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者 三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类 2、EJB的几种类型 会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean 会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种 实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种 3、bean 实例的生命周期 对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池管理,而对于Entity Bean和Statefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。 4、激活机制 以Statefull Session Bean 为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActive和ejbPassivate方法。 5、remote接口和home接口主要作用 remote接口定义了业务方法,用于EJB客户端调用业务方法 home接口是EJB工厂用于创建和移除查找EJB实例 6、客服端调用EJB对象的几个基本步骤 一、 设置JNDI服务工厂以及JNDI服务地址系统属性 二、 查找Home接口 三、 从Home接口调用Create方法创建Remote接口 四、 通过Remote接口调用其业务方法 五、数据库 1、存储过程的编写 2、基本的SQL语句 六、weblogic 1、 如何给weblogic指定大小的内存? 在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M 2、 如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true。 3、 如何启动时不需输入用户名与密码? 修改服务启动文件,增加 WLS_USER和WLS_PW项。也可以在文件中增加加密过的用户名和密码. 4、 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 保存在此Domain的文件中,它是服务器的核心配置文件。 5、 说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的放入何目录下,然的在浏览器上就可打入http://主机:端口号//就可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean该如何办? Domain目录\服务器目录\applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。 6、 如何查看在weblogic中已经发布的EJB? 可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB 7、 如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 缺省安装中使用和 KeyStore实现SSL,需要配置服务器使用Enable SSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trust keystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。 8、在weblogic中发布ejb需涉及到哪些配置文件 不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括实体Bean一般还需要 9、EJB需直接实现它的业务接口或Home接口吗,请简述理由. 远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。 10、说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。 11、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法 Session Facade Pattern:使用SessionBean访问EntityBean Message Facade Pattern:实现异步调用 EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问 Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性 Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性 Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性 EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性 from java-cn
萌萌萌萌瓜
一、单选题 1.“秘密”是一款在朋友圈内匿名交流的SNS平台。假定每个人只能看到朋友发的帖子,却不知道具体是谁发的;并且朋友关系是对称的,即如果A是B的朋友,那么B也是A的朋友。某好事者希望知道一篇帖子具体是谁发的,他通过找几个好友看看他们是否是这个帖子楼主的朋友,从而求“交集”,推断楼主是谁。朋友圈是指彼此互为朋友的人群。什么样的楼主容易被发现真实身份? A朋友很多的楼主。 B朋友很少的楼主。 C发负能量帖子的楼主。 D有很多个小朋友圈的楼主。 E发正能量帖子的楼主。 F只有一个大朋友圈的楼主。 2.有一个装过食盐的瓶子,容积是w,在食盐用完之后,还有一些食盐粉末(体积可以忽略)残留在瓶子壁上。现在要把该瓶子改装糖,给你u体积的纯净水,用来清洗该瓶子。在每次清洗之后,瓶子里会残留至少v体积的水(食盐溶液,可以忽略盐的体积)。假设w>u>v,请问下述哪种方式使用这些纯净水,能把瓶子洗得最干净______? A.把所有的纯净水全部倒入瓶子,然后把水倒掉。 B.将纯净水平均分为两份,用每一份清水洗一遍瓶子。 C.每次注入体积为v的纯净水清洗瓶子,直到纯净水用尽。 D.每次注入体积为2v的纯净水清洗瓶子,直到纯净水用尽。 E.将用过的水重新注入瓶子,多次清洗。 F.以上方法清洗效果相同。 3.有一只火鸡出生在某年春天。从出生第一天起,主人就会每天给它喂食。这只火鸡用一个模型来计算主人对它的爱的程度=吃到米的天数/(出生之后的总天数+1)。这只火鸡发现这个爱的指数每天都在上升。有一天感恩节到了,火鸡被主人杀掉了。关于火鸡的爱的指数模型的说法正确的是:______? A.火鸡的模型之所以无效,是因为这个公式不是最大似然估计。 B.火鸡的模型之所以无效,是因为这个爱的指数增长速度先快后慢。 C.火鸡的模型之所以无效,是因为没有计算这个爱的指数的方差。 D.火鸡的模型之所以无效,是因为分母+1了。 E.火鸡的模型之所以无效,是因为主人太坏了。 F.火鸡的模型之所以无效,是因为统计的概率空间不完整。 4.下列方法中,______不可以用来程序调优 ? A.改善数据访问方式以提升缓存命中率 B.使用多线程的方式提高I/O密集型操作的效率 C.利用数据库连接池替代直接的数据库访问 D.使用迭代替代递归 E.合并多个远程调用批量发送 F.共享冗余数据提高访问效率 5.并发进程执行的相对速度是______。 A.由进程的程序结构决定 B.由进程本身来控制 C.进程被创建时决定 D.与进程调度策略有关 E.与进程的销毁时间有关 F.由内存分配策略决定 6.动态内存分配(C语言中的malloc,C++中的new)得到的存储区属于内存中的:______。 A.静态区 B.堆(heap) C.栈(stack) D.堆栈 E.内核内存 F.不确定 7.下列正则表达式不可以匹配” ”的是______。 A.^\w+\.\w+\-\w+\.\w+$ B.[w]{0,3}.[a-z\-]*.[a-z]+ C.[c-w.]{3,10}[.][c-w.][.][a] D.[w][w][w][alibaba-inc]+[com]+ E.^\w.*com$ F.[w]{3}.[a-z\-]{11}.[a-z]{3} 8.关于IP地址下列说法错误的是______。 地址采用分层结构,它由网络号与主机号两部分组成 B.根据不同的取值范围IP地址可以分为五类 属于B类地址 D.每个C类网络最多包含254台主机 采用128位地址长度 类,B类和C类地址为内部私有地址 9.某团队有 2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的最少有______人。 10.计算三个稠密矩阵A、B、C的乘积ABC,假定三个矩阵的尺寸分别为m*n, n*p, p*q,且m A.(AB)C (BC) C.(AC)B D.(BC)A E.(CA)B F.以上效率相同 11.棋盘上共有2020个格子,从1开始顺序编号。棋子初始放在第1格,通过扔骰子决定前进格子数,扔出x点就前进x格。骰子有6面,分别对应1至6;质量均匀。当棋子到达2015或超过2015,游戏结束。那么,棋子刚好到达2015的概率与______最接近。 同学每天乘公交上学,早上睡过头或遇到堵车都会迟到;H早上睡过头概率为,路上遇到堵车概率为;若某天早上H迟到了,那么以下推测正确的有______。 A.今天H早上睡过头了 B.今天H早上睡过头的概率为 C.今天H早上睡过头的概率大于 D.今天H早上遇到堵车了 E.今天H早上遇到堵车的概率为 F.今天H早上遇到堵车的概率小于 13.个数约为50K的 数列需要进行从小到大排序,数列特征是基本逆序(多数数字从大到小,个别乱序),以下哪种排序算法在事先不了解数列特征 的情况下性能大概率最优(不考虑空间限制)______。 A.冒泡排序 B.改进冒泡排序 C.选择排序 D.快速排序 E.堆排序 F.插入排序 14.在以下操作中,数组比线性表速度更快的是______。 A.原地逆序 B.头部插入 C.返回中间节点 D.返回中间节点 E.返回头部节点 F.选择随机节点 15.一个函数定义的返回值是float,它不能在 return语句中返回的值的类型是:______。 F.以上皆可以 16.某足球队有四名外援,分别来自巴西、荷兰、意大利和美国。他们分别擅长前锋、后卫或守门,其中: ① 美国外援单独擅长守门; ② 意大利外援不擅长前锋; ③ 巴西外援和另外某个外援擅长相同的位置; ④ 荷兰外援擅长的位置和巴西外援不同。 以上条件可以推出巴西外援擅长的位置是______。 A.前锋 B.守门 C.后卫 D.前锋或守门 E.后卫或守门 F.前锋或后卫 17.以下属性中,______不是m阶B树特性。 A.根节点至少2子女节点 B.非根节点包含的子女数j满足:┌m/2┐ - 1 <= j <= m - 1 C.除根结点以外的所有内部结点度数为存储关键字总数加2 D.常用于计算机磁盘文件组织 D.叶节点均位于同一层 也常用于计算机磁盘文件组织 18.在一个单链表中,q的前一个节点为p,删除q所指向节点,则执行______。 q; >next=p->next;delete p; >next=q->next;delete p; >next=q->next;delete q; p; >next=p->next;delete q main(){ fork()||fork();} 共创建几个进程:______。 20.程序出错在什么阶段______? int main(void) { ; cout<<“welcome to taobao"; } A.预处理阶段出错 B.编译阶段出错 C.汇编阶段出错 D.链接阶段出错 E.运行阶段出错 F.程序运行正常 二、附加题 1.针对无线互联网的现状和特殊性,请列举可提升用户体验的网络相关优化措施。(优化点可包括客户端、前端、服务端,甚至业务设计层面) 2.给定一个query和一个text,均由小写字母组成。要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如, query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。 3.写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
优质工程师考试问答知识库