JAVA笔试面试题集锦08

4.6 其他框架、其他

【题目描述】

在 Struts 中实现页面跳转主要通过什么方法来实现?

【选项】

A. server.transfer

B. response.redirect

C. mapping.findForward

D. response.sendRedirect

【正确答案】    C

【解释】

         该题是struts1内容,与struts2传参机制不同。

 

【题目描述】

模块内聚度越高,说明模块内各成分彼此结合的程度越(   )

【选项】

A 松散             B 紧密      C 无法判断                  D 相同

【正确答案】   B

【解释】  

内聚度是指模块内部各成分之间的联结强度.内聚度越高,越容易理解、修改和维护.但内聚度本身是 主观的、非形式化的概念,程序设计人员很难客观地评估一个模块的内聚度.为此,人们开发出许多度 量准则用于量化模块的内聚度[1~3],为程序设计人员开发出高内聚度的模块提供指南.

 

【题目描述】

无状态会话 Bean、有状态会话 Bean、CMP 与 BMP 中,哪一种 Bean 不需要自己书写连接数据库的代码?(   )

【选项】

A. 无状态会话 Bean      B. 有状态会话 Bean          C. CMP            D. BMP

【正确答案】   C

【解释】

BMP 是在 Bean 中完成对数据库 JDBC 的各种调用;

CMP 是由 EJB 容器自动完成对数据库的操作 会话 Bean 主要处理业务逻辑。

 

【题目描述】

下列哪一个接口定义了用于查找、创建和删除 EJB 实例(   )

【选项】

A.Home                    B.Remote                  C.Local                     D.Message

【正确答案】   A

【解释】

remote 接口定义了业务方法,用于 EJB 客户端调用业务方法。 home 接口是 EJB 工厂用于创建和移除 查找 EJB 实例。

 

【题目描述】

EJB 类库存在于 Java 的哪个版本中?。(   )

【选项】

A.J2SE              B.J2EE            C. J2ME           D. J2NE

【正确答案】   B

【解释】

Java 分为三个体系,JavaSE(Java2 Platform Standard Edition,java 平台标准版), JavaEE(Java 2 Platform,Enterprise Edition,java 平台企业版), JavaME(Java 2 Platform Micro Edition,java 平台微型版)。EJB 属于 JavaEE 版本。

 

【题目描述】

要创建一个 EJB,必须要至少编写哪些 Java 类和接口?(   )

【选项】

A.     定义远程(或业务)接口

B.     定义本地接口

C.     定义 Bean 接口

D.     编写 Bean 的实现

【正确答案】   ABC

 

【题目描述】

请谈谈对 SOA 的认识。

【正确答案】

面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程 序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立 的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这 样的系统中的服务可以一种统一和通用的方式进行交互。

 

【题目描述】

常用的设计模式有哪些?说明工厂模式。

【正确答案】

Java 中的 23 种设计模式:

Factory(工厂模式), Builder(建造模式),Factory Method(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式), Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式), Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式), Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式), Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式), Observer(观察者模式),State(状态模式),Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一 组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法 针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类 中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例 后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

 

【题目描述】

EJB 包含哪 3 种 bean。

【正确答案】

session bean(会话 bean), entity bean(实体 bean), message bean(消息 bean)

 

【题目描述】

什么是混淆(obfuscate)?有什么好处?有哪些工具可以混淆 jar 文件?

【正确答案】

混淆是指通过对 class 文件中的变量名和部分方法名进行处理,来提高代码反编译的难度。 好处主要有 2 个:1、提高反编译以后代码阅读的难度 2、降低 class 文件的大小。 常见的混淆器有 Proguard 和 RetroGuard 两种。

 

【题目描述】

什么是状态机?游戏开发中有那些地方能用到状态机?

【正确答案】

状态机(State Machine)是根据对应状态进行处理的一种机制,在游戏开发中最典型的应用是游戏人工智能(AI)等地方。

 

【题目描述】

请根据你的知识,对以下计算机名词进行尽量简单的描述

【正确答案】

1)J2ME 是一种使用 Java 语言进行嵌入式设备开发的技术。

2) Python 是一种语法简单的面对对象的程序设计语言

3)Ant 是 Java 的生成工具。

4)Javac 是 Java 语言的编译程序

5)Subversion 是新一代的版本工具

6)OpenGL 是一套开发的图形界面开发库标准

 

【题目描述】

J2EE,EJB,JDBC 是一回事吗,它们之间有什么关系?

【正确答案】

不是一回事,J2EE(Java 2 Platform,Enterprise Edition)是一套全然不同于传统应用开发 的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循 J2EE 架构的不同平台之间,存在良好的兼容性。其中,EJB 和 JDBC 都 属于 J2EE 的一部分。

 

【题目描述】

