《Java面试题集最全版13904.docx》由会员分享,可在线阅读,更多相关《Java面试题集最全版13904.docx(106页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录表第一章技巧巧篇2介绍自己22行为2第二章智力力篇3微软面试题题3第三章 JJava篇篇5Java基基础方面-概念5Java基基础方面线程编程程方面122Java基基础方面编程14第四章 JJsp篇30第五章 SServllet篇31第六章应用用服务器篇篇37第七章 JJ2EE,MVC篇篇38第八章设计计模式方面面篇40第九章 HHiberrnatee程序性能能优化篇441Hiberrnatee程序性能能优化455Hiberrnatee 优化47Hiberrnatee优化的几几点建议551Hiberrnatee性能优化化52第十章数据据库篇555第一套数据据库笔试题题及答案555第二套数据
2、据库笔试题题及答案664第一章 技技巧篇介绍自己1、自我认认识想一矢矢中的,首首先必须认认清自我,一一定要弄清清以下三个个问题。 你现在是是干什么的的?你将来来要干什么么?你过去去是干什么么的?这三三个问题不不是按时间间顺序从过过去到现在在再到将来来,而是从从现在到将将来再到过过去。其奥奥妙在于:如果你被被雇用,雇雇主选中的的是现在的的你,他希希望利用的的是将来的的你,而这这将来又基基于你的历历史和现状状。所以,第第一个问题题,你是干干什么的?现在是干干什么的?回答这个个问题,要要点是:你你是你自己己,不是别别的什么人人。除非你你把自己与与别人区别别开来,在在共同点的的基础上更更强调不同同点,
3、否则则你绝无可可能在众多多的应征求求职者中夺夺魁。 对对于这第一一个问题,自自我反省越越深,自我我鉴定就越越成功。随随后,着手手回答第二二个问题:你将来要要干什么?如果你申申请的是一一份举足轻轻重的工作作,雇主肯肯定很关注注你对未来来的自我设设计。你的的回答要具具体,合理理,并符合合你现在的的身份,要要有一个更更别致的风风格。然后后,再着手手回答最后后一个问题题:你过去去是干什么么的?你的的过去当然然都在履历历上已有反反映。你在在面试中再再度回答这这个问题时时,不可忽忽略之处是是:不要抖抖落一个与与你的将来来毫不相干干的过去。如如果你中途途彻底改行行,更要在在描述你的的执着、职职业目标的的一贯
4、性上上下些功夫夫。要做到到这一点,又又要忠实于于事实和本本人,最简简单的方法法是:找到到过去与将将来的联系系点,收集集过去的资资料,再按按目标主次次排列。用用这样的方方法,以现现在为出发发点,以将将来为目标标,以过去去为证实,最最重要的是是加深了你你的自我分分析和理解解。其实,在在面试的时时候不一定定有机会或或者有必要要照搬你的的大作,但但这三个问问题的内在在联系点一一定会体现现在自我表表述的整体体感觉中,使使你的形象象栩栩如生生。2、投投其所好清清楚自己的的强项后,便便可以开始始准备自我我介绍的内内容:包括括工作模式式、优点、技技能,突出出成就、专专业知识、学学术背景等等。好处众众多,但只只
5、有短短一一分钟,所所以一切还还是与该公公司有关的的好。如果果是一间电电脑公司,应应说些电脑脑的话题;如是一间间金融财务务公司,便便可跟他说说钱的事,总总之投其所所好。但有有一点必须须紧记:话话题所到之之处,必须须突出自己己对该公司司可以作出出的贡献,如如增加营业业额、减低低成本、发发掘新市场场等。3、铺铺排次序内内容的次序序亦极重要要,是否能能抓住听众众的注意力力,全在于于事件的编编排方式。所所以排在头头位的,应应是你最想想他记得的的事情。而而这些事情情,一般都都是你最得得意之作。与与此同时,可可呈上一些些有关的作作品或纪录录增加印像像分。行为1、第一印印象很重要要:注意和和考官们目目光交流,
6、而而不要环顾顾四周,和和主考官握握手一定要要有力,以以说明你的的自信和热热情;要两两眼平视主主考官。2、面试试时注意力力要集中。不不要忽略主主考官提出出的任何问问题。3、尽量量少说话。不不要夸夸其其谈、滔滔滔不绝的说说个没完没没了,回答答问题要简简单具体明明了。4、准时时参加面试试。准时说说明你重诺诺守信。5、不要要在面试中中表现出你你对这份工工作毫无兴兴趣,但也也不要表现现出你非常常迫切地希希望得到这这份工作。6、得体着装。7、注意礼貌,多使用“请”“谢谢”“非常荣幸”之类的词语;8、有些行为反映了面试者的紧张情绪,比如不停地摸头发、玩圆珠笔、不停地舔嘴唇等,都会让主考官对你的印象大打折扣,
7、因此不要有过多的小动作。9、向主考官简明地介绍你的才能以及你打算怎样在工作岗位上发挥作用。让主考官更好地认识你。10、最后,在面试之前一定要仔细了解用人单位的特点和工作范畴。第二章 智智力篇微软面试题题一最基本本题型(说说明:此类类题型比较较简单) 1.烧一根不不均匀的绳绳,从头烧烧到尾总共共需要1个个小时。现现在有若干干条材质相相同的绳子子,问如何何用烧绳的的方法来计计时一个小小时十五分分钟呢? 2.你有有一桶果冻冻,其中有有黄色、绿绿色、红色色三种,闭闭上眼睛抓抓取同种颜颜色的两个个。抓取多多少个就可可以确定你你肯定有两两个同一颜颜色的果冻冻? 33.如果你你有无穷多多的水,一一个3公升升
8、的提捅,一一个5公升升的提捅,两两只提捅形形状上下都都不均匀,问问你如何才才能准确称称出4公升升的水? 4.一个个岔路口分分别通向诚诚实国和说说谎国。来来了两个人人,已知一一个是诚实实国的,另另一个是说说谎国的。诚诚实国永远远说实话,说说谎国永远远说谎话。现现在你要去去说谎国,但但不知道应应该走哪条条路,需要要问这两个个人。请问问应该怎么么问? 5.122个球一个个天平,现现知道只有有一个和其其它的重量量不同,问问怎样称才才能用三次次就找到那那个球。一一三个呢?(注意此此题并未说说明那个球球的重量是是轻是重,所所以需要仔仔细考虑) 6.在99个点上画画10条直直线,要求求每条直线线上至少有有三
9、个点? 7.在一天的的24小时时之中,时时钟的时针针、分针和和秒针完全全重合在一一起的时候候有几次?都分别是是什么时间间?你怎样样算出来的的?答案:1.一要要一头烧,一一根从两头头烧,再有有一根做参参照,两头头烧完的记记下位置(即即烧到这里里要半小时时),把参参照的那根根从标记位位置处剪开开,取其中中一段A。 一头头烧的那根根烧完后(就就是一个小小时后),把把A从两头头开始烧,烧烧完后即为为十五分钟钟,加起来来共一小时时十五分钟钟。2、四个3.大桶装装满水,倒倒入小桶,大大桶剩下22公升水。小小桶水倒掉掉,大桶剩剩2公升水水倒入小桶桶中,大桶桶再装满后后,倒入小小桶至小桶桶满,大桶桶即剩公公升
10、水。 4.如果参参加过类似似于奥林匹匹克数学班班的,都应应做过这些些题。问他他你的国家家怎么走,他他肯定指向向的是诚实实国。 55.12个个时可以找找出那个是是重还是轻轻,一三个个时只能找找出是哪个个球,轻重重不知。 把球球编为。(一一三个时编编号为) 第第一次称:先把与放天平两两边, 如相等,说说明特别球球在剩下44个球中。 把与作第二二次称量, 如相等,说说明特别,把把与作第三次次称量即可可判断是是重还是是轻 如说明要要么是中有一个个重的,要要么是轻的。 把与作第三次次称量,如如相等说明明轻,不等等可找出谁谁是重球。 如说明要要么是中有一个个轻的,要要么是重的。 把与作第三次次称量,如如相
11、等说明明重,不等等可找出谁谁是轻球。 如左边边右边,说说明左边有有轻的或右右边有重的的 把把与做第第二次称量量 如相等,说说明中有一一个重,把把与作第三次次称量即可可判断是与中谁是重重球 如说明明要么是中有一一个轻的,要要么是重的。 把与作第三次次称量,如如相等说明明重,不等等可找出谁谁是轻球。 如说明明要么是是轻的,要要么中有一一个是重的的。 把与作第三次次称量,如如相等说明明轻,不等等可找出谁谁是重球。 如左边边右边,参参照相反反进行。 当一一三个球时时,第步步以后如下下进行。 把与作第二二次称量, 如相等,说说明特别,把把与作第三次次称量即可可判断是还是特别,但但判断不了了轻重了。 不等
12、的情情况参见第第步的 6. 见下面面的点110条线的的情况是 123 456 789 148 一五9 247 258 269 357 368 7.首先先考察时针针与分针的的情况,很很容易看出出分针转一一圈与时针针只重合一一次,就是是一小时一一次。但111时与00时的分钟钟区内共享享一个重合合点,所只只24 小时中,只只有22次次重合,现现在只需考考察这222个重合点点时,秒针针与不与它它重合就行行了(实际际上,只要要判断111个重合点点,剩下的的11个情情况相同)。 0时时整当然没没问题,当当n点到nn+1点间间(n=11,2,10),设这时时是X小时时 则则30X=600(X-nn)6 即X
13、X=12nn/11。 此时时时针分针针的位置是是30X=(3360/111)n=(322+8/111)n 秒针针的位置是是360(X-n)6=(43320/111)n=(3992+8/11)nn=3600n+(322+8/111)n=(322+8/111)n 重合合!所以共共有22个个点重合。第三章 JJava篇篇Java基基础方面-概念作用域puublicc,priivatee,prootectted,以以及不写时时的区别 答:区别别如下: 作用域 当前类 同一paackagge 子孙孙类 其他他packkage publlic pproteectedd friiendlly prrivat
14、te 不写写时默认为为frieendlyy 2、AAnonyymouss Innner CClasss (匿名名内部类) 是否可可以exttendss(继承)其它类,是是否可以iimpleementts(实现现)intterfaace(接接口) 答答:匿名的的内部类是是没有名字字的内部类类。不能eextennds(继继承) 其其它类,但但一个内部部类可以作作为一个接接口,由另另一个内部部类实现 3、Sttaticc Nessted Classs 和 Inneer Cllass的的不同 答答:Nessted Classs (一一般是C+的说法法),Innner Classs (一一般是JAAVA
15、的说说法)。JJava内内部类与CC+嵌套套类最大的的不同就在在于是否有有指向外部部的引用上上。注: 静态内部部类(Innner Classs)意味味着1创建建一个sttaticc内部类的的对象,不不需要一个个外部类对对象,2不不能从一个个stattic内部部类的一个个对象访问问一个外部部类对象 4、&和和&的区区别 答:&是位运运算符,表表示按位与与运算,&是逻辑辑运算符,表表示逻辑与与(andd) 5、CColleectioon 和 Colllectiions的的区别 答答:Colllecttion是是集合类的的上级接口口,继承与与他的接口口主要有SSet 和和Listt. Coollec
16、ctionns是针对对集合类的的一个帮助助类,他提提供一系列列静态方法法实现对各各种集合的的搜索、排排序、线程程安全化等等操作 66、什么时时候用asssertt 答:aasserrtionn(断言)在软件开开发中是一一种常用的的调试方式式,很多开开发语言中中都支持这这种机制。在在实现中,aasserrtionn就是在程程序中的一一条语句,它它对一个bbooleean表达达式进行检检查,一个个正确程序序必须保证证这个boooleaan表达式式的值为ttrue;如果该值值为fallse,说说明程序已已经处于不不正确的状状态下,系系统将给出出警告或退退出。一般般来说,aasserrtionn用于保
17、证证程序最基基本、关键键的正确性性。asssertiion检查查通常在开开发和测试试时开启。为为了提高性性能,在软软件发布后后,asssertiion检查查通常是关关闭的 77、Strring s = new Striing(xyz);创建建了几个SStrinng Obbjectt 答:两两个,一个个字符对象象,一个字字符对象引引用对象 8、Maath.rroundd(11.5)等於於多少? Mathh.rouund(-11.55)等於多多少 答: Matth.roound(11.55)=112;Maath.rroundd(-111.5)=-111;rouund方法法返回与参参数最接近近的长整
18、数数,参数加加1/2后后求其flloor 9、shhort s1 = 1; s1 = s1 + 1;有什么错错? shhort s1 = 1; s1 += 1;有什么错错 答:sshortt s1 = 1; s1 = s11 + 11; (ss1+1运运算结果是是int型型,需要强强制转换类类型)shhort s1 = 1; s1 += 1;(可以正正确编译) 10、JJava有有没有gooto 答答:javva中的保保留字,现现在没有在在javaa中使用 11、数数组有没有有lenggth()这个方法法? Sttringg有没有llengtth()这这个方法 答:数组组没有leengthh(
19、)这个个方法,有有lenggth的属属性。Sttringg有有leengthh()这个个方法 112、Ovverlooad和OOverrride的的区别。OOverlloadeed的方法法是否可以以改变返回回值的类型型 答:方方法的重写写Overrridiing和重重载Oveerloaadingg是Javva多态性性的不同表表现。重写写Overrridiing是父父类与子类类之间多态态性的一种种表现,重重载Oveerloaadingg是一个类类中多态性性的一种表表现。如果果在子类中中定义某方方法与其父父类有相同同的名称和和参数,我我们说该方方法被重写写 (Ovverriidingg)。子类类的
20、对象使使用这个方方法时,将将调用子类类中的定义义,对它而而言,父类类中的定义义如同被屏蔽了了。如果在在一个类中中定义了多多个同名的的方法,它它们或有不不同的参数数个数或有有不同的参参数类型,则则称为方法法的重载(Overrloadding)。Oveerloaaded的的方法是可可以改变返返回值的类类型 一三三、Sett里的元素素是不能重重复的,那那么用什么么方法来区区分重复与与否呢? 是用=还是eqqualss()? 它们有何何区别 答答:Sett里的元素素是不能重重复的,那那么用itterattor()方法来区区分重复与与否。eqqualss()是判判读两个SSet是否否相等 eequall
21、s()和和=方法法决定引用用值是否指指向同一对对象equuals()在类中中被覆盖,为为的是当两两个分离的的对象的内内容和类型型相配的话话,返回真真值 144、给我一一个你最常常见到的rruntiime eexcepptionn 答:常常见的运行行时异常有有如下这些些AritthmetticExxcepttion, ArrraySttoreEExcepptionn, BuufferrOverrflowwExceeptioon, BBuffeerUndderfllowExxcepttion, CannnotRRedoEExcepptionn, CaannottUndooExceeptioon,
22、CClasssCasttExceeptioon, CCMMExxcepttion, ConncurrrentMModifficattionEExcepptionn, DOOMExcceptiion, EmpttyStaackExxcepttion, IlllegallArguumenttExceeptioon, IIlleggalMoonitoorStaateExxcepttion, IlllegallPathhStatteExcceptiion, IlleegalSStateeExceeptioon, IImagiingOppExceeptioon, IIndexxOutOOfBouunds
23、EExcepptionn, MiissinngRessourcceExcceptiion, NegaativeeArraaySizzeExcceptiion, NoSuuchEllemenntExcceptiion, NulllPoinnterEExcepptionn, PrrofilleDattaExcceptiion, ProvviderrExceeptioon, RRasteerForrmatEExcepptionn, SeecuriityExxcepttion, SysstemEExcepptionn, UnndecllareddThroowablleExcceptiion, Unmo
24、odifiiableeSetEExcepptionn, UnnsuppporteedOpeeratiionExxcepttion 一五、eerrorr和excceptiion有什什么区别 答:errror 表示恢复复不是不可可能但很困困难的情况况下的一种种严重问题题。比如说说内存溢出出。不可能能指望程序序能处理这这样的情况况 excceptiion 表表示一种设设计或实现现问题。也也就是说,它它表示如果果程序运行行正常,从从不会发生生的情况 16、LList, Sett, Maap是否继继承自Coollecctionn接口 答答: Liist,SSet是,MMap不是是 17、aabstrra
25、ct classs和innterfface有有什么区别别 答:声声明方法的的存在而不不去实现它它的类被叫叫做抽象类类(absstracct cllass),它它用于要创创建一个体体现某些基基本行为的的类,并为为该类声明明方法,但但不能在该该类中实现现该类的情情况。不能能创建abbstraact 类类的实例。然然而可以创创建一个变变量,其类类型是一个个抽象类,并并让它指向向具体子类类的一个实实例。不能能有抽象构构造函数或或抽象静态态方法。AAbstrract 类的子类类为它们父父类中的所所有抽象方方法提供实实现,否则则它们也是是抽象类为为。取而代代之,在子子类中实现现该方法。知知道其行为为的其它
26、类类可以在类类中实现这这些方法 接口(iinterrfacee)是抽象象类的变体体。在接口口中,所有有方法都是是抽象的。多多继承性可可通过实现现这样的接接口而获得得。接口中中的所有方方法都是抽抽象的,没没有一个有有程序体。接接口只可以以定义sttaticc finnal成员员变量。接接口的实现现与子类相相似,除了了该实现类类不能从接接口定义中中继承行为为。当类实实现特殊接接口时,它它定义(即即将程序体体给予)所所有这种接接口的方法法。然后,它它可以在实实现了该接接口的类的的任何对象象上调用接接口的方法法。由于有有抽象类,它它允许使用用接口名作作为引用变变量的类型型。通常的的动态联编编将生效。引
27、引用可以转转换到接口口类型或从从接口类型型转换,iinstaanceoof 运算算符可以用用来决定某某对象的类类是否实现现了接口 一八、aabstrract的的methhod是否否可同时是是stattic,是是否可同时时是nattive,是是否可同时时是synnchroonizeed 答:都不能 19、接接口是否可可继承接口口? 抽象象类是否可可实现(iimpleementts)接口口? 抽象象类是否可可继承实体体类(cooncreete cclasss) 答:接口可以以继承接口口。抽象类类可以实现现(impplemeents)接口,抽抽象类是否否可继承实实体类,但但前提是实实体类必须须有明确
28、的的构造函数数 20、构构造器Coonstrructoor是否可可被oveerridde 答:构造器CConsttructtor不能能被继承,因因此不能重重写Oveerridding,但但可以被重重载Oveerloaadingg 21、是是否可以继继承Strring类类 答:SStrinng类是ffinall类故不可可以继承 22、ttry 里有一一个retturn语语句,那么么紧跟在这这个tryy后的fiinallly 里的coode会不不会被执行行,什么时时候被执行行,在reeturnn前还是后后 答:会会执行,在在retuurn前执执行 233、用最有有效率的方方法算出22乘以8等等於几
29、 答答:2 3 24、两两个对象值值相同(xx.equuals(y) = trrue),但但却可有不不同的haash ccode,这这句话对不不对 答:不对,有有相同的hhash codee 25、当当一个对象象被当作参参数传递到到一个方法法后,此方方法可改变变这个对象象的属性,并并可返回变变化后的结结果,那么么这里到底底是值传递递还是引用用传递 答答:是值传传递。Jaava 编编程语言只只有值传递递参数。当当一个对象象实例作为为一个参数数被传递到到方法中时时,参数的的值就是对对该对象的的引用。对对象的内容容可以在被被调用的方方法中改变变,但对象象的引用是是永远不会会改变的 26、sswtic
30、ch是否能能作用在bbyte上上,是否能能作用在llong上上,是否能能作用在SStrinng上 答答:wittch(eexpr11)中,eexpr11是一个整整数表达式式。因此传传递给 sswitcch 和 casee 语句的的参数应该该是 innt、 sshortt、 chhar 或或者 byyte。llong,striing 都都不能作用用于swttich 27、AArrayyListt和Vecctor的的区别,HHashMMap和HHashttablee的区别 答:就AArrayyListt与Vecctor主主要从二方方面来说. 一.同同步性:VVectoor是线程程安全的,也也就是说
31、是是同步的,而而ArraayLisst是线程程序不安全全的,不是是同步的 二.数据据增长:当当需要增长长时,Veectorr默认增长长为原来一一培,而AArrayyListt却是原来来的一半 就HasshMapp与HasshTabble主要要从三方面面来说。 一.历史史原因:HHashttablee是基于陈陈旧的Diictioonaryy类的,HHashMMap是JJava 1.2引引进的Maap接口的的一个实现现 二.同同步性:HHashttablee是线程安安全的,也也就是说是是同步的,而而HashhMap是是线程序不不安全的,不不是同步的的 三.值值:只有HHashMMap可以以让你将空
32、空值作为一一个表的条条目的keey或vaalue 28、cchar型型变量中能能不能存贮贮一个中文文汉字?为为什么? 答:是能能够定义成成为一个中中文的,因因为javva中以uunicoode编码码,一个cchar占占16个字字节,所以以放一个中中文是没问问题的 229、GCC是什么? 为什么么要有GCC 答:GGC是垃圾圾收集的意意思(Gaabagee Colllecttion),内存处理理是编程人人员容易出出现问题的的地方,忘忘记或者错错误的内存存回收会导导致程序或或系统的不不稳定甚至至崩溃,JJava提提供的GCC功能可以以自动监测测对象是否否超过作用用域从而达达到自动回回收内存的的目的
33、,JJava语语言没有提提供释放已已分配内存存的显示操操作方法。 30、ffloatt型flooat ff=3.44是否正确确? 答:不正确。精精度不准确确,应该用用强制类型型转换,如如下所示:floaat f=(flooat)33.4 331、介绍绍JAVAA中的Coollecctionn FraameWoork(包包括如何写写自己的数数据结构)? 答:Colllectiion FFrameeWorkk如下: Colllectiion Listt LLinkeedLisst ArraayLisst Vecttor Sttack Sett Mapp Haashtaable HasshMapp
34、WeeakHaashMaap Coollecctionn是最基本本的集合接接口,一个个Colllectiion代表表一组Obbjectt,即Coollecctionn的元素(EElemeents) Map提提供keyy到vallue的映映射 322、抽象类类与接口? 答:抽抽象类与接接口都用于于抽象,但但是抽象类类(JAVVA中)可可以有自己己的部分实实现,而接接口则完全全是一个标标识(同时时有多重继继承的功能能)。 JJAVA类类实现序例例化的方法法是实现jjava.io.SSeriaalizaable接接口 Coollecctionn框架中实实现比较要要实现Coomparrablee 接口
35、和和 Commparaator 接口 333、STTRINGG与STRRINGBBUFFEER的区别别。 答:STRIING的长长度是不可可变的,SSTRINNGBUFFFER的的长度是可可变的。如如果你对字字符串中的的内容经常常进行操作作,特别是是内容要修修改时,那那么使用SStrinngBufffer,如如果最后需需要Strring,那那么使用SStrinngBufffer的的toSttringg()方法法 34、谈谈谈finnal, finaally, finnalizze的区别别 答:ffinall修饰符符(关键字字)如果一一个类被声声明为fiinal,意意味着它不不能再派生生出新的子
36、子类,不能能作为父类类被继承。因因此一个类类不能既被被声明为 absttractt的,又被被声明为ffinall的。将变变量或方法法声明为ffinall,可以保保证它们在在使用中不不被改变。被被声明为ffinall的变量必必须在声明明时给定初初值,而在在以后的引引用中只能能读取,不不可修改。被被声明为ffinall的方法也也同样只能能使用,不不能重载 finaally再异常处处理时提供供 finnallyy 块来执执行任何清清除操作。如如果抛出一一个异常,那那么相匹配配的 caatch 子句就会会执行,然然后控制就就会进入 finaally 块(如果果有的话) finaalizee方法名名。J
37、avva 技术术允许使用用 finnalizze() 方法在垃垃圾收集器器将对象从从内存中清清除出去之之前做必要要的清理工工作。这个个方法是由由垃圾收集集器在确定定这个对象象没有被引引用时对这这个对象调调用的。它它是在 OObjecct 类中中定义的,因因此所有的的类都继承承了它。子子类覆盖 finaalizee() 方方法以整理理系统资源源或者执行行其他清理理工作。ffinallize() 方法法是在垃圾圾收集器删删除对象之之前对这个个对象调用用的 355、面向对对象的特征征有哪些方方面 答:主要有以以下四方面面: 1.抽象: 抽象就是是忽略一个个主题中与与当前目标标无关的那那些方面,以以便
38、更充分分地注意与与当前目标标有关的方方面。抽象象并不打算算了解全部部问题,而而只是选择择其中的一一部分,暂暂时不用部部分细节。抽抽象包括两两个方面,一一是过程抽抽象,二是是数据抽象象。 2.继承: 继承是一一种联结类类的层次模模型,并且且允许和鼓鼓励类的重重用,它提提供了一种种明确表述述共性的方方法。对象象的一个新新类可以从从现有的类类中派生,这这个过程称称为类继承承。新类继继承了原始始类的特性性,新类称称为原始类类的派生类类(子类),而而原始类称称为新类的的基类(父父类)。派派生类可以以从它的基基类那里继继承方法和和实例变量量,并且类类可以修改改或增加新新的方法使使之更适合合特殊的需需要。
39、33.封装: 封装是是把过程和和数据包围围起来,对对数据的访访问只能通通过已定义义的界面。面面向对象计计算始于这这个基本概概念,即现现实世界可可以被描绘绘成一系列列完全自治治、封装的的对象,这这些对象通通过一个受受保护的接接口访问其其他对象。 4. 多多态性: 多态性是是指允许不不同类的对对象对同一一消息作出出响应。多多态性包括括参数化多多态性和包包含多态性性。多态性性语言具有有灵活、抽抽象、行为为共享、代代码共享的的优势,很很好的解决决了应用程程序函数同同名问题。 36、SStrinng是最基基本的数据据类型吗 答:基本本数据类型型包括byyte、iint、cchar、llong、ffloa
40、tt、douuble、bbooleean和sshortt。 jaava.llang.Striing类是是finaal类型的的,因此不不可以继承承这个类、不不能修改这这个类。为为了提高效效率节省空空间,我们们应该用SStrinngBufffer类类 37、iint 和和 Inttegerr 有什么么区别 答答:Javva 提供供两种不同同的类型:引用类型型和原始类类型(或内内置类型)。IInt是jjava的的原始数据据类型,IIntegger是jjava为为int提提供的封装装类。Jaava为每每个原始类类型提供了了封装类。 原始类型型封装类,boolleanBBooleean,ccharCCh
41、araacterr,bytteBytte,shhortSShortt,inttInteeger,longgLongg,flooatFlloat,doubbleDooublee 引用类类型和原始始类型的行行为完全不不同,并且且它们具有有不同的语语义。引用用类型和原原始类型具具有不同的的特征和用用法,它们们包括:大大小和速度度问题,这这种类型以以哪种类型型的数据结结构存储,当当引用类型型和原始类类型用作某某个类的实实例数据时时所指定的的缺省值。对对象引用实实例变量的的缺省值为为 nulll,而原原始类型实实例变量的的缺省值与与它们的类类型有关 38、运运行时异常常与一般异异常有何异异同 答:异常表
42、示示程序运行行过程中可可能出现的的非正常状状态,运行行时异常表表示虚拟机机的通常操操作中可能能遇到的异异常,是一一种常见运运行错误。jjava编编译器要求求方法必须须声明抛出出可能发生生的非运行行时异常,但但是并不要要求必须声声明抛出未未被捕获的的运行时异异常。 339、说出出ArraayLisst,Veectorr, LiinkeddListt的存储性性能和特性性 答:AArrayyListt和Vecctor都都是使用数数组方式存存储数据,此此数组元素素数大于实实际存储的的数据以便便增加和插插入元素,它它们都允许许直接按序序号索引元元素,但是是插入元素素要涉及数数组元素移移动等内存存操作,所
43、所以索引数数据快而插插入数据慢慢,Vecctor由由于使用了了syncchronnizedd方法(线线程安全),通通常性能上上较ArrrayLiist差,而而LinkkedLiist使用用双向链表表实现存储储,按序号号索引数据据需要进行行前向或后后向遍历,但但是插入数数据时只需需要记录本本项的前后后项即可,所所以插入速速度较快。 40、HHashMMap和HHashttablee的区别 答:HaashMaap是Haashtaable的的轻量级实实现(非线线程安全的的实现),他他们都完成成了Mapp接口,主主要区别在在于HasshMapp允许空(nnull)键键值(keey),由由于非线程程安全
44、,效效率上可能能高于Haashtaable。 HashhMap允允许将nuull作为为一个enntry的的key或或者vallue,而而Hashhtablle不允许许。 HaashMaap把Haashtaable的的conttainss方法去掉掉了,改成成conttainssvaluue和coontaiinsKeey。因为为conttainss方法容易易让人引起起误解。 Hashhtablle继承自自Dicttionaary类,而而HashhMap是是Javaa1.2引引进的Maap innterfface的的一个实现现。 最大大的不同是是,Hasshtabble的方方法是Syynchrron
45、izze的,而而HashhMap不不是,在多多个线程访访问Hasshtabble时,不不需要自己己为它的方方法实现同同步,而HHashMMap 就就必须为之之提供外同同步。 HHashttablee和HasshMapp采用的hhash/rehaash算法法都大概一一样,所以以性能不会会有很大的的差异。 41、hheap和和stacck有什么么区别 答答:栈是一一种线形集集合,其添添加和删除除元素的操操作应在同同一段完成成。栈按照照后进先出出的方式进进行处理。堆堆是栈的一一个组成元元素 422、Javva的接口口和C+的虚类的的相同和不不同处 答答:由于JJava不不支持多继继承,而有有可能某个个类或对象象要使用分分别在几个个类或对象象里面的方方法或属性性,现有的的单继承机机制就不能能满足要求求。与继承承相比,接接口有更高高的灵活性性,因为接接口中没有有任何实现现代码。当当一个类实实现了接口口以后,该该类要实现现接口里面面所有的方方法和属性性,并且接接口里面的的属性在默默认状态下下面都是ppubliic sttaticc,所有方方法默认情情况下是ppubliic.一个个类可以实实现多个接接口。 443、Jaava中的的异常处理理机制的简简单原理和和应用 答答:当JAAVA程序序违反了JJAVA的的语义规则则时