CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;
OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。 OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker)。对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。
用途:
●存取来自现行桌面应用程序的分布信息和资源;
●使现有业务数据和系统成为可供利用的网络资源;
●为某一特定业务用的定制的功能和能力来增强现行桌面工具和应用程序;
●改变和发展基于网络的系统以反映新的拓扑结构或新资源;
2.什么是java序列化,如何实现java序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现
Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
举个风筝的例子,放过风筝后,我们会把风筝收起来,把支撑它的骨架拆开,方便我们存放,这就相当于我们Java中的序列化,等到下次你再把它组装起来,还可以放,这个过程就是解序列化;要实现序列化必须实现Serializable接口,目的是声明此类是可以被序列化的,自然基础此类的子类也自动的可以被序列化 。--------------百度知道
3.ejb需要直接实现它的业务接口吗,请说明理由
远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。
4.说几个常用的设计模式,并说明其中一个。
一共23种设计模式。
引用《软件秘笈-设计模式那点事》书籍:
按照目的来分,
设计模式可以分为创建型模式、结构型模式和行为型模式。
创建型模式用来处理对象的创建过程;结构型模式用来处理类或者对象的组合;行为型模式用来对类或对象怎样交互和怎样分配职责进行描述。
创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:
工厂方法模式(Factory Method Pattern)
抽象工厂模式(Abstract Factory Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
单例模式(Singleton Pattern)
结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式:
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
组合模式(Composite Pattern)
装饰者模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
行为型模式用来对类或对象怎样交互和怎样分配职责进行描述,主要包含以下11种设计模式:
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
策略模式(Strategy Pattern)
模板方法模式(Template Method Pattern)
访问者模式(Visitor Pattern)
抽象工厂模式(Abstract Factory Pattern)提供了一个接口,用于创建相关或者依赖对象的家族,而不需要指定具体实现类。
抽象工厂模式允许客户使用抽象接口来创建一组相关的产品,客户类和工厂类分开,客户需要任何产品的时候,只需要向工厂请求即可,客户无须修改就可以获得新产品。这样一来,客户就从具体产品中解耦。
工厂模式:
使用静态方法创建对象
class 类名{
public static 类名 xxx(){
return new 类名();
}
public static void main(String args[]){
类名 对象名=类名.xxx();
}
}
5.String 和StringBuffer的区别
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个
String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。即
StringBuffer可以追加而String不能。StringBuffer是String的增强版
6.运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
7.说出ArrayList,Vector, LinkedList的存储性能和特性
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,
Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以
插入速度较快。
8.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。
重写Overriding是父类与子类之间多态性的一种表现,
重载Overloading是一个类中多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
9.abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。
接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
10.HashMap和Hashtable的区别(都完成了Map接口)。
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,
主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,
Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
11.嵌套类和内部类区别。
Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)
Nested Class (一般是C++的说法),
Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
注: 静态内部类(Inner Class)意味着
创建一个static内部类的对象,不需要一个外部类对象,
不能从一个static内部类的一个对象访问一个外部类对象
一个内部类对象可以访问创建它的外部类对象的内容
12.单例模式有哪种方式:
饿汉式
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}
懒汉式
class Singleton {
private static Singleton instance=null;
private Singleton(){}
static Singleton getInstance() {
if(instance==null)
instance=new Singleton();
return instance;
}
}
分享到:
相关推荐
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种分布式计算技术,它允许在不同的操作系统、网络环境和编程语言之间进行无缝通信。CORBA技术系列丛书之"CORBA服务"着重于深入...
### CORBA技术详解 #### 一、CORBA技术概述 CORBA(Common Object Request Broker Architecture,通用...随着技术的进步,CORBA将继续在各个行业中发挥重要作用,特别是在那些需要高度互操作性和可靠性的应用场景中。
在CORBA体系中,接口定义语言IDL(Interface Definition Language)起着关键作用。IDL用于定义服务接口,这些接口可以被任何支持CORBA的编程语言实现。通过IDL,开发者可以声明对象的方法、参数和类型,然后由编译器...
COM(Component Object Model)和CORBA(Common Object Request Broker Architecture)是两种不同的分布式对象技术,它们在软件系统中实现组件间通信和交互有着重要的作用。本文将深入探讨COM和CORBA的本质以及它们...
这将有助于加深对EJB和CORBA这两个重要技术的理解,以及如何在实际项目中应用它们。 在深入研究之前,确保你已经熟悉Java基础、EJB基本概念以及CORBA的基本工作原理。这样,你将能更好地理解源代码中的设计决策,并...
这些库提供了ORB(Object Request Broker)服务,它是CORBA的核心组件,负责对象的定位、调用和应答。配置IP环节主要是为了确保ORB能够正确地在客户端和服务器之间通信。这通常涉及到设置ORB的初始化参数,如主机...
4. **对象适配器**:理解对象适配器的作用,它是ORB和实际对象之间的桥梁,处理ORB到对象的调用以及对象对ORB的响应。 5. **并发与线程**:学习如何在CORBA环境中处理并发和多线程问题,包括同步机制、线程池和并发...
#### 二、CORBA与JAVA的协同作用 JAVA作为一种平台无关的语言,其与CORBA的结合能够提供高度灵活且可移植的解决方案。CORBA不仅为JAVA应用程序提供了跨平台的通信能力,还支持动态绑定、异步通信等高级特性,使得...
那么,本书在哪些方面可以起到作用呢?分布式系统研究大概始于1980年或更早些时候,在接近二十年的时间内,我们对它的理解不断加深。这种理解实际是集中在如接口定义、安全性、实体命名、事务、通信选择、两层或三...
CORBA作为一种成熟且广泛应用的分布式计算标准,其发展历程、核心理念、体系架构和提供的服务都充分体现了其在促进企业级系统集成和开发中的重要作用。CORBA通过提供统一的接口规范和跨平台支持,简化了分布式应用...
OMA的核心是ORB(Object Request Broker,对象请求代理),它是实现CORBA系统的关键组成部分,提供了对象之间透明地发送请求和接收响应的能力。 #### 五、ORB系统组成与运行过程 1. **ORB系统组成** ORB主要由...
以上内容概述了CORBA中文版参考书中提到的一些关键知识点,包括CORBA的起源、用途、技术原理以及接口定义语言(IDL)的使用方法和映射过程。通过这些知识点的学习,读者可以更好地理解CORBA在分布式计算领域的重要...
### Java IDL 与 CORBA #### 引言 在版本1.2的Java 2平台中引入了Java IDL,它提供了一个接口,用于连接Java程序与通过Common ...随着CORBA规范的不断发展和完善,这些技术将继续在分布式计算领域发挥重要作用。
介绍CORBA的原理和作用
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是面向对象的分布式计算框架,它允许不同系统中的软件对象通过网络进行交互,仿佛它们都在同一台计算机上运行。这个技术由OMG...
尽管它不是编程语言,不能编写具体操作算法,但它有助于克服特定编程语言的限制。 IDL编译器的作用在于,根据IDL定义生成与特定编程语言相关的文件,包括客户桩文件(stub)、头文件(head)和服务框架文件...
### 分布式应用程序与CORBA #### 一、分布式系统的特性与挑战 分布式系统的特点在于其数据、计算以及用户都是分布式的。这意味着在一个分布式系统中,数据存储在多个位置,计算任务可以在不同的节点上执行,而用户...
CORBA(通用对象请求代理体系结构)是一个独立于语言和平台的分布式对象计算标准。CORBA 允许软件组件通过网络互操作,...因此,无论是对于初学者还是有经验的开发者,这本书都是学习和掌握CORBA不可或缺的参考资料。
编译`Student.idl`后,VisiBroker会自动生成相应的Java代码,包括与接口相关的类,尤其是`DataManager`类,它是实现查询和录入功能的关键。 为了实现与数据库的交互,实验中编写了`DBConnect.java`类。这个类封装了...
《CORBA Programming with TAO》是一篇专门为CORBA编程初学者准备的文章,它详细介绍了如何使用TAO(The ACE ORB)这一实现CORBA标准的开源ORB(对象请求代理)。TAO是ACE(Adaptive Communication Environment)...