(1)下列有关构造函数描述正确的是(C)。A、所有类都必须定义一个构造函数B、构造函数必须有返回值C、构造函数必须访问类的非静态成员D、构造函数可以初始化类的成员变量(2)编译和运行下面代码时显示的结果是(A)。publicclassThisConstructorCall{publicThisConstructorCall(Strings){System.out.println(s=+s);}publicThisConstructorCall(inti){this(i=+i);}publicstaticvoidmain(Stringargs[]){newThisConstructorCall(Stringcall);newThisConstructorCall(47);}}A、s=Stringcalls=i=47B、Stringcalls=iC、s=Stringcalli=47D、Stringcalls=i=47(3)关于被私有保护访问控制符private修饰的成员变量,以下说法正确的是(C)A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B)可以被这些类访问和引用:该类本身、该类的所有子类C)只能被该类自身所访问和修改D)只能被同一个包中的类访问(4)定义主类的类头时可以使用的访问控制符是(B)。A、privateB、publicC、protectedD、privateprotected(5)下列哪种说法是错误的(C)A)实例方法可直接调用超类的实例方法(当超类的实例方法没有被重写时)B)实例方法可直接调用超类的类方法(当超类的类方法没有被重写时)C)实例方法可直接调用其他类的实例方法D)实例方法可直接调用本类的类方法(6)已知如下类定义:classBase{publicBase(){}publicBase(intm){}protectedvoidfun(intn){}}publicclassChildextendsBase{}如下哪句可以正确地加入子类中构成方法的重载?(A)A)publicvoidfun(){}B)privatevoidfun(intn){}C)protectedvoidfun(intn){}D)publicfun(intn){}(7)classPerson{publicvoidprintValue(inti,intj){/*…*/}//2publicvoidprintValue(inti){/*...*/}//3}publicclassTeacherextendsPerson{publicvoidprintValue(){/*...*/}//6publicvoidprintValue(inti){/*...*/}//7publicstaticvoidmain(Stringargs[]){Persont=newTeacher();t.printValue(10);}第十行的声明将调用哪些方法?(D)A)online2B)online3C)online6D)online7(8)在使用interface声明一个接口时,只可以使用__D__修饰符修饰该接口A)privateB)protectedC)private和protectedD)public(9)下面是关于类及其修饰符的一些描述,错误的是(B)A)abstract类只能用来派生子类,不能用来创建abstract类的对象。B)final类不但可以用来派生子类,也可以用来创建final类的对象。C)abstract不能与final同时修饰一个类。D)abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法(10)当要将一文本文件当作一个数据库访问,读完一个纪录后,跳到另一个纪录,它们在文件的不同地方时,一般使用(B)类访问。A.FileOutputStreamB.RandomAccessFileC.PipedOutputStreamD.BufferedOutputStream1.关键字throws与throw在用法上有什么区别Throw用法:例如自定义了一个异常类,用newthrowMyException()Throws用于在函数声明时抛出异常类型,例publicvoidfunthrowsIOException()2.描述一下,如何通过继承Thread类的方式实现多线程。注:可以文字描述,也可以写一个例子说明。publicclassTestThread1{Publicstaticvoidmain(Stringargs[]){MyThreadmt=newMyThread();Threadt=newThread();T.start();For(inta=0;a10;a++){System.out.println(Thread.currentThread.getName()+”:”+a);Try{Thread.sleep(100);}catch(Exceptione){ThrownewRuntimException(e);}}}}ClassMyThread1implementsRunnable{System.out.println(Thread.currentThread.getName()+”:”+a);Try{Thread.sleep(100);}catch(Exceptione){ThrownewRuntimException(e);}}3.向mysql的xscj数据库中的xs表中添加删除数据。请描述如何实现。注:可以文字描述,也可以写一个例子说明。mysql数据库,驱动类名为com.mysql.jdbc.Driver,数据库url为jdbc:mysql://localhost:3306/xscj,用户名密码均为root可能用到的APIstaticClass?forName(StringclassName)DriverManager类staticvoidregisterDriver(Driverdriver)staticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)Connection接口StatementcreateStatement()Statement接口intexecuteUpdate(Stringsql)Importjava.sql.*PublicclassTestJDBC{Publicstaticvoidmain(Stringargs[]){ResultSetrs=null;Statementstmt=null;Connectionconn=null;Try{Class.forName(“com.mysql.jdbc.Driver”);Conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/xscj”,“root”,”root”)stmt.executeUpdate(“insertintoxsvalues(‘1002’)”);//添加stmt.executeUpdate(“deletefromxswhereid=1002”);//删除}}}1.从控制台输入一行字符串,降字符串按空格分割,分割结果放在一个数组里,最后再输出数组中的元素(用循环)。可能会用到的APIScanner类Scanner(InputStreamsource)构造一个新的Scanner,它生成的值是从指定的输入流扫描的。StringnextLine()此扫描器执行当前行,并返回跳过的输入信息String类String[]split(Stringregex)根据给定正则表达式的匹配拆分此字符串。//源程序importjava.util.Scanner;publicclassExam1{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubScannersc=newScanner(System.in);Strings=sc.nextline();System.out.println(s);String[]str=s.spilt(“”);for(Strings1:str){System.out.println(s1);}}}2.以下使用SimpleDataFormat将日期对象格式化成特定格式,将字符串中的日期转换成日期对象可能用到的APISimpleDateFormat(Stringpattern)//构造方法Stringformat(Datedate)Dateparse(Stringsource)//源程序importjava.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.*;publicclassExam2{publicstaticvoidmain(String[]args)throwsParseException{Dated=newDate();DateFormatdf=newSimpleDateFormat(yy-MM-dd);System.out.println(df.format(d));//打印日期Strings=2013-12-5;System.out.println(df.parse(s));//从字符串s中解析日期对象}}3.以下是一个操作List的源程序,请填空可能用到的APIArrays类staticTListTasList(T...a)//把a变成listCollection接口Object[]toArray()//将集合变成数组importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collection;importjava.util.*;importjava.util.Iterator;publicclassExam3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubListStringlist;//创建容器String[]strArray={F,G,H,I,J};list=Arrays.asList(strArray);//strArray数组变成Listfor(Iteratorit=list.iterator();it.hasNext();){System.out.print(it.hasNext()+);}System.out.println();Object[]o=list.toArray();//把list变成数组System.out.println(Arrays.deepToString(o));}}4.使用缓冲输出流、文件输出流将十个整数写入文件。可能用到的APIRandom类intnextInt(intn)//生成一个随机数,值在0~n-1之间缓冲输出流BufferedOutputStreamBufferedOutputStream(OutputStreamout)//构造方法类OutputStreamvoidwrite(byte[]b)String类byte[]getBytes()//将字符串变成字节数组importjava.io.*;importjava.util.Random;publicclassExam4{publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstubint[]array=newint[10];Randomran=newRandom();Stringstr;byte
本文标题:JAVA期末考试卷
链接地址:https://www.777doc.com/doc-5144758 .html