java面试笔试题大汇总.pdf
《java面试笔试题大汇总.pdf》由会员分享,可在线阅读,更多相关《java面试笔试题大汇总.pdf(204页珍藏版)》请在咨信网上搜索。
1、j ava面试笔试题大汇总第一,谈谈 fi nal,fi nally,fi nali ze 的区别。答:fi nal一修饰符(关键字)如果一个类被声明为final,意味着 它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既 被声明为abstmct的,又被声明为final的。将变量或方法声明为 final,可以保证它们在使用中不被改变。被声明为final的变量必须 在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明 为final的方法也同样只能使用,不能重载。fi nally一再异常处理时提供finally块来执行任何清除操作。如 果抛出一个异常,那么相匹配的catch子句就
2、会执行,然后控制就 会进入finally块(如果有的话)。fi nali ze一方法名。java技术允许使用fi nali ze()方法在垃圾收 集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由 垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Obj ect类中定义的,因此所有的类都继承了它。子类覆盖fi nali ze()方法以整理系统资源或者执行其他清理工作。fi nali ze()方法是在垃 圾收集器删除对象之前对这个对象调用的最常被问到。第二,Anonymous Inner Class(匿名内部类)是否可以 extends(继承)其它类,是否可以i mplem
3、ents(实现)i nterface(接口)?第三,Stati c Nested Class和Inner Class的不同,说得越多越好(面试题有的很笼统)。第四,&和&的区别。这个问得很少。第五,HashMap和Hashtable的区别。常问。第六,Collecti on 和 Collecti ons 的区别。你千万别说一个是单数一个是复数。第七,什么时候用assert。API级的技术人员有可能会问这个。第八,GC是什么?为什么要有GC?答:垃圾回收(garbage collecti on)System.gc()方法进行垃圾回收,在清除垃圾之前自动调用fi nali ze。方法。基础。第九,
4、Stri ng s=new Stri ng(”xyz“);创建了几个 Stri ng Obj ect?第十,Math.round(11.5)等於多少?Math.round(-11.5)等於多少?答:返回最接近参数的long。结果将舍入为整数:加上1/2,对结果调 用floor并将所得结果强制转换为long类型。换句话说,结果等于以 下表达式的值:(long)Math,floor(a+0.5d)Mdthround(ll,5)等於 12Math.round(-11.5)等於-11第H,short si=1;si=si+1;有什么错?short si=1;si+=1;有什么错?面试题都是很变态的,要
5、做好受虐的准备。第十二,sleep()和wait()有什么区别?搞线程的最爱。第十三,Java有没有goto?答:有,与const一样,被作为保留关键字,但不用.JAVA相关基础知识1、面向对象的特征有哪些方面L抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地 注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选 择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程 抽象,二是数据抽象。2,继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了 一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,
6、新类称为原始类的 派生类(子类),而原始类称为新类的基类(父类)。派生类可以从 它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法 使之更适合特殊的需要。3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界 面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系 列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他 对象。4.多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数 化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代 码共享的优势,很好的解决了应用程序函数同名问题。2、String是最基本的数据类型吗?基本数据类型包
7、括 byte、int、char、long、float、double、boolean 和 short oj ava.Iang.Stri ng类是final类型的,因此不可以继承这个类、不能修 改这个类。为了提高效率节省空间,我们应该用StHngBuffe类 3、int和Integer有什么区别Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是j ava的原始数据类型,Integer是j ava为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类boolean Booleanchar Characterbyte Byteshort Shorti nt Int
8、egerlong Long float Floatdouble Double引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引 用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问 题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用 作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值 为null,而原始类型实例变量的缺省值与它们的类型有关。4、Stri ng 和 Stri ng Buffer 的区另 UJAVA平台提供了两个类:String和StringBuffer,它们可以储存和操 作字符串,即包含多个字符的字符数据。这个String类提供了数值不 可改
9、变的字符串。而这个Stri ngBuffer类提供的字符串进行修改。当 你知道字符数据要改变的时候你就可以使用Stri ngBuffer。典型地,你可以使用Stri ng Buffers来动态构造字符数据。5、运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚 拟机的通常操作中可能遇到的异常,是一种常见运行错误。j ava编译 器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必 须声明抛出未被捕获的运行时异常。6、说出Servlet的生命周期,并说出Servlet和CGI的区别。Servlet被服务器实例化后,容器运行其init方法,请求到达时
10、运行其 service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy 方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行 其service方法,一个实例可以服务于多个请求,并且其实例一般不 会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所 以效率上低于servleto7、说出ArrayLi st,Vector,Li nkedList的存储性能和特性ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于 实际存储的数据以便增加和插入元素,它们
11、都允许直接按序号索引元 素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快 而插入数据慢,Vector由于使用了 synchroni zed方法(线程安全),通常性能上较ArrayList差,而Li nkedLi st使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记 录本项的前后项即可,所以插入速度较快。8、EJB是基于哪些技术实现的?并说出Sessi onBean和Enti tyBean 的区别,StatefulBean 和 StatelessBean 的区别。EJB 包括 Sessi on Bean、Enti ty Bean Message Dr
12、i ven Bean,基于 JNDL RML JAT等技术实现。SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操 作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应 用系统中用到的数据。对于客户机,Sessi onBean是一种非持久性对象,它实现某些在服务 器上运行的业务逻辑。对于客户机,Enti tyBean是一种持久性对象,它代表一个存储在持久 性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的 实体。Sessi on Bean 还可以再细分为 Stateful Sessi on Bean 与 Stateless Sessi on
13、Bean,这两种的Sessi on Bean都可以将系统逻辑放在 method之中执行,不同的是Stateful Sessi on Bean可以记录呼叫者 的状态,因此通常来说,一个使用者会有一个相对应的Stateful Sessi on Bean的实体。Stateless Sessi on Bean虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫Stateless Sessi on Bean的时候,EJB Container并不会找寻特定的Stateless Sessi on Bean的实体来执行这个method0换言之,很可能数个使 用者在执行某个Stateless S
14、essi on Bean的methods时,会是同一 个Bean的Instance在执行。从内存方面来看,Stateful Sessi on Bean 与 Stateless Sessi on Bean 比较,Stateful Sessi on Bean 会 消耗J2EE Server较多的内存,然而Stateful Sessi on Bean的优势 却在于他可以维持使用者的状态。9、Collecti on 和 Collecti ons 的区别。Collection是集合类的上级接口,继承与他的接口主要有Set和 Li st.Collecti ons是针对集合类的一个帮助类,他提供一系列静态方
15、法实现 对各种集合的搜索、排序、线程安全化等操作。10、&和&的区别。&是位运算符,表示按位与运算,&是逻辑运算符,表示逻辑与(and)。11、HashMap 和 Hashtable 的区别。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们 都完成了 Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。HashMap 把 Hashtable 的 contai ns 方法去掉了,改成 c
16、ontai nsvalue 和contai nsKey0因为contains方法容易让人引起误解。Hashtable 继承自 Di cti onary 类,而 HashMap 是 Javal.2 引进的 Map interface的一个实现。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不 是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性 能不会有很大的差异。12、fi nal,fi nally,fi nali ze
17、 的区别。final用于声明属性,方法和类,分别表示属性不可变,方法不 可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。finalize是Obj ect类的一个方法,在垃圾收集器执行的时候会调用被 回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回 收,例如关闭文件等。13、sleep()和wait()有什么区别?sleep是线程类(T hread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Obj ect类的方法,对此对象调用wait方法导致本线程放弃对 象锁,进
18、入等待此对象的等待锁定池,只有针对此对象发出notify方 法(或noti fyAII)后本线程才进入对象锁定池准备获得对象锁进入运 行状态。14、Overload和Override的区另i j。Overloaded的方法是否可以改变 返回值的类型?方法的重写Overri di ng和重载Overloading是Java多态性的不同表 现。重写Overri di ng是父类与子类之间多态性的一种表现,重载 Overloadi ng是一个类中多态性的一种表现。如果在子类中定义某方 法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)o子类的对象使用这个方法时,将调用子类中的定
19、义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多 个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称 为方法的重载(Overloadi ng)。Overloaded的方法是可以改变返回值 的类型。15、error和excepti on有什么区别?error表示恢复不是不可能但很困难的情况下的一种严重问题。比如 说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现问题。也就是说,它表示如果程序运 行正常,从不会发生的情况。16、同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享。例如正在写的数据以后可能被另一个线
20、程 读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数 据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并 且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情 况下采用异步途径往往更有效率。17、abstract class 和 i nterface 有什么区别?声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不 能在该类中实现该类的情况。不能创建abstract类的实例。然而可 以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个 实例
21、。不能有抽象构造函数或抽象静态方法。Abstract类的子类为它 们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代 之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些 方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象 的,没有一个有程序体。接口只可以定义stati c final成员变量。接口 的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类 实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由 于有抽象
22、类,它允许使用接口名作为引用变量的类型。通常的动态联 编将生效。引用可以转换到接口类型或从接口类型转换,i nstanceof 运算符可以用来决定某对象的类是否实现了接口。18、heap和stack有什么区别。栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按 照后进先出的方式进行处理。堆是栈的一个组成元素19、forward 和 redi rect 的区另Uforward是服务器请求资源,服务器直接访问目标地址的U RL,把那 个U RL的响应内容读取过来,然后把这些内容再发给浏览器,浏览 器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还 是原来的地址。redi rec
23、t就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请 求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所 以sessi on,request参数都可以获取。20、EJB 与 JAVA BEAN 的区别?Java Bean是可复用的组件,对Java Bean并没有严格的规范,理论 上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如T omcat)的,所以Java Bean应具有一个 无参的构造器,另外,通常Java Bean还要实现Seriali zable接口用 于实现Bean的持久性。Java Bean实际上相当于微软COM模型
24、中的 本地进程内COM组件,它是不能被跨进程访问的。Enterpri se Java Bean相当于DCOM,即分布式组件。它是基于Java的远程方法调 用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere WebLogic这样的容器中,EJB 客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器 是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来 访问真正的EJB组件。21、Stati c Nested Class 和 Inner Class 的不同。Stati c Nested Class是被声明为静态(sta
25、tic)的内部类,它可以不依 赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才 能实例化。22、JSP中动态INCLU DE与静态INCLU DE的区别?动态INCLU DE用j sp:include动作实现 它总是会检查所含文件中的 变化,适合用于包含动态页面,并且可以带参数。静态INCLU DE用i nclude伪码实现,定不会检查所含文件的变化,适 用于包含静态页面23、什么时候用assertoassertion断言)在软件开发中是一种常用的调试方式,很多开发语言 中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 试笔 试题 汇总
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。