请写出十种以上你知道的 java 开源软件,并用一句话说明功能。

【正确答案】

Ibatis:持久层框架

Hibernate:持久层框架,它对 JDBC 进行了非常轻量级的对象封装 Struts:是一个基于 Sun J2EE 平台的 MVC 框架 Spring:是一个解决了许多在 J2EE 开发中常见的问题的强大框架 Tomcat:实现了 servlet、struts 框架的 web 服务器 WebWork:组件化和代码重用的拉出式 MVC 模式 J2EE Web 框架 Rose:系统分析和设计的工具

JUnit:用于单元测试

ANT:用于辅助开发

Eclipse:IDE 集成开发工具

 

【题目描述】

部署一个 web 应用的步骤是什么?

【正确答案】

1.将 web 应用放到 Tomcat 服务器的 Webapps 包下,

2.启动服务器

3.在地址栏中输入 http://localhost:8080/应用名/

 

【题目描述】

什么是 UDDI、SOAP、WSDL?

【正确答案】

UDDI 是一套基于 Web 的、分布式的、为 Web Service 提供的、信息注册中心的实现标准规范, 同时也包含一组使企业能将自身提供的 Web Service 注册,以使别的企业能够发现的访问协议的实现 标准。

SOAP 即简单对象访问协议(Simple Object Access Protocol),它是用于交换 XML 编码信息的轻 量级协议。

WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向 过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协 议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。

 

【题目描述】

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 组件。

 

【题目编号】        jsd-04-406-4012

【知 识 点】    其他-JDO

【难易程度】        40

【题目描述】

Jdo 是什么?

【正确答案】

JDO 是 Java 对象持久化的新的规范,为 java data object 的简称,也是一个用于存取某种数据 仓库中的对象的标准化 API。JDO 提供了透明的对象存储,因此对开发人员来说,存储数据对象完全 不需要额外的代码(如 JDBC API 的使用)。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使 开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO 很灵活,因为它可以在任何数据 底层上运行。JDBC 只是面向关系数据库(RDBMS)JDO 更通用,提供到任何数据底层的存储功能,比 如关系数据库、文件、XML 以及对象数据库(ODBMS)等等,使得应用可移植性更强。

 

 

 

【题目描述】

就 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 是以用户为核心的互联网

 

【题目描述】

OOAD 中的 Association(联合)、Aggregation(聚合)、Composition(组合)的区别?

【正确答案】

三者从概念上来讲:Association 是一般的关联,有”use-a”的含义。Aggregation 和 Composition 都有整体和部分的关系,其中 Aggregation 中的部分脱离了整体,部分仍然有意义,有”has a”的 含义,是共享式的。而 Composition 中的部分脱离了整体,部分将没有任何意义,是独占式的。

从代码实现的角度上讲:三者都是以属性出现,其中 Association 中作为属性出现时,不需要对 其进行强制赋值,只要在使用是对其进行初始化即可。Aggregation 中作为属性出现时,需要在构造 器中通过传递参数来对其进行初始化。Composition 中    作为属性出现时,需要在整体的构造器中创 建部分的具体实例,完成对其的实例化。

从数据库的层面上来讲:Association 不需要被级联删除,Aggregation 不需要被级联删除,Composition 是需要被级联删除的。

 

【题目描述】

java 中会存在内存泄露吗?请简单描述。

【正确答案】

内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或系统崩溃。Java 存在内存 泄露。Java 中的内存泄露当然是指:存在无用但是垃圾回收器无法回收的对象。而且即使有内存泄露问题存在,也不一定会表现出来。自己实现堆栈的数据结构时有可能会出现内存泄露。

 

【题目描述】

什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?

【正确答案】

应用程序域:一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即, 从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中 创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可 以存在多个应用程序域。 托管代码:由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获 得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立 于平台和语言的、统一的托管代码应用程序行为。

强类型系统:通过运行时类型识别(RTTI)(Run-Time Type Identification),程序能够使用基类的 指针或引用来检查这些指针或引用所指的对象的实际派生类型。 装箱、拆箱:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。 重载:是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要。 CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

 

【题目描述】

程序注释的用途有哪些?带注释的程序有什么缺点?

【正确答案】

注释可以说明程序,给自己或他人在阅读程序时提供帮助,使程序更容易理解,也就是增强程 序代码的可读性。过多的代码注释会使程序结构变得不清晰。

 

【题目描述】

Struts1 中 actionform 和 action 属于 MVC 哪一层,为什么?

【正确答案】       

         actionform 和 action 属于 MVC 的 Model 层,Action 用来处理业务逻辑,actionform 保存用户 表单数据以便于在不同页面间传递。而 MVC 中的 model 层就是业务逻辑层,该层用于实现具体的业务 逻辑、状态维护及管理。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值