您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > java基础及面向对象试题
JAVA基础1、变量命名有哪些规定?2、指出下面程序中的编译错误,并更正intlenght=10;System.out.println(length);int&size=2;System.out.println(&size);intage;System.out.println(age);3、指出下面程序运行输出结果inti=100,j=200;booleanb=(ij)&&(i++100);System.out.println(b);System.out.println(i);4、指出下面运行输出结果inta=100;Stringmsg=“a=”+a;System.out.ptintln(msg);msg=“”+100+200;System.out.ptintln(msg);msg=100+200+””;System.out.ptintln(msg);5、请简述for语句的执行流程for(表达式1;表达式2;表达式3){语句块}6、输出2-100之内的所有质数7、冒泡排序8、随机生成长度为5的int类型的数组,并输出9、什么是类参考答案:类是一个概念(名词)抽象的定义。类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了一些可以被调用的功能,称之为“方法”。类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定义它的类来决定。10、简述JVM内存结构堆,栈和方法区别,分别存储的内容参考答案:JVM会在其内存空间中开辟一个称为“堆”的存储空间,这部分空间用于存储使用new关键字创建的对象。栈用于存放程序运行过程当中所有的局部变量。一个运行的Java程序从开始到结束会有多次方法的调用。JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。当某一个方法调用完成后,其对应的栈帧将被清除。方法区该空间用于存放类的信息。Java程序运行时,首先会通过类装载器载入类文件的字节码信息,经过解析后将其装入方法区。类的各种信息都在方法区保存。11、什么是方法的重载参考答案:在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)。编译器在编译时会根据其参数的不同,绑定到不同的方法。12、什么是构造方法参考答案:在Java语言中可以通过构造方法实现对对象成员变量的初始化。构造方法是在类中定义的方法。但不同于其他的方法,构造方法的定义有如下两点规则:1.构造方法的名称必须与类名同名。2.构造方法没有返回值,但也不能写void。13、重写和重载的区别参考答案:重载遵循所谓“编译期绑定”,即在编译时根据参数变量的类型判断应该调用哪个方法。重写遵循所谓“运行期绑定”,即在运行的时候根据引用变量指向的实际对象类型调用方法。14、下面哪种情况属于方法重载A)方法名相同,参数类型与个数不同B)方法参数类型相同C)方法参数个数相同D)方法返回类型相同E)方法名相同,方法参数类型与个数也相同15、如果一个子类要继承父类,需要使用哪个关键字A)thisB)superC)publicD)extends16、classCard{}下列不属于Card类的构造方法的是:A.Card(){}B.publicCard(){}C.publicvoidCard(){}D.privateCard(){}17、下列说法正确的是:classCalssA{publicintnumberOfinstances;protectedClassA(intnumberOfinstances){this.numberOfinstances=numberOfinstances;}}PublicclassExtendedAextendsClassA{privateExtendedA(intnumberOfinstances){super(numberOfinstances);}publicstaticvoidmain(String[]ages){ExtendedAext=newExtendedA(420);System.out.print(ext.numberOfinstances);}}A.运行后,输出420B.运行时抛出异常C.编译错误,所有的构造器必须是public的D.编译错误,构造器不能private的18、下列不属于java语言特征的是:A.平台无关B.面向对象C.支持指针类型D.垃圾回收机制19、下列代码的输出结果是:()publicclassA{Publicvoidinfo(){System.out.println(“Ainfo”);}}publicclassBextendsA{publicvoidinfo(){System.out.println(“Binfo”)}Publicstaticvoidmain(String[]ages){Bb=newB();Aa=b;a.info();}}A.BinfoAinfoB.AinfoBinfoC.AinfoD.Binfo20、下列输出结果是:classFoo{publicstaticvoidtest(){System.out.println(Foo);}}classMooextendsFoo{publicstaticvoidtest(){System.out.println(Moo);}}publicstaticvoidmain(String[]args){Fooff=newMoo();ff.test();}21、以下描述不正确的是?()A.finalclass不能被继承B.final变量不能被修改C.final成员变量不可以在构造方法中赋值D.final方法不能被覆盖(overriden)22、以下描述不正确的是?A.abstractclass一定有abstractmethod(s)B.abstractclass可以没有abstractmethod(s)C.定义abstractclass的目的是为了被继承D.interface中定义的方法全是abstractmethodsE.interface中定义的变量全部是finalstatic变量23、一个匿名内部类不可能是?A.继承其他的类B.实现了某一接口C.定义了构造方法D.可以使用成员变量24、下面关于java语言中方法的说法错误的是:A.方法调用时参数类型必须符合方法的定义B.参数传递是值传递的方式C.如果方法没有返回值必须声明返回为voidD.如果方法定义为返回void,则方法中不能出现return语句25、下面运行的结果是:publicclassFoo{publicStringdoit(intx,inty){returna;}publicStringdoit(int[]vals){returnb;}publicstaticvoidmain(String[]args){Foof=newFoo();System.out.println(f.doit(4,5));}}A.代码publicStringdoit(int[]vals){行,编译出错B.代码System.out.println(f.doit(4,5));行,抛出运行时异常C.输出:aD.输出:b26、关于下列代码说法正确的是:publicclassFoo{publicintadd(inta,intb){returna+b;}publicstaticvoidmain(String[]args){Foofoo=null;System.out.println(foo.add(10,20));}}A.编译错误B.正常运行,但无结果输出C.运行输出:30D.运行时抛出NullPointerException异常27、下列说法正确的有:A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被实例化时执行D.一个class只能定义一个constructor28、关于Java中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类29、下列程序运行结果是?30、请看下列代码classClassA{}classClassBextendsClassA{}classClassCextendsClassA{}publicclassTest{publicstaticvoidmain(String[]args){ClassAp0=newClassA();ClassBp1=newClassB();ClassCp2=newClassC();ClassAp3=newClassB();ClassAp4=newClassC();插入代码}}下列选项中放置在插入代码处,使程序编译正确的是:A.p0=p1;B.p1=p2;C.p2=p4;D.p2=(ClassC)p1;31、程序输出的结果是classOne{publicOne(){System.out.print(1);}}classTwoextendsOne{publicTwo(){System.out.print(2);}}classThreeextendsTwo{publicThree(){System.out.print(3);}}publicclassNumbers{publicstaticvoidmain(String[]argv){newThree();}}A.1B.3C.123D.32132、下面代码运行结果是:publicclassAnimal{publicStringnoise(){returnpeep;}publicstaticvoidmain(String[]args){Animalanimal=newDog();Catcat=(Cat)animal;System.out.println(cat.noise());}}classDogextendsAnimal{publicStringnoise(){returnbark;}}classCatextendsAnimal{publicStringnoise(){returnmeow;}}A.peepB.barkC.meowD.抛出运行时异常33、下面代码运行结果是:classSimpleCalc{publicintvalue;publicvoidcalculate(){value+=7;}}publicclassMultiCalcextendsSimpleCalc{publicvoidcalculate(){value-=3;}publicvoidcalculate(intmultiplier){calculate();super.calculate();value*=multiplier;}publicstaticvoidmain(String[]args){MultiCalccalculator=newMultiCalc();calculator.calculate(2);System.out.println(Valueis:+calculator.value);}}A.Valueis:8B.Valueis:-8C.Valueis:12D.Valueis:-1234、下列数组创建和初始化的方式不正确的是:A.publicclassTest02{staticfinalint[]a={100,200};}B.publicclassTest02{staticfinalint[]a;static{a=newint[2];a[0]=100;a[1]=200;}}C.publicclassTest02{finalint[]a;publicTest02(){a=newint[2];a[0]=100;a
本文标题:java基础及面向对象试题
链接地址:https://www.777doc.com/doc-2878823 .html