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
浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过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
、内部类可以引用他包含类的成员吗?有没有什么限制?
一个内部类对象可以访问创建它的外部类对象的内容
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
类的区别:
它们都是处理字符串的类
,
但是它们有一个最大的区别
,
那就是
,
String
对象是存储你不能改动的文本字符串
,
相反
,
如果你希望改动
,
则应使用
StringBuffer
类作为替换
StringBuffer
是可变的而
String
是不可变的
.
而且
String
用得多个的话会占用不同的内存
.
如
:String str = "bb";
str = "aa";
前一个
bb
的内存地址不变
,
当又给它赋值为
aa
时它
(str)
又指向
aa
的地址
.
而
StringBuffer
就不会这样
.
:"=="
比较的是两个对象的地址,
(在字符串中)"equals()"
比较的是两个对象的值.
集合
Collection
层次结构
中的根接口
Collection
表示一组对象,这些对象也称为
collection
的元素
Java
集合的缺点:类型未知
总的说来,
Java API
中所用的集合类,都是实现了
Collection
接口,他的一个类继承结构如下:
Collection<--list><--vector>
Collection<--list><--arraylist>
Collection<--list><--linkedlist>
Collection<--set><--hashset>
Collection<--set><--hashset><--linkedhashset>
Collection<--set><--sortedset><--treeset>
List
是基于
Array
,可以有重复的值
Vector :
基于
Array
的
List
很重要的一点就是
Vector
是“
sychronized
”的,这个也是
Vector
和
ArrayList
的唯一的区别。
ArrayList
:基于
Array
上的链表,但是不同的是
ArrayList
不是同步的
LinkedList
:它不是基于Array
的,所以不受Array
性能的限制。它每一个节点(Node
)都包含两方面的内容:1.
节点本身的数据(data
);2.
下一个节点的信息(nextNode
)。所以当对LinkedList
做添加,删除动作的时候就不用像基于Array
的List
一样,必须进行大量的数据移动。只要更改nextNode
的相关信息就可以实现了。这就是LinkedList
的优势
HashSet
:虽然
Set
同
List
都实现了
Collection
接口,但是他们的实现方式却大不一样。
List
基本上都是以
Array
为基础。但是
Set
则是在
HashMap
的基础上来实现的,这个就是
Set
和
List
的根本区别。
HashSet
的存储方式是把
HashMap
中的
Key
作为
Set
的对应存储
Set
总结:
1. Set
实现的基础是
Map
(
HashMap
);
2. Set
中的元素是不能重复的,如果使用add(Object obj)
方法添加已经存在的对象,则会覆盖前面的对象;
性能时
Map
所要面对的一个大问题。如果你知道
get()
时怎么工作的,你就会发觉(比方说)在
ArrayList
里面找对象会是相当慢的
。而这正是
HashMap
的强项。它不是慢慢地一个个地找这个键,而是用了一种被称为
hash code
的特殊值来进行查找的。散列(
hash
)时一种算法,它会从目标对象当中提取一些信息,然后生成一个表示这个对象的“相对独特”的
int
。
hashCode()
是
Object
根类的方法,因此所有
Java
对象都能生成
hash code
。
HashMap
则利用对象的
hashCode()
来进行快速的查找。这样性能就有了急剧的提高。
设计模式方面
1
、开发中都用到了那些设计模式?
用在什么场合?
答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需再重复相同的工作。主要用到了
MVC
的设计模式。用来开发JSP/Servlet
或者J2EE
的相关应用。简单工厂模式
等。
2
、UML
方面
答:
标准建模语言
UML
。
用例图
,
静态图
(
包括
类图、对象图
和
包图
),
行为图
,
交互图
(
顺序图
,
合作图
),
实现图
,
*******************************************************************************
1
、
概述struts
,以及struts
如何实现MVC
架构的?
答:
struts framework
是一种基于
java
的技术,
Web
应用程序开发人员通过
struts framework
即可充分利用面向对象设计、代码重用以及“编写一次、到处运行”的优点
。
Struts
提供了一种创建
Web
应用程序的框架,其中对应用程序的显示、表示和数据的后端代码进行了抽象。
Struts
采用jsp
作为MVC
的视图,
由ActionServlet
具体指定的action
动作类作为控制器即MVC
中的C
,
负责视图与模型之间的交互。控制器的每个入口点都由名为
struts-config.xml
的配置文件设置
。该文件把来自视图的请求映射为特定的
JAVA
类以进行相应的处理,控制器还指定下一个视图的位置。
Struts
中的模型主要指的就是
javabean
,它是模型的代表,主要封装数据和业务逻辑。
Struts
的处理流程:
1
控制器进行初始化工作
,读取配置文件,为不同的
Struts
模块初始化相应的
ModulConfig
对象。
2
控制器接收Http
请求,
并从
ActionConfig
中找出对应于该请求的
Action
子类,如果没有对应的
Action
,控制器直接将请求转发给
JSP
或者静态页面,否则控制器将请求分发至具体的
Action
类进行处理。
3
在控制器调用具体的Action
的Execute
方法之前,
ActionForm
对象将利用
Http
请求中的参数来填充自已。还可以在
ActionForm
类中调用
Validate
方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的
ActionErrors
对象。
4
执行具体的的Execute
的方法,
它负责执行相应的业务逻辑。执行完后,返回一个
ActionForward
对象,控制器通过该
ActionForward
对象来进行转发工作。也可以把
Action
要处理的业务逻辑封装在
JavaBean
中,如果系统中还有
EJB
,那么通过
JavaBean
调用
EJB
以完成业务处理;如果没有
EJB
,那么就直接在
JavaBean
中连接数据库,进行数据库相关的操作。
*******************************************************************************
2
、
概述MVC
体系结构
答:
MVC
包括三类对象,
model
是应用对象,
view
是视图,
controller
是控制器,它定义用户界面对用户输入的响应方式。
在
MVC
体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型
在MVC
中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。
3
、
多线程的优点
答:可分两方面来答:
?
相对于单线程而言
:
可以响应多任务的并发操作
。
多线程取消了
主循环和轮流检测
机制,一个线程可以暂停而不阻止系统其他的部分的执行,而且当程序中一个线程阻塞时,只有那个被阻塞的线程暂停,所有其他的线程继续执行。
?
相对于进程而言:(
可以答也可以不答)
它所要求的开销比较小,转换成本较小。
所有线程共享同一地址空间,相互协作。
彼此之间通信很容易。
4
、
EJB
概述
答:
EJB
是企业级的
JavaBean
,它提供了构建企业级业务逻辑的一种组件模型。
EJB
分为三种:
Session Bean Entity Bean Message-Driven Bean
三种,其中
Session Bean
分为有状态和无状态
Session Bean
两种
,Entity Bean
分为容器管理的
Entity Bean ( CMP )
和
Bean
管理的
Entity Bean ( BMP )
。每一个
EJB
由一个远程接口、一个本地接口和一个
EJB
容器实现组成,远程接口声明了提供给
EJB
客户调用的各种应用方法,本地接口声明了创建新的
EJB
实例的
create
方法、寻找
EJB
实例的查找
(finder)
方法以及�h除
EJB
实例的
remove
方法。
EJB
容器提供了
EJB
的运行环境和生命周期的管理。
4
、
用java
访问Oracle
数据库、取得记录并输出到界面
答:……………………
..
Class.forName(“oracle.jdbc.driver.OracleDriver”);
Connection conn=DriverManager.getConnection( url , username , password );
Statement stmt=conn.createStatement();
String str=”select * from [table]”;
ResultSet rs=stmt.executeQuery(str);
While(rs.next())
{
……………………
}
rs.close();
stmt.close();
conn.close();
5
、
概述java
垃圾回收机制
答:它的工作原理如下:
当不存在对一个对象的引用时,我们就假定不再需要那个对象,那个对象所占有的存储单元可以被收回,可通过
System.gc()
方法回收,但一般要把不再引用的对象标志为
null
为佳。
6
、 java
类是否可以多继承,怎么实现多继承?
答:
java
没有多继承,但可以通过接口的形式来达到多继承的目地。
7
、
面向对象的特点
答:面向对象有三大特点:封装、继承、多态。
(
如果要回答四个,可加上
抽象性
这一特点
)
9
、接口有什么优点
答:接口有以下优点:
1
接口只是一个框架而没有实现,因此在接口定义时不需要考虑接口中的方法如何实现。
2
利用接口可达到实现多继承的目地。
3
可以在不暴露对象的类的前提下,暴露对象的编程接口。
4
不用强迫类关系在无关类中截获相似处
(
采用适配器就可以了
)
。
5
声明想执行的一个或多个方法。
10
、 ArrayList
与 Vector
的区别
答:主要从两个方面来说明:
?
安全、效率方面
如果要实现同步安全,则要用Vector
,否则则用ArrayList
,因为ArrayList
不考虑同步安全的问题,所以效率要高些。
?
资源方面
当两者的容量已满时,它们都会自动增长其容量,但
Vector
是按其容量的一倍增长,而
ArrayList
则按其容量的
50%
增加,所以
Vector
更能节省资源。
11
、MVC
结构在Jtable
中怎样实现的,这种结构有什么好处?
答、在
Jtable
中不存储它的单元数据,它的所有实例把它们的单元值交给实现了
TableModel
接口的对象来维护和管理,所以在
MVC
结构中,
Jtable
的表格主要体现了一个V
的作用,其表格将数据变化体现出来,而数据模型则体现了M
的作用,封装数据和业务逻辑。
注:详细解说见第二题
12
、在控制台中输入一个字符串,然后按照逆序打印出来
答:
import java.io.*;
public class test{
public static void main(String args[]){
String A=””;
String B=””;
String C=””;
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
If ((B=br.readLine())!=null){
A=A+B;
}
for(int I=A.length()-1;I>=0;I--){
C=C+A.substring(I,I+1);
}
System.out.println(C);
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
13
、java
是否存在内存泄露
答:存在,当一个对象引用另一对象后,当另一对象为空时,会出现内存泄露。
14
、String
类的值是否可以改变
答:
String
类的值在初始后不能改变,如果要改变,可转换为
StringBuffer
类,这个类的值是可以动态改变的。
(
这里主要考
String
和
StringBuffer
的区别
)
17
、java
有几种修饰符?默认的是什么?
答:
(
注:修饰符是影响类、变量及成员方法的生存空间和可访问性的关键字
)
修饰符
类
成员方法
成员变量
局部变量
abstract
√
√
-
-
static
-
√
√
-
public
√
√
√
-
protected
-
√
√
-
private
-
√
√
-
private protected
-
√
√
-
synchronized
-
√
-
-
native
-
√
-
-
volatile
-
-
√
-
final
√
√
√
-
transient
-
-
√
√
以下是访问控制修饰符:
默认为friendly
修饰符
同类
同包
子孙类
不同包
public
√
√
√
√
protected
√
√
√
-
friendly
√
√
-
-
private
√
-
-
-
18
、toString
方法的概述
答:因为每个类都继承了
Object
类,所以都实现了
toString()
方法。
通过
toString()
方法可以决定所创建对象的字符串表达形式。
19
、Object
类的概述
答:
Object
类是所有其他的类的超类,Object
的一个变量可以引用任何其他类的对象
。因为数组是作为类实现的,所以
Object
的一个变量也可以引用任何数组
,
它包括以下几种方法:
clone() equals() finalize() getClass() hashCode() notify() notifyAll() toString() wait()
20
、java
特点
答:
java
具有以下几个主要特点:
?
简单性
?
面向对象:
JAVA
是完全面向对象的,它支持静态和动态风格的代码继承及重用
?
分布式
:包括数据分布和操作分布
?
健壮性
:
java
系统仔细检测对内存的每次访问,确认它是否合法,而且在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。
?
结构中立
?
安全性
:
java
不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
?
与平台无关
:
java
写的应用程序不用修改就可在不同的软硬平台上运行。平台无关性有两种:源代码级和目标代码级。
Java
主要靠
JAVA
虚拟机在目标代码级上实现平台无关性
?
解释执性
:运行
JAVA
程序时,它首先被编译成字节代码,字节代码非常类似机器码,执行效率非常高。
?
高性能
?
多性程
?
动态性:它允许程序动态的装入运行时需要的类。
21
、什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念?
答:具有关键字
abstract
,在实现内容上没有完全定义的类就叫抽象类。
抽象类和接口的区别如下:
①
在类继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。
②在接口中无成员变量,而抽象类中可有成员变量。
在Java
中引进接口主要是为了解决多继承的问题。
22
、doGet
与doPut
的区别?
答:
doPut
会把地址作为一个文件写到服务器,而doGet
不会,而只显示在地址栏。
23
、多线程实现有那几种方法,同步有哪几种方法?
答:实现同步主要有两种方法:
1.synchronized 2.wait notify
实现多线程主要继承Thread
类和实现Runnable
接口。
24
、JSP
页面的跳转?
答:
jsp
页面实现跳转主要有
jsp:forward
和
sendRedirect
两种方法
jsp:forward
:
在本容器内跳转
。
跳转后,地址栏地址不变
。效率高。跳转后立即结束本页的内容。
sendRedirect
:在容器之间的跳转
,跳转后地址栏地址为跳转后的地址,效率较低。
通常采用jsp:forward
方式跳转。
25
、类变量的初始化
答:在
Java
中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。
26
、数组的定义
答:数组是作为一种对象实现的。数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致
创建数组步聚如下:
?
声明
?
构造
?
初始化
27
、Hastable
与HashMap
的区别?
答:
Hashtable
和
Hashmap
的主要区别如下:
? Hashtable
是同步的,而
HashMap
不是同步的。所以不要求同步的时候,用
HashMap
的效率较高
? Hashtable
版本较
HashMap
版本低。