




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Java程序设计》课后练习答案第一章Java概述一、选择题(A)是在Dos命令提示符下编译Java程序的命令,(B)是运行Java程序的命令。javacjavajavadocjavaw(D)不是Java程序中有效的注释符号。///**//***/*/*/(B)不是Java语言的特点。面向对象自动检查语法错误跨平台解释执行Java编译器会将Java程序转换为(C)可执行代码目标代码字节码机器代码Java源文件的扩展名是(D).class B. .jar C. .jav D. .java二、简答题Java的跨平台的含义是什么?为什么Java可以跨平台?Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。以下图展示了Java程序从编译到最后运行的完整过程。简述Java语言的特点Java具有以下特点:简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。平台无关和解释执行Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。下图展示了Java程序从编译到最后运行的完整过程。分布式分布式包括数据分布和操作分布,而Java支持WWW客户机/服务器计算模式,因此也支持这两种分布式。多线程Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。三、综合编程题请编写一个简单的Java程序能够输出“这是我的第一个Java程序”。(注意为程序添加合适的注释和文档注释)。/***第一个java程序*/publicclassDemo{ /** *main方法,程序的起点 */ publicstaticvoidmain(String[]args){ //向控制台输出 System.out.println("这是我的第一个Java程序");}}第二章Java语法基础一、选择题下面哪个单词是Java语言的关键字(B)?A.Double B.this C.string D.bool下面属于Java关键字的是(D)。A.NULL B.IF C.Do D.goto在启动Java应用程序时可以通过main()方法一次性地传递多个参数。如果传递的参数有多个,可以用空格将这些参数分割;如果某一个参数本身包含空格,可以使用(B)把整个参数引起来。单引号B.双引号下面哪个是Java语言中正确的标识符(BD)。A.5x B.$x C.abc@ D.comJava语言中,下列标识符错误的是(D)。A._abc B.abc C.ABC D.5abc在Java中,整型常量不可以是(A)。A.double B.Long C.int D.byte在Java中,不属于整数常量的是(D)。A.100 B.100L C.0x100AD.6.0f下面哪个语句能定义一个字符变量chr(B)。A.charchr=’abcd’; B.charchr=’\uabcd’;C.charchr=”abcd”; D.charchr=\uabcd;下面哪个是对字符串s1的不正确定义(CD)。A.Strings1=”abcd”; B.Strings1;C.Strings1=‘abcd\0’; D.Strings1=”\abcd”;下面哪个范围是char型的取值范围(C)。-256~255B.-(2^15)~(2^15)-1C.\u0000’~‘\uffff’D.0~32767下面哪条语句不能定义一个float型的变量f1(ABD)。A.floatf1=3.1415E10B.floatf1=3.14C.floatf1=3.1415FD.f1=3.14F下列运算结果为float的是(C)。A.100/10B.100*10C.100.0+10 D.100-10数组中可以包含什么类型的元素(D)。A.int型B.string型C.数组D.以上都可以Java中定义数组名为xyz,下面哪项可以得到数组元素的个数(B)。A.xyz.length()B.xyz.lengthC.len(xyz)D.ubound(xyz)下面哪条语句定义了3个元素的数组(A)。A.int[]a={20,30,40};B.inta[]=newint(3);C.int[3]array;D.int[]arr;二、简答题Java有哪些基本的数据类型?写出这些基本数据类型所占用的最大空间(用字节描述)。(1)数字型(number),具体又分为:a.整型(integers),整型又包括:=1\*GB3①字节整数(byte,8bits)=2\*GB3②短整数(short,16bits)=3\*GB3③整数(int,32bits)=4\*GB3④长整数(long,64bits)b.实型(realnumbers),具体又分为:=1\*GB3①单精度(float,32bits)=2\*GB3②双精度(double,64bits)(2)字符型(char,16-bitUnicode字符)(3)布尔型(boolean)。说明Java字符编码的类型与特点。Java字符编码的类型为Unicode,具有以下特点:(1)Unicode是16比特的字符编码,其支持当前世界上绝大多数的语言;(2)Unicode给每个字符提供了一个唯一的编码表示,不论是什么平台、程序或语言;(3)Windows系统(Windows2000版本)、Java、XML、LDAP等已支持Unicode;(4)Unicode实现了ISO/IEC10646标准;写出Java中六个常用的转义字符。\b退格\t制表符\n换行(Newline)\r回车(Carriagereturn)\'单引号下面的几个标示符哪些是正确的,哪些是错误的,如果是错误的,请说明原因。MyClass,_isHis,3JavaProgram,_$asdf,Java-Visual-MachineMyClass:正确,符合标识符的组成规则。_isHis:正确,符合标识符的组成规则。3JavaProgram:错误,因为第1个符号不能为数字。_$asdf:正确,符合标识符的组成规则。Java-Visual-Machine:错误,标识符不能为保留字。说出常量与变量的定义并举例说明。常量是指程序执行过程中,值保持不变的量,类型划分如下:?整型常量?实型常量?布尔型常量?字符型常量?字符串常量如整型常量:?起始最大整数(正)最大长整数(正)举例十进制0,1~921474836479223372036854775807L23,+567,-12,0,1234八进制00177777777770777777777777777777777L034,0175,-0777L十六进制0x0x7FFFFFFF0x7FFFFFFFFFFFFFFFL0xFF,0x45L变量是指在程序执行过程中,值可以改变的量,类型划分为:整型变量、实型变量、字符型变量、字符串变量、布尔变量等。如:intx=2,就定义了一个整型变量x并且赋值为2。什么是强制类型转换?并说明其运用场合。显型类型转换是强制类型转换,它是一种窄化转换(narrowingconversion),如:doublea=1.5;floatb=a;System.out.println("b="+b);编译:"possiblelossofprecision"数据精度丢失,数据丢失。强制类型转换一般运用在?二元运算符的二个操作数类型不同?表达式值的类型与变量的类型不同描述Java程序的构成。如何判断Java程序的主类?下面的程序有哪些错误并改正,该程序的源代码应当保存为什么名字的文件?PublicclassMyClass{Publicstaticvoidmain(){System.out.printIn(“mynameis…”);}System.out.printIn(“theend!”);}Java程序的主类中包含main(),而其它类中没有;该程序的源代码应当保存为MyClass.java。另外该程序中包含以下的错误:Public的第一个字符应当小写;定界符“”应当改为"";printIn应该为println\System.out.printIn(“theend!”);代码应放在方法中结构化程序设计有哪三种基本流程?分别对应Java中的那些语句?结构化程序设计有下面三种基本流程:顺序结构语句,条件选择语句,循环控制语句,跳转/转向语句。条件选择语句对应Java中的if,if-else,嵌套的if-else,条件运算符,switch-case。循环控制语句对应Java中的for,while,do-while语句。跳转/转向语句对应Java中的contonue,break,return语句。在一个循环中使用break,continue,return的差别。break:跳出(中止)循环continue:结束本次循环return:方法返回数组的定义,特点与分类。如何进行数组的初始化?数组的定义:数组是一组同类型的变量或对象的集合。数组的特点:数组的类型可以是基本类型,或类和接口;数组中每个元素的类型相同;引用数组元素通过数组名[下标];数组下标(数组的索引)从0开始。数组是一种特殊的对象(Object),可以定义类型(声明);创建数组(分配内存空间);释放(Java虚拟机完成)。数组分类:一维数组、多维数组。
第三章面向对象的实现选择题在Java中,用package说明一个包时,该包的层次结构必须是(B)。A.与文件的结构相同 B.与文件的目录层次相同C.与文件的类型相同 D.与文件大小相同下列构造方法的调用方式中,正确的是(C)。A.按照一般方法调用 B.由用户直接调用 C.可通过new自动调用 D.被系统调用int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是(D)。A.publicintMAX_LENGTH=100 B.finalintMAX_LENGTH=100C.publicconstintMAX_LENGTH=100 D.publicfinalintMAX_LENGTH=100在Java中,以下叙述不正确的是(B)构造方法名与类名相同。构造方法不是用来完成初始化的。构造方法由new操作调用,而不能被用户直接调用。构造方法没有返回类型。在Java中,下面的叙述哪个是不正确的?(D)类的静态方法可以在该类的对象被创建前调用类的静态方法不能访问该类的非静态方法abstract修饰符可以出现在类或方法的前面,但不能出现在变量之前final修饰符可以出现在类或变量之前,但不能出现在方法之前在Java里,下列选项(D)不是实现面向对象思想的机制。封装 B.继承多态 D.数据类型转换类Worker是类Person的子类,Worker构造方法中有一句"super();",该语句是什么意思?(C)调用类Worker中定义的super()方法调用类Person中定义的super()方法调用类Person的构造函数语法错误给定Java程序,如下:编译运行Test.java,结果是(C)。publicclassTest{privatestaticfinalintcounter=10;publicstaticvoidmain(String[]args){System.out.println(counter++);}}A. 10 B. 11C. 编译错误 D. 运行时出现异常 给定如下Java代码,编译时会在(D)出现错误。(只选择一项) classParent{ }classChildextendsParent{publicstaticvoidmain(String[]args){Parentp1=newChild();//第一行 Parentp2=newParent();//第二行 Childc1=newChild();//第三行 Childc2=newParent();//第四行 } }第一行 B.第二行第三行 D.第四行在Java中,某类方法使用下列(BC)访问修饰符修饰后,可以被其的子类访问。private B.protectedpublic D.friendly在Java语言中,如果你有下面的类定义:abstractclassShape{abstractvoiddraw();}classSquareextendsShape{}以下描述正确的是(B)一切成功编译Shape可以编译,Square不能编译Square可以编译,Shape不能编译Square,Shape都不能编译分析下列Java代码:classA{publicstaticvoidmain(String[]args){method();}staticvoidmethod(){System.out.println("Hello");System.exit(0);System.out.println("good-bye");}}编译运行后,输出结果是(A)。"Hello" B."good-bye""Hello"后面是"good-bye" D.代码不能编译下表是final修饰符与变量、方法、类等一起作用的结果的对应表,但是对应关系存在错误,请选择正确的对应关系。(C)概念 作用1 变量 A不能再产生子类2 方法 B一旦赋值,就不能更改3 类 C不能在子类中覆盖1-A 2-B 3-C1-C 2-A 3-B1-B 2-C 3-A1-C 2-B 3-A有以下程序:publicclassConstOver{publicConstOver(intx,inty,intz){}}下面哪个方法重载了上面的ConstOver构造方法?(B)protectedintConstOver(){}privateConstOver(intz,inty,bytex){}publicobjectConstOver(intx,inty,intz){}publicvoidConstOver(bytex,bytey,bytez){}有以下程序:classBaseClass{privatefloatx=1.0f;publicfloatgetVar()(returnx;)}classSubclassextendsBaseClass{privatefloatx=2.0f;//insertcodehere}下面哪个方法加到程序中的“//insertcodehere”位置是有效的重定义父类的方法。(B)protectedfloatgetVar(){returnx;}publicfloatgetVar(){returnx;}protectedfloatdoublegetVar(){returnx;}publicfloatgetVar(floatf){returnf;}指出下列程序运行的结果(B)publicclassExample{Stringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain(String[]args){Exampleex=newExample();ex.change(ex.str,ex.ch);System.out.print(ex.str+"and");System.out.print(ex.ch);}publicvoidchange(Stringstr,charch[]){str="testok";ch[0]='g';}}goodandabc B.goodandgbctestokandabc D.testokandgbc下列哪些语句关于内存回收的说明是正确的?(B)程序员必须创建一个线程来释放内存;内存回收程序负责释放无用内存;内存回收程序允许程序员直接释放内存;内存回收程序可以在指定的时间释放内存对象。创建一个名为“MyClass.java”的文件,该文件中只有一个可被整个工程中的所有类访问的类,那么该类的正确声明应为:(C)privateclassMyClassextendsObject B.classTestClassextendsObjectpublicclassMyClass D.publicclassTestClass下列叙述中,错误的是(A)内部类的名称与定义它的类的名称可以相同内部类可用abstract修饰内部类可作为其他类的成员内部类可访问它所在类的成员用于在子类中调用被重写的父类方法的关键字是(B)thissuperThisSuper下面程序输出结果是(A)publicclassDelta{staticbooleanfoo(charc){System.out.print(c);returntrue;}publicstaticvoidmain(String[]argv){inti=0;for(foo('A');foo('B')&&(i<2);foo('C')){i++;foo('D');}}}ABDCBDCBABCDABCD编译错误运行时异常下列(B)修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问。private B.无修饰符public D.protected给出下列代码,如何使成员变量m被方法fun()直接访问?(C)classTest{privateintm;publicstaticvoidfun(){...}}将privateintm改为protectedintm将privateintm改为publicintm将privateintm改为staticintm将privateintm改为intm已知有下列类的说明,则下列哪个语句是正确的?(A)publicclassTest{privatefloatf=1.0f;
intm=12;
staticintn=1;
publicstaticvoidmain(String[]args){Testt=newTest();}}t.f; B.this.n;Test.m; D.Test.f;下列代码的执行结果是(A)publicclassTest{publicvoidaMethod(){staticinti=0;
i++;
System.out.println(i);}publicstaticvoidmain(String[]args){Testtest=newTest();test.aMethod();}}编译错误 B.01 D.运行成功,但不输出若特快订单是一种订单,则特快订单类和订单类的关系是(C)使用关系 B.包含关系继承关系 D.无关系下列代码中,将引起一个编译错误的行是(D)1)publicclassTest{2)intm,n;3)publicTest(){ }4)publicTest(inta){m=a;}5)publicstaticvoidmain(String[]args){6)Testt1,t2;7)intj,k;8)j=0;k=0;9)t1=newTest();10)t2=newTest(j,k);11) }12)}第3行 B.第5行第6行 D.第10行下列叙述中,错误的是(D)父类不能替代子类 B.子类能够替代父类子类继承父类 D.父类包含子类程序阅读题写出以下程序的结果:publicclassTest{???privatestaticvoidprintArray(int[]arr)??{???????for(inti=0;i<arr.length;i++)???????????System.out.print(arr[i]+”,”);???????System.out.println(“\n”);???}???privatestaticvoidchangeValue(intvalue){???????value*=2;???}???privatestaticvoidchangeValue(int[]arr){???????????for(inti=0;i<arr.length;i++)???????????????arr[i]*=2;???}??publicstaticvoidmain(String[]args){?? int[]arr={1,2,3,4,5};?? changeValue(arr[0]);?? printArray(arr);?? changeValue(arr);?? printArray(arr);???}}运行结果:1,2,3,4,5,2,4,6,8,10,指出以下程序的错误,并改正:?publicclassMain{?????publicstaticfinalAobj=null;?????publicstaticvoidmain(String[]args){???????? obj=newA();?????}?}?classA{?}错误:final的对象不能改变。指出以下程序的错误,并改正:?publicclassTest{?????publicstaticvoidmain(String[]args){?????????MyClassobj=newMyClass();?????????obj.Info+=”,World!”;?????????System.out.println(obj.Info);?????}?}?classMyClass?{????????publicStringInfo=”Hello”;????????publicMyClass(StringInfo)?????????{????????????this.Info=Info;?????????}?}错误:?MyClassobj=newMyClass();找不到匹配的构造方法。指出下面程序的错误,并改正:?abstractclassAnimal?{?publicabstract?voidsaySomething()??{????System.out.println(“你想说什么就说吧!”);????}?}?classDogextendsAnimal{? publicvoidsaySomething(){???? System.out.println(“我现在有了第二职业:捉耗子!”);????}?}?publicclassTest{????publicstaticvoidmain(String[]args){????????Animalani=newDog();?????????ani.saySomething();?}}错误:publicabstract?voidsaySomething()抽象方法不能有方法体。简答题简述继承、方法重写和抽象类如何支持多态性?(略)解释什么是方法重载和重定义,并举例说明他们的作用。(略)说明抽象类与接口的区别。(略)什么是垃圾回收,它是如何工作的?什么是finalize()?(略)举例说明this关键字的作用?(略)举例说明java中枚举类型的用法。(略)
第四章异常和异常处理一、选择题以下(A)和(C)是Throwable的直接子类。Error B.NullPointerExceptionException D.Assert能单独和finally块一起使用的块是(A)try B.catchthrow D.throws下列异常类中,在多重catch中同时使用时(C)异常类的catch块应该最后列出?NullPointerException B.ArithmeticExceptionException D.ArrayIndexOutOfBoundsException程序读入用户输入的一个值,要求创建一个自定义的异常,如果输入值大于10,使用throw语句显式地引发异常,异常输出信息为"somethingwrong!",语句为(C)。if(i>10)throwException("somethingwrong!");if(i>10)throwExceptione("somethingwrong!");if(i>10)thrownewException("somethingwrong!");if(i>10)thrownewExceptione("somethingwrong!");分析下列Java代码:classA{publicstaticvoidmain(String[]args){method(); }staticvoidmethod(){try{System.out.println("Hello");System.exit(0); }finally{System.out.println("good-bye"); } }} 编译运行后,输出结果是(A)Hello B.good-byeHello D.代码不能编译good-bye关于捕获错误的语法try-catch-finally的下列描述正确的是(C)。try必须和catch搭配使用try可以单独使用try-finally可以搭配使用在try块后如果定义了finally,则不能再定义catch块在Java中,假定有一个包含引起异常(不是一个RuntimeException)的代码的方法,用什么方式告诉方法的调用者要捕获该异常。(B)throwException B.throwsExceptionnewException D.不用特别指定考虑下列JAVA代码:classA{publicstaticvoidmain(String[]args){try{System.out.println("Hello,World!");}}}这段代码错误的原因是(A)。 没有catch和finally块没有抛出异常的代码不能出现在try代码块内如果没有catch块而使用try,main()会总是抛出异常classA没有throwsIOException考虑一下代码,编译运行之后,会(D) Strings=null;System.out.println(s.charAt(0));输出null没有输出编译错误编译成功,但是运行时报NullPointerException异常研究下面的Java代码:publicclasstestException{publicstaticvoidmain(String[]args){inta[]={0,1,2,3,4};intsum=0;try{for(inti=1;i<6;i++)sum=sum+a[i];System.out.println("sum="+sum);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("数组越界");}finally{System.out.println("程序结束");}}}输出结果将是(C)。10数组越界程序结束10程序结束数组越界程序结束程序结束第五章java.lang包和字符串选择题Java编程所必须的默认引用包为(B)A.java.sys包 B.java.lang包C.java.new包 D.以上都不是在Java中,所有类的根类是(A)A.java.lang.Object B.java.lang.ClassC.java.applet.Applet D.java.awt.Frame设有下面两个赋值语句:x1=Integer.parseInt("123");
x2=Integer.valueOf("123").intValue();
下述说法正确的是(D)。x1为int型变量,x2为Integer类的对象 x2为int型变量,x1为Integer类的对象x1、x2均为Integer类的对象x1、x2均为int型变量在Java中,存放字符串常量的对象属于(B)类对象。?? A.Character????????????????? B.StringC.StringBuffer D.Vector已知如下定义:Stringstr="Ilove";下面(D)表达式是合法的。A.charch=str[0]; B.intlen=str.length;C.Stringto=str.delete(1,2); D.str+="China";设有以下程序段,执行后,屏幕输出(A)。Strings1="Ilove"+"China";Strings2=newString(s1);if(s1==s2)System.out.println("==");if(s1.equals(s2)==true)System.out.print("equals");A.equals B.== C.==equals D.不输出下列方法中,不属于类String的方法是(D)。A.toLowerCase() B.replace() C.charAt() D.append()有下列程序:publicclassaa{publicstaticvoidmain(String[]args){Strings="18.03";try{doublenumber1=Double.parseDouble(s);System.out.print(number1);intnumber2=Integer.parseInt(s);System.out.println(""+number2);}catch(NumberFormatExceptionnfe){System.out.println("Sorry");}catch(Exceptione){}}}执行结果是(C)。18.03 B.Sorry C.18.03Sorry D.程序编译错误
第六章java.lang包和字符串选择题下列(A)集合不能含有重复元素。A.Set B.List C.Map D.Collection当元素个数固定时,使用(D)集合查找效率最高。A.Set B.List C.Map D.Arrays你希望存储少量数据并能快速访问.你并不需要排序这些数据,那种数据结构最适合这种需求?(D)TreeSet B.HashMap C.LinkedList D.数组欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?(B)ArrayListmyList=newObject();ListmyList=newArrayList();ArrayListmyList=newList();ListmyList=newList();关于HashMap和TreeMap类,判断下列那种说法是正确的?(A)它们都能方便地定位映射中的值对象它们都实现了SortedMap接口它们都能高效地按照顺序遍历键以上说法都不对下列哪个不是Iterator接口所定义的方法?(D) A.hasNext() B.next() C.remove() D.nextElement()关于链表结构,陈述错误的是哪个?(B)链表可动态增长在链表中查找对象是最有效的链表中的元素可以重复通常情况下,向链表中插入元素的效率高于向ArrayList中插入元素的效率Java语言的集合框架类定义在(B)语言包中。java.lang B.java.util C.java.array D.java.collectionsSet集合如何处理重复的元素?(B)A.如果试图向Set集合中添加一个与集合中已有元素值相同的元素时,将抛出异常B.如果试图向Set集合中添加一个与集合中已有元素值相同的元素时,add方法返回falseC.如果试图向Set集合中添加一个与集合中已有元素值相同的元素时,将发生编译错误D.可以在Set集合中添加一个与集合中已有元素值相同的元素下列哪项是正确的?(D)A.Collection是集合继承体系中根类B.Collection接口中提供了enumerator方法C.interator方法返回Vector类的对象D.实现Set接口的类对象中,每个元素的值均不相等给定下列java代码:importjava.util.*;
publicclassLetterASort{publicstaticvoidmain(String[]args){ArrayList<String>strings=newArrayList<String>();strings.add("aAaA");strings.add("AaA");strings.add("aAa");strings.add("AAaa");Collections.sort(strings);for(Strings:strings){System.out.print(s+"");}}}对该程序编译运行,结果是(C)。编译失败aAaAaAaAAaaAaAAAaaAaAaAaaAaAAaAAAaaaAaAaAaaAaAaAaAaAAAaa运行时抛出异常给定下列java代码://在这里插入privateNmin,max;publicNgetMin(){returnmin;}publicNgetMax(){returnmax;}publicvoidadd(Nadded){if(min==null||added.doubleValue()<min.doubleValue())min=added;if(max==null||added.doubleValue()>max.doubleValue())max=added;}}选择以下哪两行中任一行插入指定位置,程序可以通过编译。(AC)publicclassMinMax<NextendsNumber>{publicclassMinMax<?extendsNumber>{publicclassMinMax<NextendsObject>{publicclassMinMax<?>{publicclassMinMax<?extendsObject>{publicclassMinMax<NextendsInteger>{给定下列java代码:importjava.util.*;
publicclassOld{publicstaticObjectget(Listlist){returnlist.get(0);}}以下选项中,哪三个能编译成功?(ADE)Objecto=Old.get(newLinkedList());Objecto=Old.get(newLinkedList<?>());Strings=Old.get(newLinkedList<String>());Objecto=Old.get(newLinkedList<Object>());Strings=(String)Old.get(newLinkedList<String>());给定下列java代码:publicvoidtakeList(List<?extendsString>list){//在这里插入}将以下哪些语句插入指定位置,能够编译成功?(D)list.add("STRING");list=newArrayList<String>();list=newArrayList<Object>();Strings=list.get(0);Objecto=list;给定下列java代码:publicclassScoreimplementsComparable<Score>{privateintwins,losses;publicScore(intw,int1){wins=w;losses=1;}publicintgetWins(){returnwins;}publicintgetLosses(){returnlosses;}publicStringtoString(){return"<"+wins+","+losses+">";}//在这里插入代码}以下哪个方法能完成这个类?(B)publicintcompareTo(Objecto){/*这里是实现代码*/}publicintcompareTo(Scoreother){/*这里是实现代码*/}publicintcompare(Scores1,Scores2){/*这里是实现代码*/}publicintcompare(Objecto1,Objecto2){/*这里是实现代码*/}给定下列java代码:publicstaticvoidappend(Listlist){list.add(”0042”);}publicstaticvoidmain(String[]args){List<Integer>intList=newArrayList<Integer>();append(intList);System.out.println(intList.get(0));}对该程序编译运行,结果是(D)。420042运行时发生异常编译错误阅读程序,并填空。有以下程序:publicclassGen<T>{privateTobject;publicGen_(Tobject){ this.object=object;}publicTgetObject(){returnobject;}publicstaticvoidmain(String[]args){Gen<String>str=newGen<String>(“[answer]”);Gen<Integer>intg=newGen<Integer>(42);System.out.println(str.getObject()+“=”+intg.getObject());}}该程序运行结果为42,请将以下选项填入下划线内。注意每个选项均可重复选择。Gen<T>Gen<?>Gen?T有以下程序:importjava.util.*;publicclassMyIntimplementsComparable{privateinti;publicMyInt(inti){this.i=i;}publicStringtoString(){returnInteger.toString(i);}publicintcompareTo(Objecto){MyInti2=(MyInt)o;returni-i2.i;}publicstaticvoidmain(String[]args){ArrayList<MyInt>list=newArrayList<MyInt>();list.add(newMyInt(2));list.add(newMyInt(1));Collections.sort(list);System.out.println(list);}}该程序运行结果为[1,2],请将以下选项填入下划线内。implementsObjectComparableprotectedpublici-i2.iii2.i–icompare(MyInto,MyInti2)compare(Objecto,Objecti2)compareTo(MyInto)compareTo(Objecto)综合编程题设有一数列:a1=3,a2=8,……,an=2an-1+2an-2,使用堆栈结构输出an的若干项。importjava.util.HashMap;publicclassNumNameMap{ publicstaticvoidmain(String[]args){ HashMap<String,String>stu=newHashMap<String,String>(); stu.put("1","list"); stu.put("2","Bill"); stu.put("3","Ann"); System.out.println(stu); }}有如下的类:publicclassNumberList{privateArrayListal;publicNumberList(int[]value){//将数组value中的元素添加到al中}Mapcount(){//统计al中每个元素出现的次数,并将“元素值,这个元素出现的次数”作为键值对保存到Map对象中}}要求如下:(1)按注释中的要求实现其中的方法。(2)定义一个测试类,用以验证NumberList类的正确性。importjava.util.ArrayList;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Map;classNumberList{ privateArrayListal; publicNumberList(int[]value){ //将数组value中的元素添加到al中 al=newArrayList(); for(inti=0;i<value.length;++i) al.add(value[i]); } publicMap<Integer,Integer>count(){ //统计al中每个元素出现的次数,并将“元素值,这个元素出现的次数”作为键值对保存到Map对象中 HashSetset1=newHashSet(); set1.addAll(al); HashMaphm=newHashMap(); Iteratorit=set1.iterator(); while(it.hasNext()){ intn=(int)it.next(); hm.put(n,0); } it=al.iterator(); while(it.hasNext()){ intn=(int)it.next(); hm.put(n,(int)hm.get(n)+1); } returnhm; } publicstaticvoidmain(String[]args){ int[]arr={1,3,2,4,7,1,1,3,4,8}; NumberListnl=newNumberList(arr); Map<Integer,Integer>hm=nl.count(); System.out.println(hm); }}
第七章输入输出和序列化一、选择题下面关于System.out的说法哪个正确?(ABC)System.out是一个PrintStreamSystem.out是一个OutputStreamSystem.out是一个FilterOutputStreamSystem.out不是一个PrintStream下面哪个语句可以建立文件“file.txt”的字节输入流?(D)InputStreamin=newInputStream("file.txt")InputStreamin=newFileReader("file.txt")FileInputStreamin=newFileOutputStream("file.txt")FileInputStreamin=newFileInputStream("file.txt")当前文件系统中已经存在了文件file.txt,该文件包涵有ASCII文本,代码片段如下:try{Filef=newFile("file.txt");outputStreamout=newFileOutputStream(f,true);}catch(IOException){}结果是什么?(B)代码不能编译代码可以编译并运行,对该文件不会有改变代码可以编译并运行,并将该文件的长度设置为0抛出异常,因为该文件没有关闭代码可以编译运行,并从文件系统中删除该文件。下面哪个选项可以将“hello”字符写入文件file.txt的末尾?(B)OutputStreamout=newFileOutputStream("file.txt");Out.writeBytes("hello");OutputStreamos=newFileOutputStream("file.txt",true);DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");OutputStreamos=newFileOutputStream("file.txt");DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");OutputStreamos=newOutputStream("file.txt",true);DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");哪个类是FilterOutputStream类构造器的合法参数?(B)InputStreamOutputStreamFileRandomAccessFileStreamTokenizer下面关于java.io.Serializable的说法哪个不正确?(C)一个对象在一个JVM被序列化后,可以在另外一个JVM被反序列化声明成transient的数据成员不能被序列化和反序列化声明成static的数据成员,因为该数据成员是对象内部的成员,所以仍然可以被序列化如果一个父类可以被序列化,则所有继承该类的子类也可以被序列化分析下面给出的代码结果是什么?importjava.io.*;publicclassForestimplementsSerializable{ privateTreetree=newTree(); publicstaticvoidmain(String[]args){ Forestf=newForest(); try{ FileOutputStreamfs=newFileOutputStream("Forest.ser"); ObjectOutputStreamos=newObjectOutputStream(fs); os.writeObject(f); os.close(); }catch(Exceptionex){ ex.printStackTrace(); } }}classTree{}结果是什么?(B)代码不能编译代码可以编译,运行时抛出异常一个Forest实例被序列化一个Forest实例和Tree实例都被序列化分析下面的代码:importjava.io.*;publicclassFooimplementsSerializable{publicintx,y;publicFoo(intx,inty){this.x=x;this.y=y;}privatevoidwriteObject(ObjctOutputStreams)throwsIOException{s.writeInt(x);s.writeInt(y);}privatevoidreadObject(ObjectInputStreams)throwsIOException,ClassNotFoundException{//insertcodehere}}下面给出的选择中,在10行处插入哪些代码,可以使该类实现正确的序列化和反序列化(D)s.defaultReadObject();this=s.defaultReadObject(),y=s.readInt();x=s.readInt();x=s.readInt();y=s.readInt();假定下面代码中的serializeBanana()和deserializeBanana()方法可以正确的执行,分析下面的代码,结果是什么?(C)importjava.io.*;classFoodimplementsSerializable{ intgood=3;}classFruitextendsFood{ intjuice=5;}publicclassBananaextendsFruit{ intyellow=4; publicstaticvoidmain(String[]args){ Bananab=newBanana(); Bananab2=newBanana(); b.serializeBanana(b);//assumecorrectserialization b2=b.deserializeBanana();//assumecorrect System.out.println("restore"+b2.yellow+b2.juice+b2.good); } //moreBananamethodsgohere}restore400restore403restore453Compilationfails
第八章GUI图形用户界面编程一、选择题以下哪个不是Swing容器组件?(C)JFrameJPanelJTextAreaJScrollPane如果想在界面上创建一个如图8-所示的效果,需要拖放哪些组件?(CD)(选两项)图8-33 鼠标事件程序JComboBoxJTextFieldJTextAreaJScrollPane以下哪个不是Java事件处理机制的元素?(D)事件 B.事件监听器事件源 D.事件处理程序以下关于布局管理器哪句是错误的?(D)FlowLayout将组件按顺序从左到右、从上到下进行排列BorderLayout布局将组件按照上、下、左、右、中进行排列GridLayout布局将组件按照行和列的矩阵进行排列BorderLayout布局中允许放置多于5个的组件以下那句描述不正确?(D)Swing组件是在AWT基础上发展起来的Swing组件是纯Java的轻量型组件所有的Swing组件均已“J”开头Swing组件所在的包在java.swing中哪个组件可以从一组选项中选择多个选项?(C)JRadioButtonJComboBoxJCheckBoxJTextField以下哪一个是JTable的父类?(A)JComponentJContainerComponentContainer以下菜单类中哪个是父类?(D)JCheckBoxMenuItemJRadioButtonMenuItemJMenuJMenuItem
第九章JDBC数据库编程一、选择题用于创建数据库连接的接口是哪个?(B)ConnectionDriverManagerStatementResultSet用于执行SQL语句并返回执行结果的接口是哪个?(C)ConnectionDriverManagerStatementResultSet用于保存查询结果的接口是哪个?(D)ConnectionDriverManagerStatementResultSet访问数据库必须要捕获的异常是哪个?(B)IOExceptionSQLExceptionClassNotFoundExceptionEOFException以下哪个不是使用预编译接口的优点?(D)速度快一次编译,多次执行效率高代码量少二、简答题简述JDBC技术连接数据库的优点。答:JDBC(JavaDatabaseConnectivity,Java数据库连接)技术是Sun公司推出的一种专门访问数据库的API。它是由一组用Java编程语言编写的类和接口组成,支持基本SQL语句,提供多样化的数据库连接方式,可连接不同的数据库。JDBC技术是用来Java语言编写的访问数据库标准接口,使用这样的API编写的应用程序无论从安全性、健壮性、可移植性都是具有优势的简述JDBC技术连接数据库的步骤。在SQLServer里创建一个名为MyDB的数据库,数据库里有一张Users表,表中有UserID,UserName两个字段,请写出连接MyDB数据库和访问Users表中数据的代码。publicstaticvoidmain(String[]args){//调用纯Java方式连接数据库Connectionconn=JavaCon();try{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 楼层地下室施工方案
- 2025年注册会计师考试《会计》全真模拟试题及答案解析
- 安全风险评估模型-全面剖析
- 宝宝乐品牌形象塑造-全面剖析
- 跨境电商物流绿色包装材料应用-全面剖析
- 工业园路下穿铁路框架桥施工方案
- 海洲·锦绣华府三期人工挖孔桩施工方案
- 水泵拆除及安装施工方案
- 冻土开挖施工方案土方开挖回填专项施工方案
- 专家评审协议合同协议书9篇
- 公司企业工匠申报表
- 三字经全文(带拼音及诵读指导)精编版课件
- 井控培训知识课件
- 企业年金培训版教学课件
- 双减背景下小学语文作业的有效设计课件
- 十二讲船舶制冷装置课件
- 健康信息学中医药学语言系统语义网络框架
- 2023年中考语文一轮复习考点梳理+对点训练(原卷版+解析版)(打包7套)
- 普通高中学生综合素质档案填写样表
- 大连理工大学机械制图习题集答案.
- 小学生数学习惯养成总结-ppt课件
评论
0/150
提交评论