Java基础知识(101-122)

101、java中会存在内

存泄漏吗,请简单描述。
的确存在Java的内存泄漏, 并且事态可以变得相当严重

Java garbage collector自动释放哪些内存里面程序不在需要的对象, 以此避免

大多数的其他程序上下文的内存泄漏. 但是Java应用程序依旧会有相当的内存泄

漏. 查找原因会十分困难.
有两类主要的Java内存泄漏:
* 不再需要的对象引用
* 未释放的系统资源
2.2 非必要的对象引用
Java代码常常保留对于不再需要的对象引用, 并且这组织了内存的垃圾收集器的

工作. Java对象通常被其他对象包含引用, 为此一个单一对象可以保持整个对象

树在内存中, 于是导致了如下问题:
* 在向数组添加对象以后遗漏了对于他们的处理
* 直到你再次使用对象的时候都不释放引用. 比如一个菜单指令可以插件一个对

象实例引用并且不释放便于以后再次调用的时候使用, 但是也许永远不会发生.
* 在其他引用依然需要旧有状态的时候贸然修改对象状态. 比如当你为了在一个

文本文件里面保存一些属性而使用一个数组, 诸如"字符个数"等字段在不再需要

的时候依然保留在内存当中.
* 允许一个长久执行的线程所引用的对象. 设置引用为NULL也无济于事, 在线程

退出和空闲之前, 对象不会被收集释放
2.3 未释放的系统资源
Java方法可以定位Java实例意外的堆内存, 诸如针对视窗和位图的内存资源.

Java常常通过JNI(Java Native Interface)调用C/C++子程序定位这些资源.

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的区别?
应用服务器: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浏览器

实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器

通过Web 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、内部类可以引用他包含类的成员吗?有没有什么限制?
一个内部类对象可以访问创建它的外部类对象的内容

内部类如果不是static的,那么它可以访问创建它的外部类对象的所有属性
内部类如果是sattic的,即为nested class,那么它只可以访问创建它的外部类

对象的所有static属性

一般普通类只有public或package的访问修饰,而内部类可以实现static,

protected,private等访问修饰。

当从外部类继承的时候,内部类是不会被覆盖的,它们是完全独立的实体,每个

都在自己的命名空间内,如果从内部类中明确地继承,就可以覆盖原来内部类的

方法。

122、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、

UDDI,WSDL解释。
Web ServiceWeb 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注册,以使别的企业能够发现的访问协议的实现标准。

soap是web service最关键的技术,是web service中数据和方法调传输的介质。

WSDL(web service definition language)描述了web service的接口和功能。
 

 

 
 
 
 

 

 

 

 

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章