JAVA面试题_华为-IBM.pdf
《JAVA面试题_华为-IBM.pdf》由会员分享,可在线阅读,更多相关《JAVA面试题_华为-IBM.pdf(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、J A V A 面试题最全集一、J a v a 基础知识L J a v a 有那些基本数据类型,S t r i n g 是不是基本数据类型,他们有何区别。六种数字类型(四个整数型i n t lo n g b yt e s h o r t,两个浮点型f lo a t do u b le)单字符类型ch a r b o o le a n2.字符串的操作:写一个方法,实现字符串的反转,如:输入a b c,输出cb apublic static void string()System.out.printin(请输入内容:);Scanner inputstring=new Scanner(System.
2、in);String s=inputString.next();for(int i=s.length()-l;i=0;i-)System.out.print(s.charAt(i);)写一个方法,实现字符串的替换,如:输入b b b wli r b b b,输出b b b h h t ccc。3.数据类型之间的转换如何将数值型字符转换为数字(I n t e g e r,Do u b le)如何将数字转换为字符如何取小数点前两位,并四舍五入。4.日期和时间如何取得年月日,小时分秒如何取得从19 70 年到现在的毫秒数如何获取某个日期是当月的最后一天如何格式化日期5.数组和集合6.文件和目录(I/
3、O)操作如何列出某个目录下的所有文件如何列出某个目录下的所有子目录判断一个文件或目录是否存在如何读写文件7.J a v a 多态的实现(继承、重载、覆盖)8.编码转换,怎样实现将G B2312编码的字符串转换为I S 0-8859-1编码的字符串。9 .J a v a 中访问数据库的步骤,S t a t e m e n t 和 P r e p a r e dS t a t e m e n t 之间的区别。二、J S P&S e r v le t 技术1.描述J S P 和 S e r v le t 的区别、共同点、各自应用的范围2.在 W e b 开发中需要处理H T M L 标记时,应做什么
4、样的处理,要筛选哪些字符(&)3.在 J S P 中如何读取客户端的请求,如何访问CG I 变量,如何确定某个J s p 文件的真实路径。4.描述Co o k i e 和 S e s s i o n 的作用,区别和各自的应用范围,S e s s i o n 工作原理。5.列出J s p 中包含外部文件的方式,两者有何区别。6.说明J s p 中e r r o r P a g e 的作用,应用范围。7.介绍在J s p 中如何使用J a v a Be a n S o8.简单介绍J S P 的标记库9 .J s p 和 S e r v le t 中的请求转发分别如何实现。三、J 2E E 相关知识
5、1.介绍 J 2E E、J 2S E、J 2M E 的区别。2.J 2E E 是一种技术还是一种平台,他提供了那些技术。3.什么是A p p li ca t i o n S e r v e r,它有什么功能和优点。4.简单介绍连接池的优点和原理。5.We b.xm l的作用四、其他1.We b 安全性的考虑(表单验证、浏览器Bas i c 方式的验证,应用程序的安全性,SSL,代码考虑)2 .简单介绍您所了解的M V C。3 .简单介绍所了解的XM L。4 .文档和编码规范5.J ava中的分页、效率考虑。6 .简单介绍您所了解的s t ruc t sol.xm l在项目中的作用2.s-E J
6、 B与 e-E J B的区别3.会话面的作用4.c m p 与 b m p 的优缺点5.j 2 m e 程序的必需的几个部分6.c/s 与 b/s 的区别7.构建一个c o n n e c t p o o l,然后再调用它,8.j 2 e e 平台与d o t n e t 平台的区别9.e j b 的 li f e c yc le10.s e s s i o n b e an 和 e n t i t y b e an 的区别11.e j b 中的 t ran s ac t i o n 机制12.s yn c hro n i z e d (生产者和消费)13.St ri n g 和 St ri
7、n gBuf f e r14.Se ri ali z ab le15.M V C (St rut s 的工作流程)16 .什么是M D A17 .t c p 与ud p 的区别18 .链表与散列表和数组的区别19 .堆和栈的区别2 0.e j b 的分类及区别2 1.你对现在软件业以及国内软件业的看法2 2 .谈谈j ava多线程2 3 .谈谈文件加密技术2 4 .软件开发生命周期2 5.路由协议种类及特点2 6 .j ava的awt 和 s wi n g组件的G U I设计的关键2 7 .对于j ava流的认识2 8 .简单描述一下awt 与 s wi n g区别。2 9 .简述j ava编
8、程中事件处理模式。3 0.你编写过ap p le t 吗?ap p le t 的安全权限如何?试列举j ava ap p li c at i o n 或者 ap p le t 中与s e rvle t/j s p 通信可以采用的方式。3 1.简述逻辑操作(如&,|)与条件操作(如&,|)的区别。3 2 .简述J ava Se rve r Page 和 Se rvle t 的联系和区别。3 3 .简述 s yn c hro n i z e d 和 j ava.ut i l,c o n c urre n t,lo c k s.L o c k 的异同?3 4 .E J B规范规定E J B中禁止的操
9、作有哪些?3 5.j ava除了 8 种基本类型外,在虚拟机里还有哪一种,有什么作用?3 6 .除了使用n e w关键字创建对象意外,试列举另外三种以上创建实例的方式?3 7 .c las s lo ad e r 中,J D K 的 API、C las s p at h 中的同 we b-i n f 中的 c las s 加载方式有什么区别?3 8 .列举三种以上垃圾回收算法,并比较其优缺点?3 9 .编写代码实现一个线程池4 0 .描述一下J VM 加载cl a ss文件的原理机制?4 1 .试举例说明一个典型的垃圾回收算法?4 2 .请用j a va 写二叉树算法,实现添加数据形成二叉树功
10、能,并以先序的方式打印出来4 3 .请写一个j a va 程序实现线程连接池功能?4 4 .给定一个C 语言函数,要求实现在j a va 类中进行调用。4 5 .如何获得数组的长度?4 6 .访问修饰符“p ub l i c/p ri va te/p ro te cte d/缺省的修饰符”的使用4 7 .用关键字f i n a l 修饰一个类或者方法时,有何意义?4 8.掌握类和对象的概念,掌握面向对象编程的本质4 9 .静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法?5 0 .J A VA 语言如何进行异常处理,关键字:th o rws,th ro w,try,ca tch,
11、f i n a l l y5 1 .O b j e ct类(或者其子类)的f i n a l i ze。方法在什么情况下被调用?5 2 .一个“.j a va”原文件中是否可以包括多个类(不是内部类)?5 3 .掌握内部类和接口的概念5 4 .S tri n g T o ke n i ze r 类的使用5 5 .数据结构,如何遍历L i st中的元素?如果要按照键值保存或者访问数据,使用什么数据结构?要掌握C o l l e cti o n 相关的接口和类的使用5 6 .使用S tri n g B uf f e r类与S tri n g 类进行字符串连接时有何区别?5 7 .调用T h re
12、a d 类的d e stro y()方法有什么后果?5 8.多线程,用什么关键字修饰同步方法?sto p。和 susp e n d。方法为何不推荐使用?5 9 .使用so cke t建立客户端与服务器的通信的过程6 0 .J A VA 语言国际化应用,L o ca l e 类,U n i co d e6 1 .描述反射机制的作用6 2 .如何读写一个文件?6 3 .在图形界面中,一个按钮如何处理鼠标点击事件?6 4 .在图形界面中,一个表格,如何实现编辑单元格时弹出下拉框?6 5 .如何加载图片?6 6 .什么是模态对话框?6 7 .阐述M VC 的概念6 8.G U I 布局管理器的使用,F
13、 l o w L a y o u t,Bo rd e rL a y o u t,G ri d Ba g L a y o u t6 9 .如何构造一棵树?选择树的一个节点时,如何得到这个节点?7 0 .向编辑框中输入字符时,如何控制只输入整数?7 1 .描述使用JD BC 连接数据库的过程7 2 .E JB分为几类?什么是BM P,C M P?7 3 .什么是JN D I?7 4 .AD 0 是什么?Act i v e X数据对象,是一个应用级程序接口.7 5 .四种JD BC 方式?目前的版本?7 6 .E JB有哪几种?区别是什么?7 7 .Ja v a Be a n 与 E JB有什么区别
14、?7 8 .软件开发生命周期有哪几个阶段?7 9 .软件开发有哪些因素?8 0 .软件开发中如何进行版本控制?8 1 .UM L 中,类视图如何表示类中的继承与聚合?8 2 .客户端游标与服务器端游标的区别?8 3 .动态游标与静态游标的区别?8 4 .d o t n e t 由哪几个基本框架组成?8 5 .O ra cl e 中 SG A 是什么?8 6 .w e b s e rv e rs 是什么?8 7 .UN IX中Q T是什么意思?8 8 .在软件开发生命周期中的哪个阶段开始测试?8 9 .d o t n e t 与 J2 E E 的比较?9 0 .什么是 Act i v e X?9
15、 1 .Ja v a 中 ID L 是什么?9 2 .IS0 9 0 0 0 和 C M M 是什么?IS0 9 0 0 0 和 C M M(软件能力成熟度模型)认证是国际上通用的软件质量评估方法.C M M 的五个成熟度等级。第一,谈谈 f i n a l,f i n a l l y,f i n a l i z e 的区别。f i n a l?修饰符(关键字)如果一个类被声明为f i n a l,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为a b s t ra ct 的,又被声明为f i n a l 的。将变量或方法声明为f i n a l,可以保证它们在使用中
16、不被改变。被声明为f i n a l 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为f i n a l 的方法也同样只能使用,不能重载f i n a l l y?再异常处理时提供f i n a l l y 块来执行任何清除操作。如果抛出一个异常,那么相匹配的c a tc h 子句就会执行,然后控制就会进入f i n a l l y 块(如果有的话)。f i n a l i z e?方法名。J a va 技术允许使用f i n a l i z e 0 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调
17、用的。它是在O b j e c t类中定义的,因此所有的类都继承了它。子类覆盖f i n a l i z e O 方法以整理系统资源或者执行其他清理工作。f i n a l i z e()方法是在垃圾收集器删除对象之前对这个对象调用的。第二,A n o n y m o us I n n e r C l a ss(匿名内部类)是否可以e xte n d s(继承)其它类,是否可以 i m pl e m e n ts(实现)i n te rf a c e(接口)?匿名的内部类是没有名字的内部类。不能e xte n d s(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。第三,S t
18、a ti c N e ste d C l a ss和 I n n e r C l a ss的不同,说得越多越好(面试题有的很笼统)。N e ste d C l a ss(一般是 C+的说法),I n n e r C l a ss(一般是 J A VA 的说法)。J a va内部类与C+嵌套类最大的不同就在于是否有指向外部的引用上。具体可见h ttp:/www.f ro n tf re e.n e t/a rti c l e s/se rvi c e s/vi e w.a sp?i d=7 0 4&pa g e=1注:静态内部类(I n n e r C l a ss)意味着1 创建一个sta t
19、i c 内部类的对象,不需要一个外部类对象,2 不能从一个sta ti c 内部类的一个对象访问一个外部类对象第四,&和&的区别。&是位运算符。&是布尔逻辑运算符。第五,H a sh M a p和 H a sh ta b l e 的区别。都属于M a p接口的类,实现了将惟一键映射到特定的值上。H a sh M a p类没有分类或者排序。它允许一个n ul l 键和多个n ul l 值。H a sh ta b l e 类似于H a sh M a p,但是不允许n ul l 键 和 n ul l 值。它也比H a sh M a p慢,因为它是同步的。第 六,C o l l e c ti o n
20、和 C o l l e c ti o n s 的区别。C o l l e c ti o n s是个j a va,uti l 下的类,它包含有各种有关集合操作的静态方法。C o l l e c ti o n 是个j a va,uti l 下的接口,它是各种集合结构的父接口。第七,什么时候用a sse rt o断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true。如果表达式计算为f a l se,那么系统会报告一个A sse rti o n E rro ro 它用于调试目的:a sse rt(a 0);/t h r o w s an A s s e r t io n Er r o
21、 r if a b o o l e a n 和 s h or toj a va.l a n g.Str i n g 类是f i n a l 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用Str i n g Buf f e r 类3、int 和I n te g e r 有什么区别J a v a 提供两种不同的类型:引用类型和原始类型(或内置类型)。I n t是 j ava 的原始数据类型,I n te g e r 是 j a va 为 i n t提供的封装类。J a va 为每个原始类型提供了封装类。原始类型封装类b o o l e a n Bo o l e a
22、nc h a r Ch a r a c te rb y te By tes h o r t Sh o r ti n t I n te g e rl o n g L o n gf l o a t Fl o a td o ub l e Do ub l e引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为n ul l,而原始类型实例变量的缺省值与它们的类型有关。4、Str i n g 和 Str i n g B
23、uf f e r 的区别J AVA平台提供了两个类:Str i n g 和 Str i n g Buf f e r,它们可以储存和操作字符串,即包含多个字符的字符数据。这个Str i n g 类提供了数值不可改变的字符串。而这个Str i n g Buf f e r 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用Str i n g Buf f e r。典型地,你可以使用Str i n g Buf f e r s来动态构造字符数据。5、运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。j
24、 a va 编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。6 说出Se r vl e t的生命周期,并说出Se r vl e t和 CG I 的区别。Se r vl e t被服务器实例化后,容器运行其i n i t方法,请求到达时运行其s e r vice方法,service方法自动派遣运行与请求对应的doX X X 方 法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与 cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不
25、会销毁,而C GI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。7、说出ArrayList,V ector,LinkedList的存储性能和特性ArrayList和 V ector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,V ector由于使用了 synchronized方法(线程安全),通常性能上较ArrayList差,而 LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 试题 华为 IBM
限制150内