logo资料库

2019年Java题库(答案).pdf

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
2019 年 Java 题库答案 一、选择题 1、关于 Java 语言叙述错误的是:( C ) A.Java 语言具有跨平台性 B.Java 是一种面向对象的语言 C.Java 类可以多继承 D.Java 程序具有可移植性 2、Java 应用程序中 main 方法的返回类型是什么?( D ) A、int 3、Java 编译器将 Java 程序转换为字节码并保存在( B )文件中。 C、double D、void B、float C、float B、double D、double C.fieldname A. .java B. .class C. .obj D. .exe 4、0.99 的数据类型是( B ) A、float 5、下面哪个不是 java 语言中的关键字?( B ) A.long B.sizeof C.instanceof D.const 6、以下哪项标识符是不合法的。( D ) D.3_a A.super B.$1 7、关于 Java 中数据类型叙述正确的是( B ) A、整型数据在不同平台下长度不同 B.boolean 类型数据只有 2 个值,true 和 false C.数组属于简单数据类型 D.String 属于 Java 基本数据类型 8、在 Java 语言中,以下哪个数组声明是不正确的( D ) A、int[ ] s1, s2; B、int[ ] a = new int[5]; C、int n=5; int[ ] a = new int[n] ; D、int a[5]; 9、下列数据类型中,占用字节数最小的是( C ) A、short B、int C、byte D、long 10、以下二维数组声明合法的是( C ) A.char[2][3] ch = new char[ ][ ] C.char[ ][ ] ch = new char[2][3] 11、已知 int i= Integer.MIN_VALUE;则(i-1)+(i-1L)= ( C ) B.char[2][ ] ch = new char[ ][3] D.char[ ][ ] ch = new [2]char[3] A. 0 12、下面程序段执行后 b 的值是( B )。 C. -2 B. 2 D. -1 Integer a =new Integer(9); boolean b = a instanceof Object; A. 9 B.true C.1 D.false 13、在命令行键入:java Test aaa bb c 回车后输出的结果是 ( A )。 public class Test { public static void main(String args[]) { int k1=args.length; int k2=args[1].length(); System.out.print(k1+" "+k2); } } A. 3 2 B. 1 2 C. 1 3 D. 3 3 14、A 类中定义如下方法: public static void change(String str){ str+="xyz"; } 则以下代码块输出结果是:( A ) 值传递! String str="abc"; A.change(str); System.out.println(str); A. abc B. xyz C. abcxyz D. xyzabc 15、定义 String s="hello world"; 以下操作不合法的是( B ) A、int i=s.length(); B、 s>>>=2; C、String ts=s.trim(); D、char ch=s.charAt(0); 15、String 类的 indexOf()方法如未能找到所指定的子字符串,那么其返回值为( B )
C、0 B、-1 D、true A、false 16、当用 private 修饰的成员变量时,以下选项正确的是( C ) A.可以被三种类访问:该类自身、与它在同一包中的其他类、在其他包中的该类的子类 B.可以被两种类访问:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被在同一个包中的类访问 17、以下 Java 描述正确的是( D ) A、一个包中不能包含多个类 B、一个源文件中,可以有多个 public 类 C、同一个包的类不可以相互访问 D、系统会为源文件创建默认的包 18、在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同。这种面向对 象程序的特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、继承 19、Java 的访问修饰符具有不同的访问权限,按从小到大排序正确是( C ) A. private
B、一个类不可实现多个接口 D、实现一个接口必须实现接口的所有方法 25、下列有关接口的说法,正确的是( D ) A、接口与抽象类是相同的概念 C、接口之间不能有继承关系 26、以下哪个接口的定义是正确的( D ) 注:A1、A2 为已定义的接口 A、 interface B { void print() { } ;} B、 abstract interface B { void print() ;} C、 interface B extends A1 { int x; } D、 interface B extends A1,A2{ } 27、B 是一个抽象类,C 是 B 的非抽象子类,下列创建对象 x 的语句中正确的是( B ) A. B x= new B( ); B. B x= new C( ); C. C x= new B( ); D. C x= C( ); 28、程序输出结果( A ) public class test { public static int f( final int i ) { return ++i; } public static void main(String[] args) { System.out.print(f(2)); } D、3 B、2 C、0 B.用来调用父类中被重写的方法 D.以上都是 } A、编译出错 29、关键字 super 的作用是( D ) A.用来访问父类被隐藏的非私有成员变量 C.用来调用父类的构造函数 30、有关 JFrame 描述不正确的是( D ) A.JFrame 是一个顶层容器 B.JFrame 支持多线程 C.JFrame 默认布局是 BorderLayout D.JFrame 中不能包含其他容器 31、Swing 的选项面板是( A )。 A.JTabbedPane 32、关于异常处理,以下说法错误的是( D ) A.可以使用 throw 语句抛出异常 B.程序可以使用 try、catch、finally 语句捕获异常 C.无论 try 块中是否发生异常,finally 标识的代码块都会被执行 D.try 语句后只能有一个 catch 语句 33、Java 异常处理用法中,错误的是( C ) A、try...catch B、try...finally C、catch...finally D、try...catch...finally 34、所有的异常类皆继承哪一个类?( C ) A.java.io.Exception B.java.lang.Throwable C.java.lang.Exception D.java.lang.Error 35、int x= Integer.parseInt("12.34");会导致的异常是( D ) B.JLayeredPane C.JScrollPane D.JSplitPane A. NullPointerException B. ClassCastException C. ArithmeticException D. NumberFormatException 36、下列字节输入流中,( B )不能够直接被实例化。 A、FileInputStream B、FilterInputStream C、PipedInputStream D、ObjectInputStream 37、在以下集合框架中,插入性能最高的是( B ) A.ArrayList 38、以下哪个选项不是继承自 Collection 接口( C ) A.List C.Map 39、下面代码错误定义的是( A ) B.LinkedList D.Array B.Set C.List D.Collection class Test { // A
private int i=1; // B Test(){ }; // C abstract void bb(); // D public void cc() { i++; } } 40、下列程序段执行后的结果是( B ) String s = new String("abcdefg"); for (int i=s.length()-1; i>=0; i-=2){ System.out.print(s.charAt(i)); } A.aceg B. geca C.defg D.abcd 41、下面程序输出的结果是 ( A ) String s1=new String("abc"); String s2=new String("abc"); boolean b1=s1.equals(s2); boolean b2=(s1==s2); System.out.print(b1+" "+b2); A.true false B.false true C.true true D.false false 42、有以下程序片段,下列哪个选项不能插入到行 1。( A ) 1. 2.public class A{ 3. //do sth C、class B{ } D、import java.util.*; B、package mine; public int max( int a, int b) { } 4.} A、public class B{ } 43、类 ABC 定义如下: 1.public class ABC{ 2. 3. 4.} 将以下哪个方法插入行 3 是不合法的。( B ) A、public float max(float a, float b, float c){ } B、public int max (int c, int d){ } C、public float max(float a, float b){ } D、private int max(int a, int b, int c){ } 44、将以下哪个方法的定义插入第 6 行后,不会引发编译错误?( B ) 1. class Super{ 2. public void a(){ } 3. } 4. 5. public class Sub extends Super{ 6. 7.} A.public int a(){return 1;} B.public int a(int x){ return x; } C.void a(){ } D.public int a(float x){return x;} 45、下面描述不能使程序通过编译的是( D ) 1. class Super{ private int a; protected Super(int a){this.a = a;} 2. 3. 4. }
11. class Sub extends Super{ 12. public Sub(int a){ super(a);} 13. public Sub(){this.a = 5;} 14. } A. 删除第 13 行 B. 将第 13 行改为:public Sub(){ this(5);} C. 将第 13 行改为:public Sub(){ super(5);} D. 将第 13 行改为:public Sub(){ } 46、下列软件包中,不需要使用 import 指令就可直接使用的是( A )。 A、java.lang B、java.text C、java.sql D、java.util 47、下面的 Inner 类编译后生成的 class 文件名为( B ) public class Outer { public class Inner { // } } A. Inner.class B. Outer$Inner.class C. Outer.Inner.class D. Outer.class 48、下列关于 Java 线程的说法正确的是( A ) A、每一个 Java 线程可以看成由代码、一个虚拟的 CPU 以及数据三部分组成 B、创建线程必须继承 Thread 类 C、Thread 类属于 java.util 包 D、使用 new Thread(new XXX()).run();方法启动一个线程 49、解决多线程并发问题,使用( C )修饰代码块。 A、final B、supper C、synchronied D、static 50、如下代码创建一个新线程并启动线程,( C )可以保证正确创建 target 对象。 public static void main(String[] args) { Runnable target=new MyRunnable( ); Thread t=new Thread(target); } A、public class MyRunnable extends Runnable { public void run( ) { } } B、public class MyRunnable extends Runnable { void run( ) { } } C、public class MyRunnable implements Runnable { public void run( ) { } } D、public class MyRunnable implements Runnable { void run( ) { } } 51、当线程调用 start( )后,其所处状态为( C ) A、阻塞状态 B、运行状态 C、就绪状态 D、新建状态 52、如果采用继承 Thread 类的方式创建线程,则需要重写 Thread 类的( D )方法 A.start 53、以下说法中关于线程通信的说法错误的是( D ) A、可以调用 wait()、notify()、notifyAll()三个方法实现线程通信 C.interrupt B.stop D.run
D.图像流 C.字节流 B.对象流 B.java.io.Serializable D.java.lang.Comparable B、wait()、notify()、notifyAll()必须在 synchronized 方法或者代码块中使用 C、wait()有多个重载的方法,可以指定等待的时间 D、wait()、notify()、notifyAll()是 Object 类提供的方法,子类可以重写 54、关于 sleep()和 wait(),以下哪个选项描述错误的是( D ) A.sleep 是线程类的方法,wait 是 Object 类的方法 B.sleep 不释放对象锁,wait 放弃对象锁 C.sleep 暂停线程、但监控状态仍然保持,结束后会自动恢复 D.wait 后进入等待锁定池,只有针对此对象发出 notify 方法后获得对象锁进入运行状态 55、要使对象具有序列化能力,则该类应实现以下哪个接口( B ) A.java.lang.CharSequence C.java.lang.Cloneable 56、下列( D )是 Java 语言中所定义的字节输入流。 A、OutputStream B、Reader C、Writer D、InputStream 57、Java 中的抽象类 Reader 和 Writer 所处理的流是( A )。 A.字符流 58、下列选项中, ( B )不含于包 java.sql。 A、Statement B、Class C、Connection D、ResultSet 59、下面的描述错误的是 ( B ) A、Statement 的 executeQuery()方法会返回一个结果集。 B、Statement 的 executeUpdate()方法会返回是否更新成功的 boolean 值。 C、ResultSet 中的 getString()可以获得一个对应于数据库中 char 类型的值。 D、ResultSet 中的 next()方法会使结果集中的下一行成为当前行。 60、下面( D )方法可以用来加载 JDBC 驱动程序。 A、java.sql.DriverManager 的 getDriver 方法 B、java.sql.DriverManager 的 getConnection 方法 C、java.sql.Statement 的 executeUpdate 方法 D、java.lang.Class 的 forName 方法 61、JDBC 执行完 SQL 语句 SELECT name,address FROM employee,能得到 rs 的第一列数据的选项是( B ) A.rs.getString(0); 62、使用以下哪个类可实现不可靠的数据报传输 ( D ) A.Applet 63、关于 Socket 通信编程,以下选项错误的是( D ) A.服务器端通过 new ServerSocket()创建 TCP 连接对象 B.服务器端通过 TCP 连接对象调用 accept()方法创建通信的 Socket 对象 C.客户端通过 new Socket()方法创建通信的 Socket 对象 D.客户端通过 new ServerSocket()创建 TCP 连接对象 64、在 Java 网络编程中,使用客户端套接字 Socket 创建对象时,需要指定( A ) A. 服务器主机名称和端口 C. 服务器名称和文件 65、ServerSocket 的监听方法 accept( )方法的返回值类型是( A ) B.rs.getString("name"); C.rs.getString(name); D.rs.getString("0"); B. 服务器端口和文件 D. 服务器地址和文件 D.DatagramSocket C.InetAddress B.ServerSocket A. Socket B. Void C. Object D. DatagramSocket 二、填空题 1、面向对象程序设计的三个特征是__封装__、__继承__和__多态__。 2、Java 的 char 类型占用的内存字节数为__2__,double 类型占用的内存字节数为__8__。 3、Java 布尔类型的常量有两种,它们是__true__和__false___,占用的内存字节数为__1__。 4、子类对父类继承来的方法重新定义称为__覆盖__,同一个类中多个方法具有相同的方法名而参数列表不同,称为 方法的____重载______。 5、this 指__当前对象__,super 指__父对象__。
6、接口声明中只能有__常量____和__抽象方法____。 7、带有__final___修饰符的类称为最终类,这种类将不能被继承。__静态__代码块只会初始化一次,且在类被第一 次装载时。 8、Java 语言中,__Object___是所有对象的根类。被声明为___static___的内部类自动地成为顶层类。 9、可以调用 String 类的___ valueOf ()__方法将数值转化为字符串。 10、创建线程类时,必须重写的方法是__run()__。线程通过调用__sleep()__方法可以休眠一段时间,然后恢复运行。 11、编写一个线程通常通过继承__Thread 类__和实现__Runnable 接口__来实现。 12、在执行 Java 线程的程序中,程序通过调用__start()__启动线程,线程启动后运行的是__run()__方法里的代码。 13、处于运行状态的线程在某些情况下,如执行了 sleep()方法,或等待 I/O 设备等资源,将让出 CPU 并暂时停止自 己的运行,进入____阻塞_____状态。 14、在线程通信中,调用__wait()__可以使当前线程处于等待状态,而为了唤醒一个等待的线程,需要调用的方法是 ____notify()____或____notifyAll()____。 15、上题的三个方法都是____Object____类提供的 public 方法,所以任何类都具有这三个方法。 16、线程中____notifyAll_____的作用是,唤醒 wait 队列中的所有的线程并把它们移入锁申请队。 17、获取 Map 集合大小的方法是__size()__。清空 List 集合的方法是__clear()__。 18 、 Java 集 合 中 一 种 以 Key-Value 方 式 存 取 数 据 的 接 口 是 ___Map_____ , 它 提 供 的 ___keySet()___ 方 法 和 ___entrySet()___常用于集合遍历操作。 19、List 接口提供两种遍历器,分别是__Iterator__和__ListIterator__。 20、Collection 接口的特点是元素是___无序可重复___,List 接口的特点是元素是___有序可重复___,Set 接口的特 点是元素是___无序不可重复___。 21、Java 集合框架的顶层接口是____Collection____和____Map____。 22、___Comparable___是在集合内部实现的排序,___Comparator____是在集合外部实现的排序。 23、Java 的输入输出流包括字节流、___字符流___、___文件流___、对象流以及多线程之间通信的管道流。字节流 和字符流的区别在于每次读写的____字节_____数不同。 24、凡是从外部设备流向内存的数据流,称之为___输入流___;反之,称之为___输出流___。 25、所有字节输入流都从___InputStream___类继承,所有字节输出流都从___OutputStream___类继承。 26、与用于读写字节流的 InputStream 类和 OutputStream 类相对应,Java 还提供了用于读写 Unicode 字符的字符流 ___Reader___类和___Writer___类。 27、File 类也虽然在 java.io 包中,但它不是 InputStream 或者 OutputStream 的子类,因为它不负责输入输出,而专 门用来管理___文件___和___目录___。 28、_____BorderLayout______布局管理器把容器内的空间划分为东、西、南、北、中五个区域。 29、___FlowLayout___布局管理器将容器中的组件按照加入的先后顺序从左至右排列。 30、___GroupLayout___布局管理器将组件按层次分组,以决定它们在 Container 中的位置。 31、可使用____ButtonGroup____类将若干个单选按钮归组。 32、___System.out___是一个 PrintStream 对象,它指向运行 Java 应用程序的终端窗口。___System.in___是一个 InputStream 对象,它指向用户的键盘。 33、Socket 是由____IP 地址____和____端口号____组成。 34、JDBC 执行一个 Select 语句后的结果集是一个___ResultSet___类型,它是 Statement 对象的___executeQuery()___ 方法得到的。 三、程序填空 1、以下程序片段打印字符串数组中的元素,并捕获数组下标越界异常。 int i = 0; String course[] = { "Java", "Java EE", "Android" }; while (i < 4) { ____try____ { System.out.println( course[i] ); } catch (____ArrayIndexOutOfBoundsException e _____) { System.out.println("数组下标越界啰!");
e.printStackTrace(); } i++; } 2、下列代码片段用于输出数组 x 的最大值和最小值。 int[] x={125,21,5,168,98}; int max=x[0]; int min=x[0]; for(int i=1;i max___ ) max =x[i]; if( ___x[i]< min___ ) min =x[i]; } System.out.println(max); System.out.println(min); 3、已知 SonClass 是 FatherClass 的一个子类,下面代码片段用于恢复子类对象的功能。 FatherClass fa = new SonClass(); if( fa _____instanceof_____ SonClass ) { SonClass s=(_____SonClass_____) fa; s.sonMethod(); } 4、程序填空 public class A { public int a; public A(int a){ ________ this.a=a ____________; } } public class B extends A { public int b; public B(int x,int y){ ______super(x)______________; b=y; } public void sum(){ System.out.print(a+b); } } 5、两种方式遍历 intArr 数据组 public class test { public static void main(String[] args) { int [ ] a = { 1, 2, 3, 4, 5 }; for( _____ int e:a_____ ) { System.out.println(e); } for( int i=0; i<____a.length___; i++) { System.out.println(a[i]); } } }
分享到:
收藏