java面试题(经典面试克星)
更新时间:2023-10-18 11:28:01 阅读量: 综合文库 文档下载
面试题
JAVA面试题
1. Servlet执行时一般实现哪几个方法?(☆☆☆☆)
public void init(ServletConfig config)
public void service(ServletRequest request,ServletResponse response) public ServletConfig getServletConfig() public String getServletInfo() public void destroy()
(说明:init ()方法在servlet的生命周期中仅执行一次,在servlet引擎创建servlet对象后执行。Servlet在调用init方法时,会传递一个包含servlet的配置和运行环境信息的ServletConfig对象。如果初始化代码中要使用到ServletConfig对象,则初始化代码就只能在Servlet的init方法中编写,而不能在构造方法中编写。覆盖init()方法时,应调用super.init()以确保仍然执行这些任务。
service ()方法是servlet的核心,用于响应对Servlet的访问请求。对于HttpServlet,每当客户请求一个 HttpServlet对象,该对象的service()方法就要被调用,HttpServlet缺省的service()方法的服务功能就是调用与 HTTP请求的方法相应的do功能,doPost()和doGet(),所以对于HttpServlet,一般都是重写doPost()和doGet() 方法。
destroy()方法在servlet的生命周期中也仅执行一次,即在服务器停止卸载servlet之前被调用,把servlet作为 服务器进程的一部分关闭。缺省的destroy()方法通常是符合要求的,但也可以override,来完成与init方法相反的功能。比如在卸载servlet时将统计数字保存在文件 中,或是关闭数据库连接或IO流。
getServletConfig()方法返回一个servletConfig对象,该对象用来返回初始化参数和servletContext。servletContext接口提供有关servlet的环境信息。
getServletInfo()方法提供有关servlet的描述信息,如作者,版本,版权。可以对它进行覆盖。)
2. Java Servlet API中forward() 与sendRedirect()的区别?(☆☆☆☆☆)
电话:086-0510-81026001 传真:086-0510-81026010 邮件:UNISTRAINING@UNISSOFT.COM 第1页/共13页
面试题
答案1:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
答案2:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的相应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求对应地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
3. 说出Servlet的生命周期,并说出Servlet和CGI的区别。(☆☆☆☆☆)
Servlet有良好的生存期定义,包括加载和实例化、初始化、处理请求以及服务结束。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
Servlet与CGI的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
4. String和StringBuffer的区别(☆☆☆☆☆)
String 是不可以变的字符串,StringBuffer 是可变的字符串;
对StringBuffer进行操作,是在原来的对象之上进行改变.,而对String进行操作,是创建新的对象。StringBuffer的处理速度明显优于String,值传递更符合Java原则,没有String特殊性,不能像String那样使用直接赋值法,而必须采用标准的实例化法才行,不能使用加号“+”去联结字符串,而必须使用一个名叫
电话:086-0510-81026001 传真:086-0510-81026010 邮件:UNISTRAINING@UNISSOFT.COM 第2页/共13页
面试题
append的方法将指定内容追加到序列中。
5. final,finally,finalize的区别(☆☆☆☆)
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
6. 静态变量和实例变量的区别(☆☆☆☆)
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
7. Java语言如何进行异常处理?关键字:
throws ,throw ,try ,catch ,finally分别代表什么意义?在try块中可以抛出异常吗?(☆☆☆☆☆)
Java 通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
1) Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
电话:086-0510-81026001 传真:086-0510-81026010 邮件:UNISTRAINING@UNISSOFT.COM 第3页/共13页
面试题
2) 用try来指定一块预防所有\异常\的程序。
紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的\异常\的类型。
throw语句用来明确地抛出一个\异常\。
throws用来标明一个成员函数可能抛出的各种\异常\。
Finally为确保一段代码不管发生什么\异常\都被执行一段代码。
3) 可以。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,\异常\的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种\异常\进行处理,堆栈就会展开,直到遇到有处理这种\异常\的try语句。
8. 说出一些常用的类,包,接口,请各举5个(☆☆☆☆)
常用的类: BufferedReader BufferedWriter FileReader FileWirter String Integer
常用的包:java.lang java.awt java.io java.util java.sql 常用的接口:Remote List Map Document NodeList
(说明:BufferedReader类用于缓冲读取字符,将字节流封装成BufferedReader对象BufferedWriter提供字符的缓冲写出功能 FileReader 用于以字符为单位读取文本文件 FileWriter类用于将字符数据写出到文本文件中)
9. Java中的异常处理机制的简单原理和应用。(☆☆☆☆)
当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。
一种情况是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是
10. 概述MVC体系结构(☆☆☆☆)
MVC包括三类对象,model是应用对象,view是视图,controller是控制器,
电话:086-0510-81026001 传真:086-0510-81026010 邮件:UNISTRAINING@UNISSOFT.COM 第4页/共13页
面试题
它定义用户界面对用户输入的响应方式。
在MVC体系中,模型通常被称为“业务逻辑”,是真正完成任务的代码,视图就是使用界面,反应数据的变化。控制器控制着模型和视图之间的交互工程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型。在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。
11. Error和exception有什么区别?(☆☆☆☆)
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
12. 同步和异步有何异同,举例说明在什么情况下分别使用他们?(☆ ☆☆☆)
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
13. 你所知道的集合类都有哪些?主要方法?(☆☆☆☆)
最常用的集合类是 List和Map。
List的具体实现包括 ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作\键\和\值\),其中每个键映射到一个值。
14. 多线程有几种实现方法?同步有几种实现方法? (☆☆☆☆☆)
电话:086-0510-81026001 传真:086-0510-81026010 邮件:UNISTRAINING@UNISSOFT.COM 第5页/共13页
正在阅读:
java面试题(经典面试克星)10-18
初中语文考前作文指导课件03-28
湖北省黄冈市高三3月质量检测语文试卷(Word版,含答案)04-26
油水井总复习题106-25
四年级语文上册《秦兵马俑》教案12-16
38国际贸易学研究生培养方案03-24
微机原理自测题302-03
中外教育史综合练习题04-12
超声无损检测技术的现状和发展趋势03-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 克星
- 试题
- 面试
- 经典
- java
- 《普通物理学》试卷(A)
- 管理会计习题答案
- 梅花易数白话速学
- 2010年第二季度获得通信建设工程概预算人员资格名单
- 某电厂600MW超临界机组直流锅炉汽温偏差分析及解决方案
- “现代食品加工及粮食收储运技术与装备”重点专项2016年度项目申报指南
- 音乐与体育教学的互动探究
- 人教版七年级上册语文:一单元导学案
- 仪器分析电位分析篇试题及答案
- 部编版八年级语文上册第六单元测试题(含答案)
- 网红模特大赛活动方案
- “国学新经典”活动总结
- 2017年4月高等教育自学考试全国统一命题考试英语(二)试卷及答案
- 18-国家公务员制度
- 项目榜单
- 懒人菜大全
- 新课程理念下初中地理课堂教学的几点思考
- 2016年下半年台湾省证券从业资格考试:其他衍生工具简介考试题
- 2010年会计从业考试《初级会计电算化》模拟试题付详解(5)
- 专题33 物态与物态变化 热力学定律