还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
北润JAVA考核-面对对象第一部分英语测试每题分,共分其次部分学问点测试分
一、选择题每题2分,共110分
1.下面关于变量及其作用范围的陈述哪个是不对的?BA.实例变量是类的成员变量B.实例变量用关键字static声明C.在方法中定义的局部变量在该方法被执行时创建D.局部变量在运用前必需被初始化.下面哪条语句把方法声明为抽象的公共方法?BA.publicabstractmethod;B.publicabstractvoidmethod;C.publicabstractvoidmethod{}D.publicvoidmethodextendsabstract;.若在某一个类定义中定义有如下的方法finalvoidaFinalFunction{}则该方法属于CA、本地方法B、静态方法C、最终方法D、抽象方法.main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的BA、publicstaticvoidmainBpublicstaticvoidmainString[]argspublicstaticvoidmainStringargs[]{Systemout.printini;A.编译出错B.nullC.1D.0解析final修饰的成员变量静态成员原理和实例成员变量必需显示初始化静态成员变量可以在声明时或静态初始化代码块显示初始化;实例成员变量可以在声明时、初始化代码块或构造器中显示初始化.下面方法中的“返回类型Type”应当是什么?ApublicclassReturnltreturnTypemethodAbytexdoubley{returnshortx/y*2;A.doubleB.intC.byteD.short.下面哪个修饰符修饰的变量是全部同一个类生成的对象共享的?CA、publicB、privateC、staticDfinal.下面关于java中类的说法哪个是不正确的?ACA.类体中只能有变量定义和成员方法的定义,不能有其他语句B.构造函数是类中的特殊方法C.类确定要声明为public的,才可以执行D.一个java文件中可以有多个class定义.下列哪个类声明是正确的?DabstractfinalclassHl{…}abstractprivatemove{…}protectedprivatenumber;publicabstractclassCar{…}.方法重载是指AA.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C.两个以上的方法名字不同,但形参的个数或类型相同D.两个以上的方法取相同的方法名,并且方法的返回类型相同.指出下列程序运行的结果BpublicclassExample{Stringstr=newString〃good〃;char[]ch={,abc};publicstaticvoidmainStringargs[]{Exampleex=newExample;ex.changeex.strex.ch;Systemout.printex.str+〃and〃;Sytem.out.printex.ch;publicvoidchangeStringstrcharch[]{str=//testok〃;ch[O]=g;A.goodandabcB.goodandgbcC.testokandabcD.testokandgbc
33.下列哪些语句关于内存回收的说明是正确的?BA.程序员必需创建一个线程来释放内存B.内存回收程序负责释放无用内存C.内存回收程序允许程序员干脆释放内存D.内存回收程序可以在指定的时间释放内存对象.MAX_LENGTH是int型public成员变量,变量值保持为常量100用简短语句定义这个变量CDpublicintMAX_LENGTH=100;finalintMAX_LENGTH=100;finalpublicintMAXJLENGTH=100;publicfinalintMAX_LENGTH=100;.给出下面代码classParent{2}privateStringname;3}publicParent{}4}}5publicclassChildextendsParent6}privateStringdepartment;7}publicChild{}8}publicStringgetValue{returnname;}9}publicstaticvoidmainStringarg[]{10}Parentp=newParent;}12}}那些行将引起错误?DA、第3行B、第6行C、第7行D、第8行.类Teacher和Student是类Person的子类;Personp;Teachert;Students;//ptandsareallnon-null.iftinstanceofPerson{s=Studentt;}最终一句语句的结果是BA、将构造一个Student对象;B、表达式是合法的;C、表达式是错误的;D、编译时正确,但运行时错误解析考查instanceof和继承中的强制转换tinstanceofPerson表达式是正确的s=Studentt;这句转换编译是错误的
37.给出下面代码段publicclassTestintmn;publicTest{}publicTestinta{m=a;}publicstaticvoidmainStringarg[]{Testtlt2;intjk;j=0;k=0;tl=newTest;t2=newTestjk;}哪行将引起一个编译时错误?DA、line3B、line5C、line6D、line
1038.对于下列代码classPerson{publicvoidprintValueintiintj{//...}publicvoidprintValueinti{//...}publicclassTeacherextendsPersonpublicvoidprintValue{//♦・・publicvoidprintValueinti{//...}publicstaticvoidmainStringargs[]{Persont=newTeacher;t.printValue10;}第10行语句将调用哪行语句?DA、line2B、line3C、line6D、line
7.System类在哪个包中?DA、javautilBjavaioCjavaawtDjavalang.对于下列代码publicclassParent{publicintaddValueintaintb{ints;s=a+b;returns;}classChildextendsParent{下述哪些方法可以加入类ChildCDA、intaddValueintaintb{//dosomething...BpublicvoidaddValueintaintb{//dosomething...}CpublicintaddValueinta{//dosomething...D、publicintaddValueintaintbthrowsMyException//dosomething...}解析A选项不符合一大;B选项返回值类型不匹配;C选项为自己的方法;D选项异样更明确.看下面一段程序classAclass{voidgo{Systemout.printin〃Aclass〃;publicclassBclassextendsAclass{voidgoSystemout.printin〃Bclass〃;}publicstaticvoidmainStringargs[]{Aclassa=newAclass;Aclassal=newBclass;a.go;al.go;以上程序运行结果是cA、AclassAclassB、BclassBclassCAclassBclassD、BclassAclass.运行下列程序,会产生什么结果BclassOuterlprivateinta;voidfoodoubledfinalfloatf{Strings;finalbooleanb;classInner{voidmethodinner{Systemout.printinz/intheInner;publicstaticvoidmainStringargs[]{Outerlme=newOuterl;me.foo123123;Systemout.printinouter;}A、intheInnerouterBouterC、intheInnerD编译不通过.下面哪个修饰符修饰的方法只能被本类中的其他方法运用(C)A、protectedBstaticCprivateD、public.下面程序运行后的输出结果为CclassAstaticinty=3;voidshowy{Systemout.printin“y=”+y;classtestA{publicstaticvoidmainStringaaa[]Aal=newA;A.y+=l;al.y++;al.showy;输出结果选择A、y=3;B、y=4;C、y=5;D、程序运行出错.下面关于构造函数的说法不正确的是BA、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值B、构造函数不行以重载C、构造函数没有返回值D、构造函数名称确定要和类名相同.给出如下代码:classTest{privateintm;publicstaticvoidfun{//somecode...如何使成员变量m被函数fun干脆访问?CA、将privateintm改为protectedintmB、将privateintm改为publicintmC、将privateintm改为staticintmD、将privateintm改为intm.为AB类的一个无形式参数无返回值的方法method书写方法头使得运用类名AB作为前缀就可以调用它,该方法头的形式为AA.staticvoidmethodB.publicvoidmethodC.finalvoidmethodD.abstractvoidmethod
48.假如类中的成员变量可以被同一包访问,则运用如下哪个约束符?DprivatepublicCprotectedDnomodifier
49.构造方法何时被调用BpublicstaticintmainString[]argsD、publicvoidmainStringarg[].在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或依次各不相同,传回的值也可以不相同这种面对对象程序的特性称为CA、隐藏B、覆盖C、重载D、Java不支持此特性.下列关于构造方法的叙述中,错误的是CJava语言规定构造方法名及类名必需相同Java语言规定构造方法没有返回值,但不用void声明Java语言规定构造方法不行以重载Java语言规定构造方法只能通过new自动调用.关于被私有访问限制符private修饰的成员变量,以下说法正确的是CA.可以被三种类所引用该类自身、及它在同一个包中的其他类、在其他包中的该类的子类.可以被两种类访问和引用该类本身、该类的全部子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问
8.类Testi定义如下publicclassTesti{publicfloataMethodfloatafloatb{}.假如任何包中的子类都能访问超类中的成员,那么应运用哪个限定词(C)A.publicB.privateC.protectedD.transient.Java变量中,以下不属于复合类型的数据类型是(B)A.类B.字符型C.数组型D.接口.对象运用时,下面描述错误的是(B)A.通过”运算符调用成员变量和方法B.通过成员变量的访问权限设定限制自身对这些变量方法的调用C.将一个对象申明为类的成员时,必需在运用前为其支配内存D.在方法中运用对象作为参数时,接受引用调用(也说明的通,但确定要了解实质为值调用).Java编程所必需的默认引用包为(B)A.javasys包B.javalang包javanew包D.以上都不是
54.定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的全部类访问,那么该类的正确声明应为(C)privateclassMyClassextendsObjectclassMyClassextendsObjectC.publicclassMyClassprivateclassMyClassextendsObject
55.内部类是在一个类内嵌套定义的类其特点描述错误的是(A)A.只能在定义它的类或程序段中或表达式内匿名运用,外部运用时必需给出类的全名B.可以运用它所在类的静态成员变量或实例成员变量,但不行以运用所在类中的局部变量(后半句可对可错,看怎么理解)C.可以作为其它类的成员,而且可访问它所在类的成员D.除static内部类外,不能在类内声明static成员
二、填空题(每空
0.5分,共
26.5分)
1、在类声明中供应类标记的关键字是class
2、当一个方法中有多个参数时,参数之间是用英文逗号隔开
3、在Java中,运用变量遵守先声明后运用(先定义后运用)的原则
4、比较两个字符串是否相同接受equals方法
5、抽象方法是一种仅有方法头没有具体方法体和操作实现的方法,该方法必需在抽象类之中定义
6、包定义时,需运用关键字package来实现创建一个名为MyPackage的包的语句是packageMyPackage;要运用包中的类,必需用关键字import导入这些类所在的包当要引用包中全部的类时,类名可以用通配符*号代替
7、对象是由一组属性和对这组属性进行3^的一组服务组成的对象是指具体的事物而类是指一类具有某种共性的事物由类来确定具体对象的过程称为实例化
8、对一类对象的抽象则是类而类的实例化结果是对象一个类是由类声明和类体两部分组成类修饰符有3种它们分另lj是publicabstract和final
08、抽象类不能被实例化它不具备实际功能只用于衍生子类抽象方法是只有方法声明没有代码实现的空方法
9、当一个类的类修饰符为final时说明该类不能被继承,即不能有子类
10、Java用extends关键字指明继承关系一个类要从另一个类继承变量和方法,必需运用关键字extendsoJava程序在extends之后只能有一个父类,即extends只能实现单继承在Java中只能实现单继承(Java不支持多重继承),但可通过接口实现多重继承
11、要在类声明中实现接口,需运用关键字implements一个类可实现多个接口,各接口名是以英文逗号分隔
12、在Java中,变量分为成员变量和局部变量在类体中声明的变量称为成员变量在方法中声明的变量称为局部变量成员变量在整个类体中有效而局部变量只在定义它的方法内有效假如局部变量名及成员变量名相同,则成员变量被屏蔽
13、在Java程序中,运用关键字this来引用当前对象Java中通过关键字super来实现对父类成员的访问
14、一个方法的定义是有方法声明和方法体两部分组成方法声明包括方法名、返回类型和形式参数,一个方法的标记是圆括呈
15、构造方法的方法名要求及类名相同,而且无返回值构造方法只能通过new运算符调用用户不能干脆调用
16、方法重载是指多个方法享有相同的名字但这些方法的参数必需不同或者是参数的个数不同或者是参数类型不同
17、一个对象的生命周期包括3个阶段创建、运用和释放(消亡)O
18、对象通过运用运算符”实现对自己的变量访问
19、面对对象的3个特性是封装性、继承性和多态性在Java中,通过对象的封装,实现了模块化和信息隐藏
20、两个方法具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同,则称为重写
21、Java中成员方法可分成两种类方法和实例方法用关键字static修饰的方法就称为类方法实例方法可对当前对象的实例变量进行操作,也可对类变量进行操作实例方法不但可以访问实例变量,也可以访问类变量类方法不能访问实例变量只能访问类变量
22、在Java中,用关键字abstract来修饰一个类则该类为抽象类若某个类包含了抽象方法,则该类必需被定义为抽象类
23、接口的定义,需运用关键字interface来声明接口中没有什么实例方法,全部的成员方法都是publicabstract方法
24、声明父类时,需运用关键字extends来实现由于Java的继承性,所以子类的成员数目比父类的成员数目多
三、简答题每题5分,共60分第一步理解考核学问点和考核的目的其次步背下来,记忆清晰精确第三步能把学问点用自己的话精确的描述出来
1、super及this的区分解答this为当前类的对象的引用,全部资源都可以访问super为父类对象的引用,在子类访问父类的成员和行为时运用必需受类继承规则的约束在构造函数中假如第一行没有写super编译器会自动插入但是假如父类没有不带参数的构造函数或这个函数被私有化了用private修饰此时你必需加入对父类的实例化构造而this就没有这个要求因为它本身就进行实例化的构造而在方法中super和this运用的方法就差不多了只不过super要考虑是否能访问其父类的资源
2、请列举Java语言中的权限访问修饰符,并说明每种权限的含义解答正确运用权限访问修饰符,能够有效限制类以及类成员的平安性,Java语言中有四种访问修饰符,包括public>同包、protected以及private一般状况下应用中的类多是public权限,属性多是private权限,方法多是public权限参考答案:Java语言中有四种权限访问修饰符即public、protected、同包以及privateopublic表示公共权限,即任何包中都可以访问;protected表示受爱惜权限,即同包中可以访问,同包中的子类可以访问同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问;private是私有权限,表示只能在本类中访问
3、java中实现多态的机制是什么?解答静态的多态方法名相同,参数个数或类型不相同overloading动态的多态:子类覆盖父类的方法将子类的实例传及父类的引用调用的是子类的方法;实现接口的实例传及接口的引用,调用的实现类的方法
4、abstractclass和interface的区分解答1抽象类通过extends继承,只能继承一个抽象类;接口通过implements运用,可以实现多个接口2抽象类可以有部分实现,抽象类和接口都不能创建实例声明方法的存在而不去实现它的类被叫做抽象类abstractclass它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的状况不能创建abstract类的实例然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例不能有抽象构造函数或抽象静态方法Abstract类的子类为它们父类中的全部抽象方法供应实现,否则它们也是抽象类为取而代之,在子类中实现该方法知道其行为的其它类可以在类中实现这些方法接口interface是抽象类的变体在接口中,全部方法都是抽象的多继承性可通过实现这样的接口而获得接口中的全部方法都是抽象的,没有一个有程序体接口只可以定义staticfinal成员变量接口的实现及子类相像,除了该实现类不能从接口定义中继承行为当类实现特殊接口时,它定义即将程序体赐予全部这种接口的方法然后,它可以在实现了该接口的类的任何对象上调用接口的方法由于有抽象类,它允许运用接口名作为引用变量的类型通常的动态联编将生效引用可以转换到接口类型或从接口类型转换instanceof运算符可以用来确定某对象的类是否实现了接口
5、静态变量和实例变量的区分?是否可以从一个static方法内部发出对非static方法的调用并说明理由?解答1声明时静态变量用static修饰,静态变量属于整个类被该类的所用实例对象所共有实例变量属于该类的某个对象,拥有自己的特征2静态变量在类加载初始化的时候支配内存并初始化,实例变量在由该类实例化对象时进行支配内存并初始化o3调用方法不同静态方法可以调用静态变量,不行调用实例变量实例方法可以调用静态变量、实例变量不行以从一个static方法内部发出对非static方法的调用,因为static方法属于整个类,实例方法得由该类的某个对象来调用当调用包含非static方法的static方法时,该类不确定是否存在实例化对象,所以在static方法内调用非static方法时将出现错误鉴于此道理不行以,编译阶段就会提示该调用的错误不行以假如其中包含对象的method不能保证该对象初始化.
6、说说你说知道的设计模式解答单例模式、工厂模式和叮嘱模式
7、AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?、解答匿名内部类可以继承其他类或完成其他接口
8、StaticNestedClass和InnerClass的不同,说得越多越好解答
(1)StaticNestedClass是被声明为静态(static)的内部类,它可以不依靠于外部类实例被实例化而通常的内部类须要在外部类实例化后才能实例化Static内部类可以包含static成员;一般内部类不行以
9、什么是方法重载(overload)什么是方法的重写(Override)Overload和Override的区分Overloaded的方法是否可以变更返回值的类型?解答方法重载假如在一个类中定义了多个同名的、相同返回值类型的方法,它们或有不同的参数个数或有不同的参数类型(不同的形参列表),则称为方法的重载(Overloading)o方法重写假如在子类中定义某方法及其父类有相同的名称和参数,我们说该方法被重写(Overriding)子类的对象运用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被〃屏蔽〃To区分方法的重写Overriding和重载Overloading是Java多态性的不同表现重写Overriding是父类及子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现Overloaded的方法是可以变更返回值的类型和权限修饰符假如父类定义方法A子类要重写方法A则子类不能运用其它返回类型必需运用父类一样的返回类型或比父类返回类型小另外解析重载:假如一个类的某个行为会有不同的算法和逻辑例如,Math类的计算确定值的方法,既可以计算int类型数值的确定值,也可以计算double类型数值的确定值这种状况下,每种类型都定义一个不同的方法名,如ablntabsDouble那么类的可读性就较差,运用时,必需熟悉处理每种类型参数所对应的方法名然而假如运用同一个方法名,而运用不同的形式参数来区分这些方法那么就具有很好的可读性,如absinti、absdoubled等可读性强的代码是企业对开发人员的基本要求方法重载能够使得代码有很好的可读性方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区分调用这些同名的方法时,JVM会依据实际参数的不同绑定到不同的方法10构造器Constructor是否可被override解答:构造器Constructor不能被继承,因此不能重写Override但可以被重载Overloado
11、是否可以继承String类,并说明理由?String类是一个“不行变类”,请说明“不行变类”的含义解答不行以,因为String类是final类故不行以继承解析不行变类String类是一个不行变类,即immutable类所谓不行变,意思是当一个字符串被初始化后,它的值就不会被变更例如,Strings=newStringhello”为将初始化一个值为hello的字符串,假如调用s.toUpperCase看起来是把hello变为大写的HELLO然而事实上并不会把已有的hello变为HELLO而是在新的空间初始化一个HELLO字符串也正因为有这种不行变性,所以才能支持“字符串实例池”的运用参考答案所谓的不行变类,就是当字符串初始化后,就不能够被变更
12、请说明Java语言中的值传递规则当一个对象被当作参数传递到一个方法后,此方法可变更这个对象的属性,并可返回变更后的结果,那么这里原委是值传递还是引用传递第一问解析值传递时编写应用时不行避开的操作例如某方法声明形式是publicvoidfintx{}写方法是,必需为其传递一个int类型的实际参数,如f10又如publicvoidgEmployee那么运用该方法时,必需为其传递一个Employee类型的实际参数,例如gnewEmployeeo所以,对于初级程序员来说,了解Java将以下哪种方法插入行3是不合法的BA、publicfloataMethodfloatafloatbfloatc{}B、publicfloataMethodfloatcfloatd{}C、publicintaMethodintaintb{}D、privatefloataMethodintaintbintc{}.阅读以下代码publicclassfoopublicstaticvoidmainString[]args{Strings;Systemout.printin〃s=〃+s;输出结果应当是CA.代码得到编译,并输出“s二”B.代码得到编译并输出“s二null”C.由于Strings没有初始化,代码不能编译通过D.代码得到编译,但捕获NullPointException异样解析局部变量必需显示的初始化引用类型变量初始化时假如没有具体对象引用,可以初始化为null.下述概念中不属于面对对象这种编程范畴的是D语言的值传递规则特殊重要Java语言是本类型传递的值,例如f10仅仅把10复制给形式参数x是值的拷贝而引用类的传递时引用,即虚地址,例如gnewEmployee是把实际参数的虚地址传递给形式参数e也就是说实际参数和形式参数的虚地址相同,物理上是同一个对象第一问解答:基本数据类型传递的是值,引用类型传递的是引用,即虚地址其次问解答是值传递Java编程语言只有值传递参数当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用对象的内容可以在被调用的方法中变更,但对象的引用是恒久不会变更的
四、程序题每题5分,共25分
1、补足代码定义一个抽象类AbstractTest其中有一个公共的抽象方法printMsgO0然后定义此抽象类的一个子类DefaultTest包括的成员变量有姓名,学号,分数,且此类中包括二个构造方法abstractclassAbstractTest{Stringname;Stringid;intscore;〃接收三个参数的构造方法〃接收姓名和学号二个参数的构造方法〃实现抽象方法,方法体为打印出学生的姓名及成果答案abstractclassAbstractTest{〃抽象方法定义publicabstractvoidprintMsgO;publicclassDefaultTestextendsAbstractTest{Stringname;Stringid;intscore;*接收三个参数的构造方法publicDefaultTestStringnameStringidintscorethisname=name;thisid二id;thisscore=score;*接收姓名和学号两个参数的构造方法publicDefaultTestStringnameStringid{thisname=name;thisid=id;*实现抽象方法,方法体为打印出学生的姓名及成果publicvoidprintMsgO{Systemout.printin(〃学生〃+thisname+〃的成果为:+thisscore);定义接口Student该接口中有一个无参、无返回值的方法prtMsg;定义类College包括的私有属性有id和name包括一个接收学生学号和姓名的构造方法,并且实现Student接口interfaceStudent{//College类的声明实现Student接口〃定义私有成员变量id和name类型自定4〃构造方法声明和定义,接收二个参数//实现prtMsg方法的声明//prtMsg的方法体Systemout.printinid+name;答案interfaceStudent{voidprtMst;publicclassCollegeimplementsStudent{//定义私有成员变量id和name类型自定privateStringname;privateStringid;*构造方法声明和定义,接收二个参数publicCollegeStringnameStringid{thisname=name;thisid二id;*实现prtMsg方法的声明publicvoidprtMst{//prtMsg的方法体Systemout.printlnid+name;
3、改正下面程序段中的错误共5处publicclassStudent{Stringid;Stringname;intsalary;publicvoidTestStringidStringnameintsalary{//I意图为该方法为构造方法,需去掉返回值,并改正方法名thisid=id;thisname=name;thissalary=salary;publicvoidchangeinfoStringidintsalary{//2返回值改为booleanbooleanresult;ifid==thisid{//3==改为equals方法thissalary=salary;result=TRUE;〃4:改为true}else{result=false;returnresult;publicbooleanchangeinfoStringidsintsalarys{//5方法重复定义,并不是重载
4、写一个Singleton出来解答解析Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在它必需自行创建这个唯一的实例,必需自行向整个系统供应这个实例运用单例模式的一个必要条件在一个系统中要求只有一个类的实例时应当运用单例模式反过来说假如一个类可以有几个实例共存,那么就没有必要运用单例类一般Singleton模式通常有以下几种形式1第一种形式-饿汉式单例类定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例化,通过一个public的getlnstance方法获得对它的引用继而调用其中的方法publicclassSingleton{〃在自己内部定义自己一个实例,是不是很惊异privatestaticSingletoninstanceSingleton;//留意这是private只供内部调用privateSingleton{//这里供应了一个供外部访问本class的静态方法可以干脆访问publicstaticSingletongetlnstance{returninstance;
(2)其次种形式-懒汉式单例类第一次调用才初始化publicclassGoodSingleton{〃在自己内部定义自己一个实例,是不是很惊异privatestaticGoodSingletoninstance=null;//留意这是private只供内部调用privateGoodSingleton{〃这个方法比上面有所改进不用每次都进行生成对象只是第一次〃运用时生成实例,提高了效率publicstaticsynchronizedGoodSingletongetlnstance{ifinstance=null{returnnewGoodSingletonO;}else{returninstance;〃懒汉式的另一种改进publicclassGoodSingleton{〃在自己内部定义自己一个实例,是不是很惊异privatevolatilestaticGoodSingletoninstance;privateGoodSingleton{//两次检查publicstaticGoodSingletongetlnstancel{ifinstance=null{synchronizedGoodSingleton.class{ifinstance=null{instance=newGoodSingletonO;returninstance;
(3)登记式单例类为了克服饿汉式和懒汉式单例类不行继承的缺点而设计的packagelianxi;interfaceInterface{voidmethod;classTest{〃补上代码,通过匿名内部类publicclassLianxi{publicstaticvoidmainString[]args{Testfunction.method;答案:interfaceInterface{voidmethod;classTest{publicstaticInterfacefunction{〃补上代码,通过匿名内部类returnnewInterface{publicvoidmethod{Systemout.printinHelloBeirun!;publicclassLianxi{publicstaticvoidmainString[]args{Testfunction.method;.编译并运行以下程序,以下描述哪个选项是正确的AclassA{protectedStringtoStringO{returnsuper.toStringO;}A、行2出错,不能成功编译B、编译通过但运行时出错C、编译通过运行无异样D、不能成功编译,行3出错解析方法重写时没有满足访问权限限制符要比父类的大或者相同.假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?ApublicclassFoointi;staticStrings;voidimethod{}staticvoidsmethod{}A、Foo.imethod;Bf.imethod;CSystemout.printinf.i;DFoo.smethod.以下哪个接口的定义是正确的?DA、interfaceA{voidprint{};}BabstractinterfaceA{voidprint;}CabstractinterfaceAextendsII12//Il12为已定义的接口{abstractvoidprint{};}DinterfaceA{voidprint;}解析接口定义时语法规定上是不须要加abstract的,因为接口本身就是abstract的,java编译器在编译接口时会自动加上abstracto但是我们显示的加上abstract是不会出现问题,不建议加此处选项B和C可以认为不正确.关于以下程序段,正确的说法是CStringsi=a”+“b”;Strings2=newStringsi;ifsl==s2Systemout.println二=issucceeded;ifsi.equalss
2.Systemout.printIn・equalsissucceeded;A.行4及行6都将执行B.行4执行,行6不执行C.行6执行,行4不执行D.行
4、行6都不执行.下面程序运行结果为D假如输出count则为Apublicclasstest3publicstaticvoidmainStringargs[]{intcount=0;forinti=0;i=100;i++count+=count++;A0B7C编译有错误D其他答案.下面哪个函数是publicvoidaMethod{...}的重载函数DA、voidaMethod{...}B、publicintaMethod{...C、publicvoidaMethod{...}D、publicintaMethodintm{...}.下面关于继承的哪些叙述是正确的?DA.在java中允许多继承在java中一个类只能实现一个接口在java中一个类不能同时继承一个类和实现一个接口java的单一继承使代码更牢靠.运行下面程序段的结果是DpublicclassMyMainpublicstaticvoidmainStringargs{Systemout.printlnHelloJava;A.正常输出HelloJavaB.编译时出错C.运行时出错D.以上答案都不对.类及对象的关系是AoA.类是对象的抽象B.类是对象的具体实例C对象是类的抽象D.对象是类的子类.下列关于修饰符混用的说法,错误的是BDabstract不能及final并列修饰同一个类abstract类中不行以有private的成员abstract方法必需在abstract类中static方法中能处理非static的属性解析abstract类中可以有private的成员,只是它的private成员不能被继承所以在abstract类中定义private成员没有意义
21.编译并运行下述程序段的结果是BpublicclassTest{publicstaticvoidmainStringargv[]{int[]count=newint
[4];System.out.printincount
[4];A.编译时错误B.运行时错误C.输出0D.输出null.下面是有关子类继承父类构造函数的描述,其中正确的是CDA.创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数B.子类无条件地继承父类不含参数的构造函数C.子类必需通过super关键字调用父类的构造函数D.子类无法继承父类的构造函数解析子类无法继承父类的构造器,但有时候可以运用super调用父类构造器中的初始化代码在继承关系中确定要确保构造器的上溯链不得中断,否则会出错.下列类的定义中,错误的是Bclassx{....}publicxextendsy{....}publicclassxextendsy{....}classxextendsyimplementsyl{....}.A派生出子类BB派生出子类C并且在Java源代码中有如下声明AaO=newA;Aal=newB;Aa2=newC;问以下哪个说法是正确的?DA.只有第1行能通过编译.第
1、2行能通过编译,但第3行编译出错C.第
1、
2、3行能通过编译,但第
2、3行运行时出错D.第1行、第2行和第3行的声明都是正确的.运行下列程序的结果是CabstractclassMineBase{abstractvoidamethodO;staticinti;publicclassMineextendsMineBase{publicstaticvoidmainStringargv[]{int[]ar=newint
[5];for7=0;iar.length;/++{Systemout.printlnar
[7];A.打印5个0B.编译出错,数组ar口必需初始化C.编译出错,Mine应声明为abstractD.出现IndexOutOfBoundes的例外.编译并运行以下程序段的结果是ApublicclassMyClass{finalstaticinti;MyClass{i=0;}。