《JAVA面试题及答案(基础题122道).docx》由会员分享,可在线阅读,更多相关《JAVA面试题及答案(基础题122道).docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JAVA面试题及答案(基础题122道)文章分类:聘请求职JAVA相关基础学问1、面对对象的特征有哪些方面1 .抽象:抽象就是忽视一个主题中与当前目标无关的那些方面,以便更充分地留意与当前目标有关的方面。抽象并 不打算了解全部问题,而只是选择其中的一部分,短暂不用部分微小环节。抽象包括两个方面,一是过程 抽象,二是数据抽象。2 ,继承:继承是一种联结类的层次模型,并且允许和激励类的重用,它供应了一种明确表述共性的方法。对象的一 个新类可以从现有的类中派生,这个过程称为类继承新类继承了原始类的特性,新类称为原始类的派生 类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和
2、实例变量,并且类 可以修改或增加新的方法使之更适合特殊的须要。3 .封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面对对象计算始于这个基本概念, 即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受爱惜的接口访问其他对象。 4.多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言 具有灵敏、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。2、String是最基本的数据类型吗?基本数据类型包括 byte、int、char、long、float、double boolean 和 short。类是
3、final类型的,因此不行以继承这个类、不能修改这个类。为了提高效率节约空间,我 们应当用 String Buffer3、int和Integer有什么区分Java供应两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是 java为int供应的封装类。Java为每个原始类型供应了封装类。 原始类型封装类 booleanBoolean charCharacter byte Byte shortShort intlnteger longLong floatFloatdoubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型
4、和原始类型具有不同的特征和 用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某 个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与 它们的类型有关。4、String 和 StringBuffer 的区分JAVA平台供应了两个类:String # StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数 据。这个String类供应了数值不行变更的字符串。而这个StringBuffer类供应的字符串进行修改。当你知 道字符数据要变更的时候你就可以运用StringBuffer。典型地,你可以运用
5、StringBuffers来动态构造字符常会跨越多个客户机请求application是是代表与整个Web应用程序相关的对象和属性。这实质上是跨越整个Web应用程序,包 括多个页面、请求和会话的一个全局作用域66、Request对象的主要方法:setAttribute(String name,Object):设置名字为 name 的 request 的参数值getAttribute(String name):返回由 name 指定的属性值getAttributeNames():返回request对象全部属性的名字集合,结果是一个枚举的实例getCookies():返回客户端的全部Cookie对象
6、,结果是一个Cookie数组getCharacterEncoding():返回请求中的字符编码方式getContentLength():返回请求的Body的长度getHeader(String name):获得协议定义的文件头信息getHeaders(String name):返回指定名字的request Header的全部值,结果是一个枚举的实例getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例getlnputStream():返回请求的输入流,用于获得请求中的数据getMethod():获得客户端向服务器端传送数据的方法getParamete
7、r(String name):获得客户端传送给服务器端的有name指定的参数值getParameterNames():获得客户端传送给服务器端的全部参数的名字,结果是一个枚举的实例getParameterValues(String name):获得有name指定的参数的全部值getProtocol():获得客户端向服务器端传送数据所依据的协议名称getQueryString():获得查询字符串getRequestURIQ:获得发出请求字符串的客户端地址getRemoteAddr():获得客户端的IP地址getRemoteHost():获得客户端的名字getSession(Boolean cre
8、ate):返HI和请求相关 SessiongetServerName():获得服务器的名字getServletPath():获得客户端所请求的脚本文件的路径getServerPort():获得服务器的端口号removeAttribute(String name):删除请求中的一个属性67、J2EE是技术还是平台还是框架?J2EE本身是一个标准,一个为企业分布式应用的开发供应的标准平台。J2EE 也是一个框架,包括 JDBC、JNDk RMI、JMS、EJB、JTA 等技术。68、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso88591等,如何输出一个某种编码 的字符串?Publ
9、ic String translate (String str) String tempStr = n;trytempStr = new String(str.getBytes(ISO-8859-1 *), GBK);tempStr = tempStr.trim();)catch (Exception e) System.err.println(e.getMessage();)return tempStr;69、简述逻辑操作(&,|,八)与条件操作(&,|)的区分。区分主要答两点:a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型b.逻辑操作不会产生短路70、XML
10、文档定义有几种形式?它们之间有何本质区分?解析XML文档有哪几种方式?a:两种形式dtd schema, b:本质区分:schema本身是xml的,可以被XML解析器解析(这也是从DTD 上发展schema的根本目的),c:有DOM,SAX,STAX等DOM:处理大型文件时其性能下降的特殊厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内 存较多,而且DOM必需在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事务驱动型的XML解析方式。它依次读取XML文件,不须要一次全部装载整个 文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发
11、一个事务,用户通过在其回 调事务中写入处理代码来处理XML文件,适合对XML的依次访问STAX:Streaming API for XML (StAX)71、简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?主要相同点:Lock能完成synchronized所实现的全部功能主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而 Lock确定要求程序员手工释放,并且必需在finally从句中释放。72、EJB的角色和三个对象一个完整的基于EJB的分布式计算结构由六个角色组成,
12、这六个角色可以由不同的开发商供应,每个角色 所作的工作必需遵循Sun公司供应的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件 开发者(Enterprise Bean Provider)、应用组合者(Application Assembler)部署者(Deployer) EJB 服务器供应者(EJB Server Provider)、EJB 容器供应者(EJB Container Provider)、系统管理员(System Administrator)三个对象是 Remote (Local)接口、Home (LocalHome)接口,Bean 类73、EJB容器供应的服务主要供
13、应声明周期管理、代码产生、持续性管理、平安、事务管理、锁和并发行管理等服务。74、EJB规范规定EJB中禁止的操作有哪些?1 .不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等),2.不能操作awt, 3.不能 实现服务器功能,4.不能对静态属生存取,5.不能运用IO操作干脆存取文件系统,6.不能加载本地库.,7. 不能将this作为变量和返回,8.不能循环调用。75、remote接口和home接口主要作用remote接口定义了业务方法,用于EJB客户端调用业务方法。home接口是EJB工厂用于创建和移除查找EJB实例76、bean实例的生命周期对于 State
14、less Session Bean、Entity Bean Message Driven Bean 一般存在缓冲池管理,而对于 Entity Bean和Statefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内 存清除,而是接受缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机 制保持Bean的状态并限制内存中实例数量。77、EJB的激活机制以Stateful Session Bean为例:其C
15、ache大小确定了内存中可以同时存在的Bean实例的数量,依据MRU 或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时, 假如对应EJB Object发觉自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存 储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActive和ejbPassivate方法。78、EJB的几种类型会话(Session) Bean ,实体(Entity) Bean 消息驱动的(Message Driven) Bean会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种实体
16、Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种79、客服端调用EJB对象的几个基本步骤设置JNDI服务工厂以及JNDI服务地址系统属性,查找Home接口,从Home接口调用Create方法创建 Remote接口,通过Remote接口调用其业务方法。80、如何给weblogic指定大小的内存?在启动Weblogic的脚本中(位于所在Domian对应服务器书目下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M81、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?
17、可以在管理限制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者 commenv 文件,增力口 set PRODUCTION_MODE=trueo82、如何启动时不需输入用户名与密码?修改服务启动文件,增加WLSJJSER和WLS_PW项。也可以在boot.properties文件中增加加密过的用 户名和密码.83、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信 息进行配置后,实际保存在什么文件中?保存在此Domain的config.xml文件中,它是服务器的核心配置文件。84、说说weblogic中一个D
18、omain的缺省书0结构?比如要将一个简洁的helloWorld.jsp放入何书目下,然 的在阅读器上就可打入:主机:端口号/hellowodjsp就可以看到运行结果了?又比如这其中用到了一个自己写的javaBean该如何办?Domain书目服务器书目applications,将应用书目放在此书目下将可以作为应用访问,假如是Web应用, 应用书目须要满足Web应用书目要求,jsp文件可以干脆放在应用书目中,Javabean须要放在应用书目 的WEB-INF书目的classes书目中,设置服务器的缺省应用将可以实现在阅读器上无需输入应用名。 85、在weblogic中发布ejb需涉及到哪些配置文
19、件不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP实 体 Bean 一般还须要 weblogic-cmp-rdbms-jar.xml86、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置缺省安装中运用Demoldentity.jks和DemoTrust.jks KeyStore实现SSL,须要配置服务器运用Enable SSL,配置其端口,在产品模式下须要从CA获得私有密钥和数字证书,仓九建的和加4 1丫5100 装载获得的密钥和数字证书。可以配置此SSL连接是单向还是
20、双向的。87、如何查看在weblogic中已经发布的EJB?可以运用管理限制台,在它的Deployment中可以查看全部已发布的EJB88、CORBA是什么?用途是什么?CORBA标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织 (Object Management Group,缩写为OMG)标准化。它的组成是接口定义语言(IDL),语言绑定(binding: 也译为联编)和允许应用程序间互操作的协议。其目的为:用不同的程序设计语言书写在不同的进程中运行, 为不同的操作系统开发。89、说说你所熟悉或听说过的j2ee
21、中的几种常用模式?及对设计模式的一些看法Session Facade Pattern:运用 SessionBean 访问 EntityBeanMessage Facade Pattern:实现异步调用EJB Command Pattern:运用 Command JavaBeans 取代 SessionBean,实现轻量级访问Data Transfer Object Factory:通过 DTO Factory 简化 EntityBean 数据供应特性Generic Attribute Access:通过 AttibuteAccess 接 口简化 EntityBean 数据供应特性Busines
22、s Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一样性EJ B架构的设计好坏将干脆影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越 困难,项目队伍越浩大则越能体现良好设计的重要性。90、说说在weblogic中开发消息Bean时的persistent与non-persisten的差别persistent方式的MDB可以保证消息传递的牢靠性,也就是假如EJB容器出现问题而JMS服务器照旧会将 消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。91、Servlet执行时一般实现哪几个方法? public void
23、init(ServletConfig config)public ServletConfig getServletConfig()public String getServletlnfo()public void service(ServletRequest request,ServletResponse response) public void destroy()Java中的23种设计模式: Factory (工厂模式), Prototype (原始模型模式), Adapter (适配器模式), Decorator (装饰模式), Command (叮嘱模式), Iterator (迭代子
24、模式), Observer (视察者模式),92、j2ee常用的设计模式?说明工厂模式。Builder (建立模式), Singleton (单例模式), Bridge (桥梁模式), Flyweight (享元模式),Factory Method (工厂方法模式),Facade (门面模式),Composite (合成模式),Proxy (代理模式),Interpreter (说明器模式),Visitor (访问者模式),Mediator (调停者模式),Memento (备忘录模式),State (状态模式),Strategy (策略模式),Template Method (模板方法模式)
25、,Chain Of Responsibleity (责任链模式)工厂模式:工厂模式是一种经常被运用到的模式,依据工厂模式实现的类可以依据供应的数据生成一组类 中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同 的数据进行了不同的操作。首先须要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然 后须要定义一个工厂类,工厂类可以依据条件生成不同的子类实例。当得到子类的实例后,开发人员可以 调用基类中的方法而不必考虑原委返回的是哪一个子类的实例。93、EJB需干脆实现它的业务接口或Home接口吗,请简述理由。远程接口和Home接口不须要干脆实现,他
26、们的实现代码是由服务器产生的,程序运行中对应实现类会作 为对应接口类型的实例被运用。94、排序都有哪几种方法?请列举。用JAVA实现一个快速排序。排序的方法有:插入排序(干脆插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序 (干脆选择排序、堆排序),归并排序,支配排序(箱排序、基数排序)快速排序的伪代码。/运用快速排序方法对a 0 :n-1 排序从a 0 :n1 中选择一个元素作为middle,该元素为支点把余下的元素分割为两段left和门ght,使得left中的元素都小于等于支点,而right中的元素都大于 等于支点递归地运用快速排序方法对left进行排序递归地运用快速排序方法
27、对right进行排序所得结果为 left + middle + right95、请对以下在J2EE中常用的名词进行说明(或简洁描述)web容器:给处于其中的应用程序组件(JSP, SERVLET)供应一个环境,使JSP,SERVLET干脆更容 器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器供应的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。EJB容器:Enterprise java bean容器。更具有行业领域特色。他供应
28、应运行在其中的组件EJB各种管理 功能。只要满足J2EE规范的EJB放入该容器,立即就会被容器进行高效率的管理。并且可以通过现成的 接口来获得系统级别的服务。例如邮件服务、事务管理。JNDI: (Java Naming & Directory Interface) JAVA命名书目服务。主要供应的功能是:供应一个书目系统, 让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。JMS: (Java Message Service) JAVA消息服务。主要实现各个应用程序之间的通讯包括点对点和广播。 JTA: (Java Transaction API) JAV
29、A事务服务。供应各种分布式事务服务。应用程序只需调用其供应的接 口即可。JAF: (Java Action Framework) JAVA平安认证框架。供应一些平安限制方面的框架。让开发者通过各种 部署和自定义实现自己的特性平安限制策略。RMI/IIOP: (Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。 例如,远程有一台计算机上运行一个程序,它供应股票分析服务,我们可以在本地计算机上实现对其干脆 调用。当然这是要通过确定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。96、JAVA语言如何进行异样处理,关键字:
30、throws,throw,try,catch,finally分别代表什么意义?在try块中 可以抛出异样吗?Java通过面对对象的方法进行异样处理,把各种不同的异样进行分类,并供应了良好的接口。在Java中, 每个异样都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异样后便抛出一个异样对 象,该对象中包含有异样信息,调用这个对象的方法可以捕获到这个异样并进行处理。Java的异样处理是 通过5个关键词来实现的:try、catch th row throws和finally。一般状况下是用try来执行一段程序,假 如出现异样,系统会抛出(throws)一个异样,这时候你可以通
31、过它的类型来捕获(catch)它,或最终(finally) 由缺省处理器来处理。用try来指定一块预防全部“异样”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕获 的“异样,的类型。throw语句用来明确地抛出一个“异样”。throws用来标明一个成员函数可能抛出的各种“异样”。Finally为确保一段代码不管发生什么“异样”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句爱惜其他代码。每 当遇到一个try语句,“异样”的框架就放到堆栈上面,直到全部的try语句都完成。假如下一级的try语句 没有对某种“异样”进行处理,
32、堆栈就会绽开,直到遇到有处理这种“异样”的try语句。97、一个.java”源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以。必需只有一个类名与文件名相同。98、MVC的各个部分都有那些技术来实现?如何实现?MVC是ModelView-Controller的简写。”Model”代表的是应用的业务逻辑(通过JavaBean, EJB组 件实现),View是应用的表示面(由JSP页面产生),“Controller”是供应应用的处理过程限制(一般 是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可 以进行交互和重用。99、java中有几种
33、方法可以实现一个线程?用什么关键字修饰同步方法? stop。和suspend。方法为何不举 荐运用?有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对运用stop(),是因为它担忧全。它会解除由线程获得的全部锁定,而且假如对象处于一种不连贯状态, 那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend。方法简洁发生 死锁。调用suspend。的时候,目标线程会停下来,但却照旧持有在这之前获得的锁定。止匕时,其他任何 线程都不能访问锁定的资源,除非被“挂起”的线程复原运行。对任何线程来说,假如它们想复
34、原目标线程, 同时又试图运用任何一个锁定的资源,就会造成死锁。所以不应当运用suspend。,而应在自己的Thread 类中置入一个标记,指出线程应当活动还是挂起。若标记指出线程应当挂起,便用wait。命其进入等待状 态。若标记指出线程应当复原,则用一个nMfy()重新启动线程。100、java中有几种类型的流? JDK为每种类型的流供应了一些抽象类以供继承,请说出他们分别是哪些 类?字节流,字符流。字节流继承于Inputstream Outputstream,字符流继承于InputStreamReader OutputStreamWritero在java.io包中还有许多其他的流,主要是为了
35、提高性能和运用便利。101、java中会存在内存泄漏吗,请简洁描述。会。如:inti,i2; return (i-i2); /when i为足够大的正数j2为足够大的负数。结果会造成溢位,导致错误。 102、java中实现多态的机制是什么?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之 间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。103、垃圾回收器的基本原理是什么?垃圾回收器可以立即回收内存吗?有什么方法主动通知虚拟机进行 垃圾回收?对于GC来说,当程序员创建对象时,GC就起先监控这个对
36、象的地址、大小以及运用状况。通常,GC接 受有向图的方式记录和管理堆(heap)中的全部对象。通过这种方式确定哪些对象是“可达的”,哪些对象是” 不行达的“。当GC确定一些对象为“不行达”时,GC就有责任回收这些内存空间。可以。程序员可以手动 执行System.gc(),通知GC运行,但是Java语言规范并不保证GC确定会执行。104、静态变量和实例变量的区分?static i = 10; 常量class A a;a.i =10;/可变105、什么是java序列化,如何实现java序列化?序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象 进行读写操作
37、,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引 发的问题。序列化的实现:将须要被序列化的类实现Serializable接口,该接口没有须要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后运用一个输出流(如:FileOutputStream)来构造一 个 ObjectOutputStream(对象流)对象,接着,运用 ObjectOutputStream 对象的 wiiteObject(Object obj)方 法就可以将参数为obj的对象写出(即保存其状态),要复原的话则用输入流。106、是否可以从一个stati
38、c方法内部发出对非static方法的调用?不行以,假如其中包含对象的method();不能保证对象初始化.107、写clone。方法时,通常都有一行代码,是什么?Clone有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。108、在JAVA中,如何跳出当前的多重嵌套循环?用 break; return 方法。109、List、Map、Set三个接口,存取元素时,各有什么特点?List以特定次序来持有元素,可有重复元素。Set无法拥有重复元素,内部排序。Map保存key-value值, value可多值。110、J2EE是什么?J2EE是Sun公司提出的多层(mu用-
39、diered),分布式(distributed),基于组件(component-base)的企业级应用 模型(enterpriese application model).在这样的一个应用系统中,可依据功能划分为不同的组件,这些组件 又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组 件,Business层和组件,企业信息系统(EIS)层。111、UML 方,面标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(依次图,合作图),实现图。 112、说出一些常用的类,包,接口,请各举5个常用的类:Buff
40、eredReader BufferedWriter FileReader FileWirter String Integer常用的包:java.lang java.awt java.io java.util java.sql常用的接口: Remote List Map Document NodeList113、开发中都用到了那些设计模式?用在什么场合?每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种 方式,你可以多数次地运用那些已有的解决方案,无需在重复相同的工作。主要用到了 MVC的设计模式。 用来开发JSP/Servlet或者J2EE的相关应用。
41、简洁工厂模式等。114、jsp有哪些动作?作用分别是什么?JSP共有以下6种基本动作jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:找寻或者实 例化一个 JavaBean。 jsp:setProperty:设置 JavaBean 的属性。jsp:getProperty:输出某个 JavaBean 的属性。jsp:forward:把请求转到一个新的页面。jsp:plugin:依据阅读器类型为Java插件生成OBJECT 或EMBED标记。115、Anonymous Inner Class (匿名内部类)是否可以extends(继承)其它类,是否可以implemen
42、ts(实 现)interface(接 口)?可以继承其他类或完成其他接口,在swing编程中常用此方式。116、应用服务器与WEBSERVER的区分?应用服务器:Weblogic、Tomcat JbossWEB SERVER: IIS、Apache117、BS与CS的联系与区分。C/S是Client/Server的缩写。服务器通常接受高性能的PC、工作站或小型机,并接受大型数据库系统, 如Oracle、Sybase、Informix或SQL Servero客户端须要安装专用的客户端软件。B/S 是 Brower/Server 的缩写,客户机上只要安装一个阅读器(Browser),如 Netsc
43、ape Navigator Internet Explorer,服务器安装Oracle、Sybase Informix或SQL Server等数据库。在这种结构下,用户界面完 全通过WWW阅读器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。阅读器通过 web Server同数据库进行数据交互。C/S与B/S区分:1 .硬件环境不同:C/S 一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过特地服务器供应连接和数据 交换服务.B/S建立在广域网之上的,不必是特地的网络硬件环境,例与电话上网,租用设备.信息自己管理.有 比C/S更强的适应范围,一般只要有操作系统和阅读器
44、就行 2 .对平安要求不同C/S 一般面对相对固定的用户群,对信息平安的限制实力很强.一般高度机密的信息系统接受C/S结 构适宜.可以通过B/S发布部分可公开信息.B/S建立在广域网之上,对平安的限制实力相对弱,可能面对不行知的用户。3,对程序架构不同C/S程序可以更加留意流程,可以对权限多层次校验,对系统运行速度可以较少考虑.B/S对平安以及访问速度的多重的考虑,建立在须要更加优化的基础之上.比C/S有更高的要求B/S 结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构 件搭建的系统.SUN和IBM推的JavaBean构
45、件技术等,使B/S更加成熟.4,软件重用不同C/S程序可以不行避开的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不 是做在墙上的石头桌子5 .系统维护不同C/S程序由于整体性,必需整体考察,处理出现的问题以及系统升级.升级难.可能是再做一个全新 的系统B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下 载安装就可以实现升级.6 .处理问题不同C/S程序可以处理用户面固定,并且在相同区域,平安要求高需求,与操作系统相关.应当都是相同 的系统B/S
46、建立在广域网上,面对不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最 小.7 .用户接口不同C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高B/S建立在阅读器上,有更加丰富和生动的表现方式与用户沟通.并且大部分难度减低,减低开发成 本.8 .信息流不同C/S程序一般是典型的中心集权的机械式处理,交互性相对低B/S信息流向可变更,B-BB-CB-G等信息、流向的变更,更像交易中心。118、LINUX下线程,GDI类的说明。LINUX实现的就是基于核心轻量级进程的“一对一”线程模型,一个线程实体对应一个核心轻量级进程,而 线程之间的管理在核外函数库中实现。G
47、DI类为图像设备编程接口类库。119、STRUTS的应用(如STRUTS架构)Struts是接受Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的frameworko接受 Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。Struts有如下的主要功能:一. 包含一个controller servlet,能将用户的请求发送到相应的Action对象。二.JSP自由tag库,并且在controller servlet中供应关联支持,帮助开发员创建交互式表单应用。三.供应了一系列好用对象:XML处理、通过 Jav
48、a reflection APIs白动处理JavaBeans属性、国际化的提示和消息。120、Jdo是什么?JDO是Java对象许久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对 象的标准化API。JDO供应了透亮的对象存储,因此对开发人员来说,存储数据对象完全不须要额外的代 码(如JDBC API的运用)。这些繁琐的例行工作已经转移到JDO产品供应商身上,使开发人员解脱出来, 从而集中时间和精力在业务逻辑上。另外,JDO很灵敏,因为它可以在任何数据底层上运行。JDBC只是 面对关系数据库(RDBMS) JDO更通用,供应到任何数据底层的存储功能,比如关系数据库、文件、XML 以及对象数据库(ODBMS)等等,使得应用可移植性更强。121、内部类可以引用他包含类的成员吗?有没