《java面试题精选》由会员分享,可在线阅读,更多相关《java面试题精选(11页珍藏版)》请在金锄头文库上搜索。
1、java 面试题精选(3)(2009-08-13 17:11:30)标签:杂谈 分类:Java100、java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?字节流,字符流。字节流继承于 InputStream OutputStream,字符流继承于 InputStreamReader OutputStreamWriter。在 java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。101、java 中会存在内存泄漏吗,请简单描述。会。如:int i,i2; return (i-i2); /when i 为足够大的正数,i2 为足够大的负
2、数。结果会造成溢位,导致错误。102、java 中实现多态的机制是什么?方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。103、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?对于 GC 来说,当程序员创建对象时,GC 就开始监控这个对象的地址、大小以及使用情况。通常,GC 采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是可达的,哪些对象是不可达的
3、。当 GC 确定一些对象为不可达时,GC 就有责任回收这些内存空间。程序员可以手动执行 System.gc(),通知 GC 运行,但是 Java 语言规范并不保证 GC 一定会执行。104、静态变量和实例变量的区别?static i = 10; /常量class A a; a.i =10;/可变105、什么是 java 序列化,如何实现 java 序列化?序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现 Seria
4、lizable 接口,该接口没有需要实现的方法,implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj)方法就可以将参数为 obj 的对象写出(即保存其状态),要恢复的话则用输入流。106、是否可以从一个 static 方法内部发出对非 static 方法的调用?不可以,如果其中包含对象的 method();不能保证对象初始化.107、写 clo
5、ne()方法时,通常都有一行代码,是什么?Clone 有缺省行为,super.clone();他负责产生正确大小的空间,并逐位复制。108、在 JAVA 中,如何跳出当前的多重嵌套循环?用 break; return 方法。109、List、Map、Set 三个接口,存取元素时,各有什么特点?List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存 key-value 值,value 可多值。110、J2EE 是什么?J2EE 是 Sun 公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)
6、的企业级应用模型 (enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web 层和组件,Business 层和组件,企业信息系统(EIS)层。111、UML 方面标准建模语言 UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。112、说出一些常用的类,包,接口,请各举 5 个常用的类:BufferedReader BufferedWriter FileReader FileWir
7、ter String Integer常用的包:java.lang java.awt java.io java.util java.sql常用的接口:Remote List Map Document NodeList113、开发中都用到了那些设计模式?用在什么场合?每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了 MVC 的设计模式。用来开发 JSP/Servlet 或者 J2EE 的相关应用。简单工厂模式等。114、jsp 有哪些动作?作用分别是什么?JSP 共有以下 6 种
8、基本动作 jsp:include:在页面被请求的时候引入一个文件。jsp:useBean:寻找或者实例化一个 JavaBean。 jsp:setProperty:设置 JavaBean 的属性。jsp:getProperty:输出某个 JavaBean 的属性。 jsp:forward:把请求转到一个新的页面。jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。115、Anonymous Inner Class (匿名内部类) 是否可以 extends(继承)其它类,是否可以 implements(实现)interface(接口)?可以继承其他类或完
9、成其他接口,在 swing 编程中常用此方式。116、应用服务器与 WEB SERVER 的区别?应用服务器:Weblogic、Tomcat、JbossWEB SERVER:IIS、 Apache117、BS 与 CS 的联系与区别。C/S 是 Client/Server 的缩写。服务器通常采用高性能的 PC、工作站或小型机,并采用大型数据库系统,如 Oracle、Sybase、Informix 或 SQL Server。客户端需要安装专用的客户端软件。B/是 Brower/Server 的缩写,客户机上只要安装一个浏览器(Browser),如 Netscape Navigator 或 Int
10、ernet Explorer,服务器安装 Oracle、Sybase、Informix 或 SQL Server 等数据库。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过eb Server 同数据库进行数据交互。C/S 与 B/S 区别:硬件环境不同:C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理.有比 C/S 更强的适应范围, 一般只要有操作系统和浏览器就行对安全要
11、求不同C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用 C/S 结构适宜.可以通过 B/S 发布部分可公开信息.B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。对程序架构不同C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比 C/S 有更高的要求 B/S 结构的程序架构是发展的趋势, 从 MS 的.Net 系列的 BizTalk 2000 Exchange 2000 等, 全面支持网络的构件搭建的系统.SUN 和 I
12、BM 推的 JavaBean 构件技术等,使 B/S 更加成熟.软件重用不同C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在 B/S 要求下的构件的重用性好.B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子系统维护不同C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统 B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.处理问题不同C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高
13、需求, 与操作系统相关. 应该都是相同的系统B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是 C/S 无法作到的. 与操作系统平台关系最小.用户接口不同C/S 多是建立的 Window 平台上,表现方法有限,对程序员普遍要求较高B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.信息流不同C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低B/S 信息流向可变化, B-B B-C B-G 等信息、流向的变化, 更像交易中心。118、LINUX 下线程,GDI 类的解释。LINUX 实现的就是基于核心轻量级进程的一对一线程模型
14、,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。GDI 类为图像设备编程接口类库。119、STRUTS 的应用(如 STRUTS 架构)Struts 是采用 Java Servlet/JavaServer Pages 技术,开发 Web 应用程序的开放源码的 framework。采用 Struts 能开发出基于 MVC(Model-View-Controller)设计模式的应用构架。Struts 有如下的主要功能:一.包含一个 controller servlet,能将用户的请求发送到相应的 Action 对象。二.JSP 自由 tag 库,并且在 controlle
15、r servlet 中提供关联支持,帮助开发员创建交互式表单应用。三.提供了一系列实用对象:XML 处理、通过 Java reflection APIs 自动处理 JavaBeans 属性、国际化的提示和消息。120、Jdo 是什么?JDO 是 Java 对象持久化的新的规范,为 java data object 的简称,也是一个用于存取某种数据仓库中的对象的标准化 API。JDO 提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如 JDBC API 的使用)。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。
16、另外,JDO 很灵活,因为它可以在任何数据底层上运行。JDBC 只是面向关系数据库(RDBMS)JDO 更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML 以及对象数据库(ODBMS)等等,使得应用可移植性更强。121、内部类可以引用他包含类的成员吗?有没有什么限制?一个内部类对象可以访问创建它的外部类对象的内容122、WEB SERVICE 名词解释。JSWDL 开发包的介绍。JAXP、JAXM 的解释。SOAP、UDDI,WSDL 解释。Web Service:Web Service 是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得 Web Service 能与其他兼容的组件进行互操作。JAXP(Java API for XML Parsing) 定义了在 Java 中使用 DOM, SAX, XSLT 的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需