标签:
面试

101 、 java 中会存在内存泄漏吗,请简单描述。
会。如: int i,i2; return (i-i2); //when i 为足够大的正数 ,i2 为足够大的负数。结果会造成溢位,导致错误。
102 、 java 中实现多态的机制是什么?
方法的 重写 Overriding 和 重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。
103 、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于 GC 来说,当程序员创建对象时, GC 就开始监控这个对象的 地址 、 大小 以及 使用 情况。通常, GC 采用有向图的方式 记录和管理堆 (heap) 中的所有对象。通过这种方式确定哪些对象是 " 可达的 " ,哪些对象是 " 不可达的 " 。 当 GC 确定一些对象为 " 不可达 " 时, GC 就有责任回收这些内存空间 。可以。程序员可以手动执行 System.gc() ,通知 GC 运行, 但是 Java 语言规范并不保证 GC 一定会执行。
104 、静态变量和实例变量的区别?
static i = 10; // 常量
class A a; a.i =10;// 可变
105 、什么是 java 序列化,如何实现 java 序列化?
序列化就是一种用来处理对象流的机制 ,所谓 对象流也就是将对象的内容进行流化 。可以对流化后的对象进行 读写 操作,也可将流化后的对象传输于 网络 之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。序列化的实现:将需要被序列化的类实现 Serializable 接口,该接口没有需要实现的方法, implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流 ( 如: FileOutputStream) 来构造一个 ObjectOutputStream( 对象流 ) 对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj) 方法就可以将参数为 obj 的对象写出 ( 即保存其状态 ) ,要恢复的话则用输入流。
106 、是否可以从一个 static 方法内部发出对非 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 公司提出的 多层 (multi-diered), 分布式 (distributed) , 基于组件 (component-base) 的企业级应用模型 (enterpriese application model). 在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次 (tier) 中。所属层次包括客户层 (clietn tier) 组件 ,web 层和组件 ,Business 层和组件 , 企业信息系统 (EIS) 层。
111 、 UML 方面
标准建模语言 UML 。用例图 , 静态图 ( 包括类图、对象图和包图 ), 行为图 , 交互图 ( 顺序图 , 合作图 ), 实现图。
112 、说出一些常用的类,包,接口,请各举 5 个
常用的类: BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包: java.lang java.awt java.io java.util java.sql
常用的接口: Remote List Map Document NodeList
113 、开发中都用到了那些设计模式 ? 用在什么场合 ?
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了 MVC 的设计模式。用来开发 JSP/Servlet 或者 J2EE 的相关应用。简单工厂模式等。
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( 继承 ) 其它类,是否可以 implements( 实现 )interface( 接口 )?
可以继承其他类或完成其他接口,在 swing 编程中常用此方式。
116 、应用服务器与 WEB SERVER 的区别?
1 。 应用服务器处理业务逻辑 , web 服务器则主要是让客户 可以通过浏览器进行访问 。
2 。应用服务器处理业务逻辑, web 服务器是 用于处理 HTML 文件的 。
web 服务器通常比应用服务器简单 ,如 apache 就是 web 服务器, Jboss 就是 EJB 应用服务器。 应用服务器: Weblogic 、 Tomcat 、 Jboss ; WEB SERVER : IIS 、 Apache
117 、 BS 与 CS 的联系与区别。
C/S 是 Client/Server 的缩写。服务器通常采用高性能的 PC 、工作站或小型机,并采用大型数据库系统,如 Oracle 、 Sybase 、 Informix 或 SQL Server 。客户端需要安装专用的客户端软件。 B/ S是 Brower/Server 的缩写,客户机上只要安装一个浏览器( Browser ),如 Netscape Navigator 或 Internet Explorer ,服务器安装 Oracle 、 Sybase 、 Informix 或 SQL Server 等数据库。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过W eb Server 同数据库进行数据交互。
C/S 与 B/S 区别:
1.硬件环境不同 :
C/S 一般建立在专用的网络上 , 小范围里的网络环境 , 局域网之间再通过专门服务器提供连接和数据交换服务 .
B/S 建立在广域网之上的 , 不必是专门的网络硬件环境 , 例与电话上网 , 租用设备 . 信息自己管理 . 有比 C/S 更强的适应范围 , 一般只要有
操作系统和浏览器就行
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 构件技术等 , 使 B/S 更加成熟 .
4.软件重用不同
C/S 程序可以不可避免的整体性考虑 , 构件的重用性不如在 B/S 要求下的构件的重用性好 .
B/S 对的多重结构 , 要求构件相对独立的功能 . 能够相对较好的重用 . 就入买来的餐桌可以再利用 , 而不是做在墙上的石头桌子
5.系统维护不同
C/S 程序由于整体性 , 必须整体考察 , 处理出现的问题以及系统升级 . 升级难 . 可能是再做一个全新的系统
B/S 构件组成 , 方面构件个别的更换 , 实现系统的无缝升级 . 系统维护开销减到最小 . 用户从网上自己下载安装就可以实现升级 .
6.处理问题不同
C/S 程序可以处理用户面固定 , 并且在相同区域 , 安全要求高需求 , 与操作系统相关 . 应该都是相同的系统
B/S 建立在广域网上 , 面向不同的用户群 , 分散地域 , 这是 C/S 无法作到的 . 与操作系统平台关系最小 .
7.用户接口不同
C/S 多是建立的 Window 平台上 , 表现方法有限 , 对程序员普遍要求较高
B/S 建立在浏览器上 , 有更加丰富和生动的表现方式与用户交流 . 并且大部分难度减低 , 减低开发成本 .
8.信息流不同
C/S 程序一般是典型的中央集权的机械式处理 , 交互性相对低
B/S 信息流向可变化 , B-B B-C B-G 等信息、流向的变化 , 更像交易中心。
118 、 LINUX 下线程, GDI 类的解释。
LINUX 实现的就是基于核心轻量级进程的 " 一对一 " 线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。 GDI 类为图像设备编程接口类库。
119 、 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 属性、国际化的提示和消息。
120 、 Jdo 是什么 ?
JDO 是 Java 对象持久化的新的规范,为 java data object 的简称 , 也是一个用于存取某种数据仓库中的对象的标准化 API 。 JDO 提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如 JDBC API 的使用)。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外, JDO 很灵活,因为它可以在任何数据底层上运行。 JDBC 只是面向关系数据库( RDBMS ) JDO 更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、 XML 以及对象数据库( ODBMS )等等,使得应用可移植性更强
121 、内部类可以引用他包含类的成员吗?有没有什么限制?
一个内部类对象可以访问创建它的外部类对象的内容
122 、 WEB SERVICE 名词解释。 JSWDL 开发包的介绍。 JAXP 、 JAXM 的解释。 SOAP 、 UDDI,WSDL 解释。
Web Service 是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得 Web Service 能与其他兼容的组件进行互操作。 JAXP(Java API for XML Parsing) 定义了在 Java 中使用 DOM, SAX, XSLT 的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。 JAXM(Java API for XML Messaging) 是为 SOAP 通信提供访问方法和传输机制的 API 。 WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。 SOAP 即简单对象访问协议 (Simple Object Access Protocol) ,它是用于交换 XML 编码信息的轻量级协议。 UDDI 的目的是为电子商务建立标准; UDDI 是一套基于 Web 的、分布式的、为 Web Service 提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的 Web Service 注册,以使别的企业能够发现的访问协议的实现标准。
3 、 int Integer 的区别:
Java 提供两种不同的类型:引用类型和原始类型 (或内置类型)。 Int 是 java 的原始数据类型, Integer 是 java 为 int 提供的封装类。 Java 为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为
null
,而原始类型实例变量的缺省值与它们的类型有关。
String 类和 StringBuffer 类的区别:
它们都是处理字符串的类 , 但是它们有一个