java面试大总结(3)

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 版本低。

你可能感兴趣的:(面试,职场,休闲)