Java常见面试题集.pdf
《Java常见面试题集.pdf》由会员分享,可在线阅读,更多相关《Java常见面试题集.pdf(109页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java常见面试题集 、Java基础知识 Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。2.字符串的操作:写一个方法,实现字符串的反转,如:输入a b c,输出cba写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。3.数据类型之间的转换如何将数值型字符转换为数字(Integer,Double)如何将数字转换为字符如何取小数点前两位,并四舍五入。4.日期和时间如何取得年月日,小时分秒如何取得从1970年到现在的毫秒数如何获取某个日期是当月的最后一天如何格式化日期5.数组和集合6.文件和目录(I/O)操作如何列出某个目录下的所有文件如
2、何列出某个目录下的所有子目录判断一个文件或目录是否存在如何读写文件7.Java多态的实现(继承、重载、覆盖)8.编码转换,怎样实现将GB2312 编码的字符串转换为ISO-8859-1编码的字符串。9.Java中访问数据库的步骤,Statement和 PreparedStatement之间的区别。10.找出下列代码可能存在的错误,并说明原因:二、JSP&Servlet 技术1.描述JSP和 Servlet的区别、共同点、各自应用的范围2.在W eb开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(&3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真
3、实路径。4.描述Cookie和 Session的作用,区别利各自的应用范围,Session工作原理。5.列出Jsp中包含外部文件的方式,两者有何区别。6.说明Jsp中 errorPage的作用,应用范围。7.介绍在Jsp中如何使用JavaBeans8.简单介绍JSP的标记库9.Jsp和 Servlet中的请求转发分别如何实现。三、J2EE相关知识介绍 J2EE、J2SE、J2SE 的区别。2.J2EE是一种技术还是一种平台,他提供了那些技术。3.什么是Application Server,它有什么功能和优点。4.简单介绍连接池的优点和原理。5.Web.xml的作用四、其他LW eb安全性的考虑
4、(表单验证、浏览器Basic方式的验证,应用程序的安全性,S S L,代码考虑)2.简单介绍您所了解的MVCo3.简单介绍所了解的XML。4.文档和编码规范5.Java中的分页、效率考虑。6.简单介绍您所了解的structSo1.xml在项目中的作用2.S-E JB 与 e-EJB的区别3.会话面的作用4.cmp与 bmp的优缺点5.j2me程序的必需的几个部分6.c/s与 b/s的区别7.构 建,个 connect pool,然后再调用它,8.j2ee平台与dotnet平台的区别9.ejb 的 life cycle10.session bean 和 entity bean 的区别11.ejb
5、 中的 transaction 机制12.synchronized(生产者和消费)13.String 和 StringBuffer14.Serializable15.MVC(Struts的工作流程)16.什么是MDA17.tcp与 udp的区别18.链表与散列表和数组的区别19.堆和栈的区别2O.ejb的分类及区别21.你对现在软件业以及国内软件业的看法22.谈谈java多线程23.谈谈文件加密技术24.软件开发生命周期25.路由协议种类及特点26.java的 awt和 swing组件的GUI设计的关键27.对于java流的认识28.简单描述一下awt与 swing区别。29.简述java编程
6、中事件处理模式。30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。31.简述逻辑操作(如&,|)与条件操作(如&,|)的区别。32.简述Java Server Page和 Servlet的联系和区别。33.简述 synchronized 和 java.util.concurrent.locks.Lock 的 异 同?34.EJB规范规定EJB中禁止的操作有哪些?35.java除了 8 种基本类型外,在虚拟机里还有哪种,有什么作用?36.除了使用new关键字创建对象意外,试列举另外三种以上
7、创建实例的方式?37.classloader中,JDK的 APLCIasspath中的同web-inf中的class加载方式有什么区别?38.列举三种以上垃圾回收算法,并比较其优缺点?39.编写代码实现一个线程池40.描述一下JVM加载class文件的原理机制?41.试举例说明-个典型的垃圾回收算法?42.请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来.43.请写一个java程序实现线程连接池功能?44.给定一个C 语言函数,要求实现在java类中进行调用.45.如何获得数组的长度?46.访问修饰符public/private/protected/缺省的修饰符”的
8、使用47.用关键字final修饰一个类或者方法时,有何意义?48.掌握类和对象的概念,掌握面向对象编程的本质49.静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法?50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally51.Object类(或者其子类)的 finalize。方法在什么情况下被调用?52.一个“.java”原文件中是否可以包括多个类(不是内部类)?53.掌握内部类和接口的概念54.StringTokenizer 类的使用55.数据结构,如何遍历List中的元素?如果要按照键值保存或者访问数据,使用什么数据结构?要掌握
9、Collection相关的接口和类的使用56.使用StringBuffer类与String类进行字符串连接时有何区别?57.调用Thread类的destroy。方法有什么后果?58.多线程,用什么关键字修饰同步方法?stop()和 suspend。方法为何不推荐使用?59.使用socket建立客户端与服务器的通信的过程60.JAVA语言国际化应用,Locale类,Unicode61.描述反射机制的作用62.如何读写一个文件?63.在图形界面中,一个按钮如何处理鼠标点击事件?64.在图形界面中,一个表格,如何实现编辑单元格时弹出下拉框?65.如何加载图片?66.什么是模态对话框?67.阐述MVC
10、的概念68.GUI 布局管理器的使用,FlowLayout,BorderLayout,GridBagLayout69.如何构造一棵树?选择树的一个节点时,如何得到这个节点?70响编辑框中输入字符时,如何控制只输入整数?71.描述使用JDBC连接数据库的过程72.EJB分为几类?什么是BMP,CMP?73.什么是JNDI?74.ADO是什么?ActiveX数据对象,是一个应用级程序接口.75.四种JDBC方式?目前的版本?76.EJB有哪几种?区别是什么?77.JavaBean与 EJB有什么区别?78.软件开发生命周期有哪几个阶段?79.软件开发有哪些因素?80.软件开发中如何进行版本控制?8
11、1.UML中,类视图如何表示类中的继承与聚合?82.客户端游标与服务器端游标的区别?83.动态游标与静态游标的区别?84.dotnet由哪几个基本框架组成?85.0racle 中 SGA 是什么?86.web servers 是什么?87.UNIX中 Q T是什么意思?88.在软件开发生命周期中的哪个阶段开始测试?89.dotnet 与 J2EE 的比较?90.什么是 ActiveX?91.Java中 IDL是什么?92.IS09000和 CMM是什么?IS09000和 CMM(软件能力成熟度模型)认证是国际上通用的软件质量评估方法C M M 的五个成熟度等级。第一,谈谈 final,fina
12、lly,finalize 的区别。final?修 饰 符(关键字)如果,个类被声明为f in a l,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为fin a l的。将变量或方法声明为f in a l,可以保证它们在使用中不被改变。被声明为fin a l的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为fin a l的方法也同样只能使用,不能重载fin a lly?再异常处理时提供fin a lly 块来执行任何清除操作。如果抛出一个异常,那么相匹 配 的 catch子句就会执行,然后控制就会进入fin a lly
13、 块(如果有的话)。finalize?方法名。Java技术允许使用fin a liz e O 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它 是 在 Ob j e c t 类中定义的,因此所有的类都继承了它。子类覆盖f i na l i z e O方法以整理系统资源或者执行其他清理工作。f i na l i z e O方法是在垃圾收集器删除对象之前对这个对象调用的。第二,A nony m ou s I nne r C l a s s (匿名内部类)是否可以e x t e nd s(继承)其它类,是否可以i m p
14、 l e m e nt s(实现)i nt e r f a c e (接口)?匿名的内部类是没有名字的内部类。不能e x t e nd s(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。第三,St a t i c Ne s t e d C l a s s 和 I nne r C l a s s 的不同,说得越多越好(面试题有的很笼统)。Ne s t e d C l a s s (一般是C+的说法),I nne r C l a s s (一般是J A V A 的说法)。J a v a 内部类与C+嵌套类最大的不同就在于是否有指向外部的引用上。具体可见h t t p:/w w.f
15、 r ont f r e e.ne t/a r t i c l e s/s e r v i c e s/v i e w.a s p?i d=70 4&p a g e=1注:静态内部类(I nne r C l a s s)意味着1 创建一个s t a t i c 内部类的对象,不需要一个外部类对象,2不能从一个s t a t i c 内部类的 个对象访问一个外部类对象第 四,&和&的区别。&是位运算符。&是布尔逻辑运算符。第 五,H a s h Ma p 和 H a s h t a b l e 的区别。都属于Ma p 接口的类,实现了将惟一键映射到特定的值上。H a s h Ma p 类没有分类
16、或者排序。它允许一个nu l l 键和多个nu l l 值。H a s h t a b l e 类 似 于 H a s h Ma p,但是不允许nu l l 键 和 nu l l 值。它 也 比 H a s h Ma p 慢,因为它是同步的。第 六,C ol l e c t i on 和 C ol l e c t i ons 的区别。C ol l e c t i ons 是个j a v a,u t i l 下的类,它包含有各种有关集合操作的静态方法。C ol l e c t i on是个j a v a,u t i l 下的接口,它是各种集合结构的父接口。第七,什么时候用a s s e r t。
17、断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为t r u e。如果表达式计 算 为 f a l s e,那么系统会报告一个A s s e r t i onE r r or。它用于调试目的:a s s e r t(a 0);/t h r ow s a n A s s e r t i onE r r or i f a c h a r 或者 b yt e。l o n g,s t ri n g 都不能作用于 s w t i c h。第三十二,编程题:写 一 个 Si n g l e t o n 出来。Si n g l e t o n 模式主要作用是保证在Ja v a 应用程序中,一个类
18、C l a s s 只有一个实例存在。一般Si n g l e t o n 模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为p ri v a t e 的,它有一个s t a t i c 的 p ri v a t e 的该类变量,在类初始化时实例话,通过一个p u b l i c 的 g e t l n s t a n c e 方法获取对它的弓I 用,继而调用其中的方法。p u b l i c c l a s s Si n g l e t o n (p ri v a t e Si n g l e t o n()在自己内部定义自己一个实例,是不是很奇怪?注意这是p ri v a t e
19、 只供内部调用p ri v a t e s t a t i c Si n g l e t o n i n s t a n c e =n e w Si n g l e t o n();这里提供了一个供外部访问本c l a s s 的静态方法,可以直接访问p u b l i c s t a t i c Si n g l e t o n g e t l n s t a n c e()return instance;)第二种形式:public class Singleton private static Singleton instance=null;public sta tic synchroniz
20、ed Singleton getlnstance()这个方法比上面有所改进,不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率!if(instance-null)instance=new Singleton();return instance;其他形式:定义一个类,它的构造函数为p riv a te 的,所有方法为s ta tic 的。般认为第种形式要更加安全些-Java 面试题和答案(http:/ 17:29:00-Java面试题和答案JAVA相关基础知识1、面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象
21、并不打算了解全部问题,而只是选择其中的 部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对
22、象通过一个受保护的接口访问其他对象。4.多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。2、String是最基本的数据类型吗?基本数据类型包括 byte、int、char、long,float、double、boolean 和 short。java.Iang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类3、in t和 Integer有什么区别Java提供两种不同的类型:引用类型和原始
23、类型(或内置类型)。Int是 java的原始数据类型,Integer是java为 int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类boolean Booleanchar Characterbyte Byteshort Shortint Integerlong Longfloat Floatdouble Double引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省 值 为 n u ll,
24、而原始类型实例变量的缺省值与它们的类型有关。4、String 和 StringBuffer 的区别JAVA平台提供了两个类:String StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。5、运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java
25、编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。6、说出Servlet的生命周期,并说出Servlet和 CGI的区别。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方 法(doGet,do P ost)等,当服务器决定将实例销毁的时候调用其destroy方法。与 cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而 CGI对福个请求都产生新的进程,服务完成后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 常见 试题
限制150内