Java常见面试题集及答案.doc
《Java常见面试题集及答案.doc》由会员分享,可在线阅读,更多相关《Java常见面试题集及答案.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Javaa常见面面试题集集及答案案找工作要要面试,有有面试就就有对付付面试的的办法。以下一一些题目目来自业业内朋友友痛苦的的面试经经历,提提这些问问题的公公司包括括IBMM, EE*Trradee, SSiebbel, Mootorrolaa, SSUN,以及其其它大小小公司。面试试是没什什么道理理可讲的的,它的的题目有有的不合合情理、脱离实实际。有有在纸上上写的,有有当面考考你的,也也有在电电话里问问的,给给你IDE的估计计很少(否则你你赶快去去买彩票票,说不不定中)。所以以如果你你看完此此文后,请请不要抱抱怨说这这些问题题都能用用IDE来解决决。你必必须在任任何情况况下准确确回答这这些问题
2、题,在面面试中如如果出现现一两题题回答不不准确很很有可能能你就被被拒之门门外了。当然然这些都都是Javva的基本本题,那那些面试试的人大大多数不不会问你你Hibbernnatee有多先先进,Ecllipsse的三个个组成部部分,或或commmannd ddesiign pattterrn,他们们都是老老一辈了了,最喜喜欢问的的就是基基础知识识。别小小看了这这些基础础,我朋朋友水平平一流,结结果就栽栽在一到到基础知知识的问问题下,和和高薪无无缘。好了了废话少少说,开开始正题题。问:第一一,谈谈谈finnal, fiinallly, fiinallizee的区别别。最常常被问到到。第二二,Anoo
3、nymmouss Innnerr Cllasss (匿名内内部类)是否可可以exttendds(继承)其它类类,是否否可以impplemmentts(实现)innterrfacce(接口)?第三,Staaticc Neesteed CClasss和Innner Claass的不同同,说得得越多越越好(面试题题有的很很笼统)。第四四,&和&的区别别。这个个问得很很少。第五五,HasshMaap和Hasshtaablee的区别别。常问问。第六六,Colllecctioon和Colllecctioons的区别别。你千千万别说说一个是是单数一一个是复复数。第七七,什么么时候用用asssertt。APP
4、I级的技技术人员员有可能能会问这这个。第八八,GC是什么?为什么么要有GC? 基础。 第九,Strringg s = nnew Strringg(xxyz);创建了了几个Strringg Obbjecct? 第十,Matth.rrounnd(111.55)等於多多少? MMathh.rooundd(-111.55)等於多多少? 第十一一,shoort s1 = 11; ss1 = s11 + 1;有什么么错? sshorrt ss1 = 1; s11 += 1;有什么么错?面试题题都是很很变态的的,要做做好受虐虐的准备备。第十十二,sleeep()和waiit()有什么么区别?搞线程程的最爱爱
5、。第十十三,Javva有没有gotto?很十三三的问题题,如果果哪个面面试的问问到这个个问题,我我劝你还还是别进进这家公公司。第十十四,数数组有没没有lenngthh()这个方方法? SStriing有没有lenngthh()这个方方法? 第十五五,Oveerlooad和Oveerriide的区别别。Oveerlooadeed的方法法是否可可以改变变返回值值的类型型?常问。第十十六,Set里的元元素是不不能重复复的,那那么用什什么方法法来区分分重复与与否呢?是用=还是equualss()?它们有有何区别别? 第十七七,给我我一个你你最常见见到的runntimme eexceeptiion。如果
6、果你这个个答不出出来,面面试的人人会认为为你没有有实际编编程经验验。第十十八,errror和exccepttionn有什么么区别? 第十九九,Lisst, Sett, MMap是否继继承自Colllecctioon接口? 第二十十,absstraact claass和intterffacee有什么么区别?常问。第二二十一,absstraact的metthodd是否可可同时是是staaticc,是否可可同时是是nattivee,是否否可同时时是synnchrroniizedd? 第二十十二,接接口是否否可继承承接口?抽象类类是否可可实现(immpleemennts)接口?抽象类类是否可可继承实实
7、体类(conncreete claass)? 第二十十三,启启动一个个线程是是用runn()还是staart()?第二十十四,构构造器Connstrructtor是否可可被oveerriide? 第二十十五,是是否可以以继承Strringg类? 第二十十六,当当一个线线程进入入一个对对象的一一个synnchrroniizedd方法后后,其它它线程是是否可进进入此对对象的其其它方法法? 第二十十七,tryy 里有一一个retturnn语句,那那么紧跟跟在这个个try后的finnallly 里的codde会不会会被执行行,什么么时候被被执行,在return前还是后? 第二十十八,编编程题:用最有有
8、效率的的方法算算出2乘以8等於几?有C背景的的程序员员特别喜喜欢问这这种问题题。第二二十九,两两个对象象值相同同(x.equualss(y) = trrue),但却却可有不不同的hassh ccodee,这句句话对不不对? 第三十十,当一一个对象象被当作作参数传传递到一一个方法法后,此此方法可可改变这这个对象象的属性性,并可可返回变变化后的的结果,那那么这里里到底是是值传递递还是引引用传递递? 第三十十一,swttichh是否能能作用在在bytte上,是是否能作作用在lonng上,是是否能作作用在Strringg上? 第三十十二,编编程题:写一个Sinngleetonn出来。 好好先说这这么一
9、些些。答:第一,谈谈谈finnal, fiinallly, fiinallizee的区别别。fiinall修饰符符(关键键字)如如果一个个类被声声明为finnal,意味味着它不不能再派派生出新新的子类类,不能能作为父父类被继继承。因因此一个个类不能能既被声声明为absstraact的,又又被声明明为finnal的。将将变量或或方法声声明为finnal,可以以保证它它们在使使用中不不被改变变。被声声明为finnal的变量量必须在在声明时时给定初初值,而而在以后后的引用用中只能能读取,不不可修改改。被声声明为finnal的方法法也同样样只能使使用,不不能重载载。finaallyy再异常常处理时时提
10、供finnallly块来执执行任何何清除操操作。如如果抛出出一个异异常,那那么相匹匹配的cattch子句就就会执行行,然后后控制就就会进入入finnallly块(如如果有的的话)。fiinallizee方法名名。Javva技术允允许使用用finnaliize()方法在在垃圾收收集器将将对象从从内存中中清除出出去之前前做必要要的清理理工作。这个方方法是由由垃圾收收集器在在确定这这个对象象没有被被引用时时对这个个对象调调用的。它是在在Objjectt类中定定义的,因因此所有有的类都都继承了了它。子子类覆盖盖finnaliize()方法以以整理系系统资源源或者执执行其他他清理工工作。finnalii
11、ze()方法是是在垃圾圾收集器器删除对对象之前前对这个个对象调调用的。第二二,Anoonymmouss Innnerr Cllasss (匿名内内部类)是否可可以exttendds(继承)其它类类,是否否可以impplemmentts(实现)innterrfacce(接口)? 匿名名的内部部类是没没有名字字的内部部类。不不能exttendds(继承)其它类类,但一一个内部部类可以以作为一一个接口口,由另另一个内内部类实实现。第三三,Staaticc Neesteed CClasss和Innner Claass的不同同,说得得越多越越好(面试题题有的很很笼统)。Neesteed CClasss(
12、一般般是C+的说法法),Innner Claass (一般是JAVVA的说法)。Javva内部类类与C+嵌套类类最大的的不同就就在于是是否有指指向外部部的引用用上。具具体可见见htttp: /xxfroontffreee.neet/aartiiclees/sservvicees/vvieww.assp?iid=7704&pagge=11 注:静态内内部类(Innner Claass)意味味着1创建一一个staaticc内部类类的对象象,不需需要一个个外部类类对象,2不能从从一个staaticc内部类类的一个个对象访访问一个个外部类类对象第第四,&和&的区别别。&是是位运算算符。&是布尔尔逻辑运
13、运算符。第五五,HasshMaap和Hasshtaablee的区别别。都属属于Map接口的的类,实实现了将将惟一键键映射到到特定的的值上。HaashMMap类没有有分类或或者排序序。它允允许一个个nulll键和多多个nulll值。Haashttablle类似于HasshMaap,但是是不允许许nulll键和nulll值。它它也比HasshMaap慢,因因为它是是同步的的。第六六,Colllecctioon和Colllecctioons的区别别。Coolleectiionss是个javva.uutill下的类类,它包包含有各各种有关关集合操操作的静静态方法法。Coolleectiion是个jav
14、va.uutill下的接接口,它它是各种种集合结结构的父父接口。第七七,什么么时候用用asssertt。断言是一一个包含含布尔表表达式的的语句,在在执行这这个语句句时假定定该表达达式为truue。如果果表达式式计算为为fallse,那么么系统会会报告一一个Assserttionnerrror。它用用于调试试目的:assserrt(aa 0); / thhrowws aan AAsseertiioneerroor iif aa = 0 断言可可以有两两种形式式:assserrt EExprresssionn1 ; assserrt EExprresssionn1 : Exxpreessiion2
15、2 ; Exxpreessiion11应该总总是产生生一个布布尔值。Exxpreessiion22可以是是得出一一个值的的任意表表达式。这个值值用于生生成显示示更多调调试信息息的Strringg消息。断言言在默认认情况下下是禁用用的。要要在编译译时启用用断言,需需要使用用souurcee 1.4标记:jaavacc -ssourrce 1.44 Teest.javva 要在在运行时时启用断断言,可可使用-ennablleassserrtioons或者-ea标记。要在在运行时时选择禁禁用断言言,可使使用-da或者-diisabbleaasseertiionss标记。要系系统类中中启用断断言,可可
16、使用-essa或者-dssa标记。还可以以在包的的基础上上启用或或者禁用用断言。可以以在预计计正常情情况下不不会到达达的任何何位置上上放置断断言。断断言可以以用于验验证传递递给私有有方法的的参数。不过,断断言不应应该用于于验证传传递给公公有方法法的参数数,因为为不管是是否启用用了断言言,公有有方法都都必须检检查其参参数。不不过,既既可以在在公有方方法中,也也可以在在非公有有方法中中利用断断言测试试后置条条件。另另外,断断言不应应该以任任何方式式改变程程序的状状态。第八八,GC是什么?为什么么要有GC? (基础)。GCC是垃圾圾收集器器。Javva程序员员不用担担心内存存管理,因因为垃圾圾收集器
17、器会自动动进行管管理。要要请求垃垃圾收集集,可以以调用下下面的方方法之一一:Syysteem.ggc() Ruuntiime.gettRunntimme().gcc() 第九九,Strringg s = nnew Strringg(xxyz);创建了了几个Strringg Obbjecct? 两个个对象,一一个是xyyx,一个是是指向xyyx的引用用对象s。 第十,MMathh.rooundd(111.5)等於多多少? MMathh.rooundd(-111.55)等於多多少? Maath.rouund(11.5)返回(lonng)12,Matth.rrounnd(-11.5)返回(lonng
18、)-111; 第十一,shoort s1 = 11; ss1 = s11 + 1;有什么么错? sshorrt ss1 = 1; s11 += 1;有什么么错? shorrt ss1 = 1; s11 = s1 + 11;有错,s1是shoort型,s1+1是int型,不能显显式转化化为shoort型。可可修改为为s1 =(sshorrt)(s1 + 11) 。shoort s1 = 11; ss1 += 11正确。 第十二,sleeep() 和 waait() 有什么么区别? 搞线程程的最爱爱slleepp()方法是是使线程程停止一一段时间间的方法法。在sleeep 时间间间隔期满满后,线线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 常见 试题 答案
限制150内