T
1-2 InputStream类和OutputStream类是所有二进制I/O的根类。 (1分)T
1-3 Calendar类用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特定部分,比如年、月、日、时、分和秒等。(1分)T
1-4 Math.round(double d)方法的作用是,将一个数四舍五入,并返回一个double数。(1分)F
说明: round是四舍五入,注意负数5是舍的,例如:Math.round(1.5)值是2,Math.round(-1.5)值是-1; floor就是直接去掉小数保留整数,即如果参数是正数则小数部分全舍,参数是负数则小数部分全入。 例如:Math.floor(2.6)的值是2,Math.floor(-2.1)的值是-3
1-5 StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。(1分)T
T
1-7 java语言中不用区分字母的大写小写。(1分)F
1-8 数组也是对象。(1分)T
1-9 Java语言中,变量名可以用汉字表示。(1分)T
1-10 一个数组可以存放不同类型的数值。(1分)F
F
1-12 Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。(1分)T
1-13 Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。(1分)T
D
2-2 如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()。(1分) A.FileInputStream B.FileOutputStream C.DataOutputStream D.FileWriterA
2-3 在Java中,以下代码( )正确地创建了一个InputStreamReader对象。(2分) A.InuptStreamReader(new FileReader(“1.dat”)); B.InuptStreamReader(new FileInputStream(“1.dat”)); C.InuptStreamReader(new BufferReader(“1.dat”)); D.InuptStreamReader (“1.dat”);B
2-4 下面哪个流类属于面向字符的输入流( ) 。(1分) A.BufferedWriter B.FileInputStream C.ObjectInputStream D.InputStreamReaderD
2-5 要创建一个新目录,可以用下面( )类实现。(1分) A.FileInputStream B.FileOutputStream C.RandomAccessFile D.FileD
2-6 在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。。(1分) A.FileInputStream B.FileReader C.File D.FileWriterC
2-7 list是一个ArrayList的对象,哪个选项的代码填写到//todo delete处, 可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?( ) Iterator it = list.iterator(); int index = 0; while (it.hasNext()){ Object obj = it.next(); if (needDelete(obj)) { //needDelete返回boolean,决定是否要删除 //todo delete } index ++; } (1分) A.list.remove(obj); B.list.remove(index); C.list.remove(it.next()); D.it.remove();D
2-8 Java的集合框架中重要的接口java.util.Collection定义了许多方法。 选项中哪个方法不是Collection接口所定义的?( )(1分) A.int size() B.boolean containsAll(Collection c) C.compareTo(Object obj) D.boolean remove(Object obj)C
2-9 下面哪个Map是排序的?(1分) A.TreeMap B.HashMap C.Hashtable D.WeakHashMap E.LinkedHashMapA
2-10 在Java中,关于HashMap类的描述,以下选项错误的是(1分) A.HashMap使用键/值得形式保存数据 B.HashMap 能够保证其中元素的顺序 C.HashMap允许将null用作键 D.HashMap允许将null用作值B
D
2-12 如下程序输出( ) public class Test { public static void main(String[] args) { String s = "Java"; StringBuilder buffer = new StringBuilder(s); change(s); System.out.println(s); } private static void change(String s) { s = s + " and HTML"; } }(1分) A.Java B.Java and HTML C.and HTML D.什么都不显示A 说明: 1:代码中有没有StringBuilder buffer = new StringBuilder(s);这条语句,输出结果都一样 2:字符串当作参数传入一个方法中,只在该方法中进行改变,若要在main方法中发生改变,这需要方法有返回值
2-13 以下代码输出( )。 public static void main(String[] args) { String[] tokens = "Welcome to Java".split("o"); for (int i = 0; i < tokens.length; i++) { System.out.print(tokens[i] + " "); } }(1分) A.Welcome to Java B.Welc me to Java C.Welc me t Java D.Welcome t JavaC
2-14 以下有关Calendar类相关描述,错误的是()(1分) A. Calendar类是一个抽象类,不可以被实例化 B. 添加和修改时间的功能就可以通过Calendar类中的add()和set()方法来实现 C. 在使用Calendar.MONTH字段时,月份的起始值是从从1开始 D. Calendar.Date表示的是天数,当天数累加到当月的最大值时,如果继续再累加一次,就会从1开始计数,同时月份值会加1C
2-15 下列选项中,对Math.random()方法描述正确的是( )(1分) A. 返回一个不确定的整数 B. 返回0或是1 C. 返回一个随机的double类型数,该数大于等于0.0小于1.0 D. 返回一个随机的int类型数,该数大于等于0.0小于1.0C
2-16 若double val = Math.ceil(-11.9);,则val的值是( )(1分) A. 11.9 B. -11.0 C. -11.5 D. -12.0B
说明: math.ceil(x)返回大于等于参数x的最小整数,即对浮点数向上取整. math.floor(x)返回小于参数x的最大整数,即对浮点数向下取整
2-17 StringBuffer类的append()方法的返回值类型是()(1分) A. String B. void C. StringBuilder D. StringBufferD
2-18 阅读下面一段代码,代码的输出结果是() Integer in1 = new Integer(10); Integer in2 = new Integer(10); Integer in3 = 10; Integer in4 = 10; System.out.print(in1 == in2); System.out.print(in1 == in3); System.out.print(in3 == in4);(1分) A. falsefalsetrue B. truetruetrue C. falsefalsefalse D. falsetruefalseA
2-19 下列选项中,关于包装类描述错误的是()(1分) A. 包装类的作用之一就是将基本类型包装成引用类型 B. 包装类它可以完成在基本类型与String类型之间的转换 C. 包装类一共有八个,对应的基本数据类型 D. 我们可以继承包装类,以完成自定义包装D
2-20 阅读下面的代码,输出结果是() public static void main(String[] args) { Random random1 = new Random(10); Random random2 = new Random(10); for(int i=0;i<5;i++){ System.out.print(random1.nextInt(5)); } for(int i=0;i<5;i++){ System.out.print(random2.nextInt(5)); } }(1分) A.3030130301 B.5048132680 C.3268023579 D.1111111111A
说明: 对于种子相同的Random对象,生成的随机数序列是一样的
B,此题出错,默认选B
2-22 下列不可作为java语言标识符的是()。(1分) A.a2 B.$2 C._2 D.22D
2-23 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是( ).(1分) A.a1.java B.a1.class C.a1 D.都对D
2-24 以下程序段的输出结果是 class Test { public static void main(String[] args) { System.out.println(4 + 5 + "" + 3 + 6); } }(1分) A.99 B.4536 C.936 D.459C
2-25 设有变量定义: short a = 300; 则以下哪一条语句会导致编译错误?(2分) A.a += 3; B.a = (short)a + 3; C.a = (byte)(a + 3); D.a = (short)(a * 100);B 说明: 因为(short)a得到的是一个short类型,而3是int类型,所以会报错
2-26 以下二维数组的定义正确的是( )(1分) A.int a[3][2]={{1,2},{1,3},{2,3}} B.int a[][]=new int[3][] C.int[][] a=new int[][3] D.int[][] a=new int[][]A
2-27 在JAVA中,给定代码片段如下所示,则编译运行后,输出结果是()。 for (int i = 0; i < 10; i++) { if (i == 10 - i) { break; } if (i % 3 != 0) { continue; } System.out.print(i + " "); }(1分) A.0 B.0 3 C.0 3 6 D.0 3 6 9B
2-28 下面的方法,当输入为2的时候返回值是多少?( ) public int getValue(int i) { int result = 0; switch (i) { case 1: result = result + i; case 2: result = result + i * 2; case 3: result = result + i * 3; } return result; }(1分) A.0 B.2 C.4 D.10D
2-29 下面代码运行结果显示( )。 double temperature = 50; if (temperature >= 100) System.out.println("too hot"); else if (temperature <= 40) System.out.println("too cold"); else System.out.println("just right");(1分) A.too hot B.too cold C.just right D.too hot too cold just rightC
2-30 下列语句序列执行后,k 的值是( ) int x=6, y=10, k=5; switch( x%y ){ case 0: k=x*y; case 6: k=x/y; case 12: k=x-y; default: k=x*y-x; }(1分) A.60 B.5 C.0 D.54D 说明: 没有遇到break就往下执行,直到执行完default
C
2-32 你怎样强制对一个对象立即进行垃圾收集?(1分) A.调用 System.gc() B.调用System.gc(), 同时传递要进行垃圾收集对象的引用 C.调用 Runtime.gc() D.给这个对象的所有引用设置一个新的值(例如null) E.垃圾收集是不能被强迫立即执行E
2-33 下面关于Java的引用的说法正确的是__。(2分) A.引用实际上就是指针 B.引用本身是原始类型(primitive type) C.引用就是对象本身 D.一个对象只能被一个引用所指示A
2-34 关于以下程序代码的说明正确的是( ) 。 1.class HasStatic{ 2. private static int x=100; 3. public static void main(String[ ] args){ 4. HasStatic hs1=new HasStatic( ); 5. hs1.x++; 6. HasStatic hs2=new HasStatic( ); 7. hs2.x++; 8. hs1=new HasStatic( ); 9. hs1.x++; 10. HasStatic.x--; 11. System.out.println(“x=”+x); 12. } 13. }(1分) A.5行不能通过编译,因为引用了私有静态变量 B.10行不能通过编译,因为x是私有静态变量 C.程序通过编译,输出结果为:x=103 D.程序通过编译,输出结果为:x=102D
2-35 以下关于构造函数的描述错误的是( )。(1分) A.构造函数的返回类型只能是void型。 B.构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C.构造函数的主要作用是完成对类的对象的初始化工作。 D.一般在创建新对象时,系统会自动调用构造函数。A 说明: 构造函数没有返回值
2-36 下列哪些语句关于Java内存回收的说明是正确的? ( )(1分) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象B
2-37 若需要定义一个类属性或类方法,应使用哪种修饰符?( )(1分) A.static B.package C.private D.publicA
2-38 有以下程序片段,下列哪个选项不能插入到行1。( ) 1) 2) public class Interesting{ 3) //do sth 4) }(1分) A.import java.awt.*; B.package mypackage; C.class OtherClass{ } D.public class MyClass{ }D
2-39 下面哪个函数是public void aMethod(){...}的重载函数?( )(1分) A.void aMethod( ){...} B.public int aMethod(){...} C.public void aMethod ( ){...} D.public int aMethod ( int m){...}D
2-40 假设类A有如下定义,且a是A类的一个实例,则必定错误的选项是( )。 class A { int i; static String s; void method1() { } static void method2() { } }(1分) A.System.out.println(a.i); B.a.method1(); C.A.method1(); D.A.method2() ;C 思考: 类中的实例方法可以用类名直接调用吗? 答: 不可以,实例方法,需要先创建实例,然后才可以调用实例的方法。 在类中可以使用static修饰符修饰类的方法,这样的方法可以不用new类,就可以直接使用类的方法。
D
2-42 下列哪个类的声明是正确的?( )(1分) A.abstract final class HI{} B.abstract private move(){} C.protected private number; D.public abstract class Car{}D
2-43 关于被私有访问控制符private修饰的成员变量,以下说法正确的是( )(1分) A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问C
2-44 下列方法头中哪一个不与其他方法形成重载(overload)关系?( )(1分) A.void mmm() B.void mmm(int i) C.void mmm(String s) D.int mm()D
2-45 在Java中用什么关键字修饰的方法可以直接通过类名来调用?( )(1分) A.static B.final C.private D.voidA
2-46 若在某一个类定义中定义有如下的方法:abstract void performDial( );该方法属于( )。(1分) A.接口方法 B.最终方法 C.抽象方法 D.空方法C
2-47 在Java中,"456"属于( )类的对象。(1分) A.int B.String C.Integer D.NumberB
2-48 声明成员变量时,如果不使用任何访问控制符(public, protected, private), 则以下哪种类型的类不能对该成员进行直接访问 ( ) .(1分) A.同一类 B.同一包中的子类 C.同一包中的非子类 D.不同包中的子类D
2-49 选项中哪一行代码可以替换题目中//add code here而不产生编译错误?( ) public abstract class MyClass { public int constInt = 5; //add code here public void method() { } }(1分) A.public abstract void method(int a); B.value = value + 5; C.public int method(); D.public abstract void anotherMethod() {}A 说明: D错误,因为抽象方法不能有方法体
2-50 下面哪个选项中的代码没有定义内部类,或者错误的定义了内部类? ( )(2分) A. public Class Line { int length; Class Point { //内部类代码 } } B. public Class Line { public Point getPoint() { return new Point(){ //内部类代码 }; } } C. public Class Line { //外部类代码 } Class Point { //内部类代码 } D. public Class Line { public int calcLength() { Class Point { //内部类代码 } } }C
D
2-52 类的实例方法表示的是什么?( )(1分) A.父类对象的行为 B.类的属性 C.类对象的行为 D.类的行为C
2-53 下面关于缺省构造方法的描述中正确的是( )。(1分) A.当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法 B.缺省构造方法可以初始化其他方法中定义的变量 C.Java编译器会为所有的类创建缺省构造方法。 D.如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法A
2-54 对于类与对象的关系,以下说法错误的是( )。(1分) A.类是对象的类型 B.对象由类来创建 C.类是同类对象的抽象 D.对象是创建类的模板D
2-55 下述哪条关于构造方法的说法,不符合Java语法的规定( )。(1分) A.每个类至少有一个构造方法 B.构造方法必须与类同名 C.构造方法无返回值,其返回值类型必须写为void D.构造方法可以是private的C 说明: Java中如果将一个方法声明为私有的,即通过private关键字来修饰,此时也就意味着该方法只能由这个类本身来调用。构造方法,类似于常规的方法,同样可以被public、protected、private这三个关键词修饰,但是构造方法不能有返回值。我们人为地将构造方法声明为private,这样其他的类就不能直接调用该类生成新的对象,也就避免了同一个类被反复创建的情况,这种情况,该类只有一个对象实例。
2-56 关于类中成员变量的作用范围,下述说法中正确的是( )。(1分) A.只有用public修饰的变量才能在所有方法中使用 B.用private修饰的成员变量可以在main方法中直接使用 C.类中所有成员变量在所有成员方法中有效 D.用static修饰的成员变量只能在用static修饰的方法中使用C
2-57 方法体内定义的变量称局部变量,下述关于局部变量的说法中错误的是( )。(1分) A.局部变量仅在所定义的代码块内(花括号对内)有效 B.局部变量不能加修饰词修饰 C.局部变量不能与类中的成员变量同名 D.局部变量未经赋值不能使用C
2-58 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。(2分) A.static void method( ) B.public void method( ) C.final void method( ) D.abstract void method( )A
2-59 以下代码的输出结果为( )。 public class Pass{ static int j = 20; public void amethod(int x){ x = x*2; j = j*2; } public static void main(String args[]){ int i = 10; Pass p = new Pass(); amethod(i); System.out.println(i+" and "+j); } }(1分) A.错误:方法参数与变量不匹配 B.20 and 40 C.10 and 40 D.10 and 20C
2-60※ 以下关于Java的局部内部类的说法错误的是( )(2分) A.局部内部类只能在当前类中使用 B.局部内部类不能包含静态成员 C.局部内部类可以访问外部类的所有成员 D.在局部内部类中定义的内部类不能被private修饰符修饰A
A 说明: 有两处编译错误: 1、不能对类型Ref中的非静态方法amethod(Ref)进行静态引用 2、multi方法对 i 不能识别
2-62 以下程序段输出结果的是( ) public class Test { public static void main(String args[]){ String str="ABCDE"; str.substring(3); str.concat("XYZ"); System.out.print(str); } }(1分) A.DE B.DEXYZ C.ABCDE D.CDEXYZC 说明: 上面对字符串的操作对原字符串没发生改变
2-63 要产生[20,999]之间的随机整数使用哪个表达式? ( )(1分) A.(int)(20+Math.random()*97) B.20+(int)(Math.random()*980) C.(int)Math.random()*999 D.20+(int)Math.random()*980B
2-64 下列关于System类的叙述中,错误的是( )。(1分) A.System类是一个final类 B.System类不能实例化 C.System类中没有定义属性 D.System类主要提供了系统环境参数的访问C
2-65 在Java中,负责对字节代码解释执行的是 ( )(2分) A.应用服务器 B.虚拟机 C.垃圾回收器 D.编译器B java中负责对字节代码解释执行的是虚拟机,虚拟机将得到的字节代码进行编码运行
2-66 有一个类A,以下为其构造方法的声明,其中正确的是()。(3分) A.void A(int x){...} B.A(int x){...} C.a(int x){...} D.void a(int x){...}B
2-67 对于构造方法,下列叙述不正确的是( )。(1分) A.构造方法的方法名必须与类名相同 B.构造方法的返回类型只能是void型 C.构造方法可以对该类对象的实例变量进行初始化工作 D.一般在创建新对象时,系统会自动调用构造方法B
2-68 下面说法正确的是()(1分) A.如果源代码中有package语句,则该语句必须放在代码的第一行 B.如果源代码中有import语句,则该语句必须放在在代码的第一行 C.如果源代码中有main方法,则该方法必须被放在代码的第一行 D.如果某文件的源代码中定义了一个public的接口,接口名和文件名可以不同A
2-69 下面代码的输出的结果是()。 class Person { static String country="A城市" ; } public class Test{ public static void main(String args[]) { Person p1=new Person(); Person p2=new Person(); p1.country="B城市"; p2.country="C城市"; System.out.println(p1.country); System.out.println(p2.country); } }(1分) A.B城市 C城市 B.B城市 B城市 C.A城市 C城市 D.C城市 C城市D 说明: 全局变量,看最后变化后的值
2-70 一个*.java文件中可以包含多少个public类?(1分) A.最多1个 B.最少1个 C.只能是0个 D.不限制A
A
2-72 以下对封装的描述正确的是(1分) A.只能对一个类中的方法进行封装,不能对属性进行封装 B.如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用 C.封装的意义不大,因此在编码时尽量不要使用 D.封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性D
2-73 访问修饰符作用范围由大到小是(1分) A.private-default-protected-public B.public-default-protected-private C.private-protected-default-public D.public-protected-default-privateD
2-74 以下()不是Object类的方法(1分) A.clone() B.finalize() C.hasNext() D.toString()C
2-75 以下描述正确的有(1分) A.方法的重写应用在一个类的内部 B.方法的重载与返回值类型无关 C.构造方法不能重载 D.构造方法可以重写B 构造方法不能重写!构造方法也不能被继承!构造方法可以重载! 方法的重载与返回值类型无关,但是方法的重写与返回值类型有关
2-76 在Java中,下面对于构造函数的描述正确的是。(1分) A.类必须显示定义构造函数 B.构造函数的返回类型是void C.一个类可以定义多个构造函数 D.构造函数和类有相同的名称,并且不能带任何参数C
2-77 已知类的继承关系如下: class Employee; class Manager extends Employee; class Director extends Employee; 则以下语句哪个能通过编译? ( )。(1分) A.Employee e = new Manager(); B.Manager m = new Director(); C.Director d = new Manager(); D.Director d = new Employee();A
2-78※ 以下说法错误的是( )(1分) A.静态方法可以直接访问本类的静态变量和静态方法 B.静态方法可以直接访问本类的非静态变量和非静态发方法 C.非静态方法可以直接访问本类的静态变量和静态方法 D.非静态方法可以直接访问本类的非静态变量和非静态方法B
2-79 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同传回的值也可以不相同,这种面相对象程序特性称为( )。(1分) A.隐藏 B.覆盖 C.重载 D.Java不支持此特性C
2-80 分析如下代码。 public class Test { public static void main(String[] args) { double radius; final double PI= 3.15169; double area = radius * radius * PI; System.out.println("Area is " + area); } } 如下说法哪句是正确的?(1分) A.程序编译错误,因为变量radius没有初始化。 B.程序编译错误,因为常量PI定义在方法中。 C.程序没有编译错误但运行时会出错,因为radius没有初始化。 D.程序编译和运行正确。A
B
2-82 x 在main方法中第二条println语句的输出是什么? public class Foo { int i; static int s; public static void main(String[] args) { Foo f1 = new Foo(); System.out.println("f1.i is " + f1.i + " f1.s is " + f1.s); Foo f2 = new Foo(); System.out.println("f2.i is " + f2.i + " f2.s is " + f2.s); Foo f3 = new Foo(); System.out.println("f3.i is " + f3.i + " f3.s is " + f3.s); } public Foo() { i++; s++; } }(1分) A.f2.i is 1 f2.s is 1 B.f2.i is 1 f2.s is 2 C.f2.i is 2 f2.s is 2 D.f2.i is 2 f2.s is 1B
2-83 要使类中的某个成员变量只能被它自身访问到,该变量可用什么修饰符修饰?( )(1分) A.protected B.public C.private D.应不加修饰符C
2-84 指出下列程序的运行结果( ) public class ObParm{ static int j=20; public static void main(String argv[]){ int i=10; ObParm p=new ObParm(); p.amethod(i); System.out.println(i); System.out.println(j); } public void amethod(int x){ x=x*2; j=j*2; } }(1分) A.10 40 B.20 40 C.10 20 D.20 20A
2-85 若在某一个类定义中定义有如下的方法: final void aFinalFunction( ),则该方法属于( )。(1分) A.本地方法 B.静态方法 C.最终方法 D.抽象方法C
2-86 将以下哪种方法插入行3是不合法的。 1.public class Test1{ 2. public float aMethod(float a,float b){ } 3. 4.}(1分) A.public float aMethod(float a, float b,float c){ } B.public float aMethod(float c,float d){ } C.public int aMethod(int a, int b){ } D.private float aMethod(int a,int b,int c){ }B
2-87 将以下哪种方法插入行6是不合法的。( ) 。 1.public class Test1 { 2. public float aMethod(float a,float b) throws 3. IOException { } 4. } 5.public class Test2 extends Test1{ 6. 7.}(1分) A.float aMethod(float a,float b){ } B.public int aMethod(int a,int b)throws Exception{ } C.public float aMethod(float p,float q){ } D.public int aMethod(int a,int b)throws IOException{ }A
2-88 类Teacher和Student是类Person的子类,下面的代码中最后一句语句的运行结果是( ). Person p; Teacher t; Student s; //p,t and s are all non-null. if(t instanceof Person) { s=(Student)t; }(1分) A.编译时正确,但运行时错误 B.将构造一个Student对象 C.表达式是错误的 D.表达式是合法的C 说明: instanceof是Java、php的一个二元操作符(运算符),和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。可以用来判断继承中的子类的实例是否为父类的实现。相当于c#中的is操作符。java中的instanceof是通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
2-89 在Java中,能实现多重继承效果的方式是( )。(1分) A.接口 B.继承 C.内部类 D.适配器A
2-90 下列选项中,用于实现接口的关键字是 ( )。(1分) A.interface B. implements C. abstract D.classB
C
2-92 下面的概念,哪个不是关于对象的多态性的体现。(1分) A.方法的重载 B.方法的继承 C.方法的覆盖 D.对象的上、下转型B
2-93 关于抽象类,下面叙述错误的是() 。(1分) A.包含抽象方法的类必须是抽象类 B.抽象方法只需要声明,不需要实现 C.抽象类可以实例化 D.抽象类中可以没有抽象方法C
2-94 在使用super 和this关键字时,以下描述正确的是(1分) A. 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B. this()和super()可以同时出现在一个构造函数中 C. super()和this()不一定要放在构造方法内第一行 D. this()和super()可以在static环境中使用,包括static方法和static语句块A
2-95 以下对继承的描述错误的是(1分) A.Java中的继承允许一个子类继承多个父类 B.Java中的继承存在着传递性 C.父类更具有通用性,子类更具体 D.当实例化子类时会递归调用父类中的构造方法A
2-96 以下对接口描述错误的有(1分) A.接口没有提供构造方法 B.接口中的方法默认使用public、abstract修饰 C.接口中的属性默认使用public、static、final修饰 D.接口不允许多继承D
2-97 以下代码,描述正确的有 interface IDemo{ public static final String name;1 void print();2 public void getInfo();3 } abstract class Person implements IDemo{4 public void print(){ } }(1分) A.第1行错误,没有给变量赋值 B.第4行错误,没有实现接口的全部方法 C.第2行错误,方法没有修饰符 D.第3行错误,没有方法的实现A
2-98 以下程序运行结果是 public class Test extends Father{ private String name="test"; public static void main(String[] args){ Test test = new Test(); System.out.println(test.getName()); } } class Father{ private String name="father"; public String getName() { return name; } }(1分) A.father B.编译出错 C.test D.运行出错,无输出A 说明: Test类中没有get方法,所以去调用其父类中已有的get方法 如果Test类中写出其get方法那么就显示结果“test”
2-99 下列选项中关于java中super关键字的说法错误的是(1分) A.super关键字是在子类对象内部指代其父类对象的引用 B.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C.子类可以通过super关键字调用父类的方法 D.子类可以通过super关键字调用父类的属性B
2-100 如下代码的输出是( )。 public class Test { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); System.out.print((o1 == o2) + " " + (o1.equals(o2))); } }(1分) A.false false B.true true C.false true D.true falseA
A
2-102 对于下列代码: class Parent { public int addValue( int a, int b) { int s; s = a+b; return s; } } class Child extends Parent { } 下述哪个方法可以加入类Child?(1分) A.int addValue( int a,int b ){// do something...} B.public void addValue (int a,int b ){// do something...} C.public int addValue( int a){// do something...} D.public int addValue( int a,int b )throws MyException {//do something...}C 说明: C选项不属于重写也不属于重载,这是子类自己的方法 当方法名和参数和父类一样的时候,已经说明这是方法的重写,然后因为重写的时候返回值类型要相同,所以这个B选项不正确 注意: 方法的重写是指两个方法的返回值、方法名、参数的类型和个数相同(子类重写父类的方法)。 方法的重写,不能发生在同类中,只能发生在子类中。
2-103 在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是( )(1分) A.public get (float x) B.int getSort(int y) C.double getSort(int x,. int y) D.void get(int x, int y)C
2-104 设类B是类C的父类,下列声明对象x1的语句中不正确的是?(1分) A.B x1 = new B( ); B.B x1=new C( ); C.C x1 = new C( ); D.C x1=new B( );D
2-105 下列哪个叙述是正确的?(1分) A.一个类最多可以实现两个接口 B.允许接口中只有一个抽象方法 C.如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法 D.如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法B
2-106 下列选项中,用于定义接口的关键字是( )。(1分) A.import B.implements C. interface D. protectedC
2-107 下面中哪个可以在Test的子类中使用:( ) class Test { protected int method (int a, int b) { return 0; } }(1分) A.int method (int a, int b) { return 0; } B.private int method (int a, int b) { return 0; } C.private int method (int a, long b) { return 0; } D.public short method (int a, int b) { return 0; }C 权限由小到大 :public > protected > 默认 > private
Collection Map 整个集合类按照存储的结构被分为单列集合和双列集合,单列集合的根接口是Collection,双列集合的根接口是Map集合。在Collection接口中主要有两个子接口,分别是List和Set。List集合的特点是元素有序、包含重复元素,Set集合的特点是元素无序、不包含重复元素。Map集合中存储的是键值映射关系,元素都是成对出现的,就像上学时的同桌一样。Map接口的主要子接口有HashMap和TreeMap。
3-2 请写出以下程序运行结果: //环境 JDK 1.5及以上 public static void main(String args[]) { Set<Integer> set=new TreeSet<Integer>(); List<Integer> list=new ArrayList<Integer>(); for (int i=-3;i<3;i++) { set.add(i); list.add(i); } for (int i=0;i<3;i++) { set.remove(i); list.remove(i); } System.out.println(set+" "+list); } 程序运行的输出结果为:[-3, -2, -1] [-2, 0, 2] 说明: remove方法用于移除Set集合中的指定对象。 ArrayList类remove用来移除指定下标下的元素
3-3 使用Iterator遍历集合时,首先需要调用( )方法判断是否存在下一个元素,若存在下一个元素,则调用( )方法取出该元素。hashNext() next()
3-4 InputStreamReader类是用于将( )转换为( )。字节流 字符流
3-5 在调用SimpleDateFormat的( )方法时,会将Date对象格式化成如模板格式的时间形式。format()
3-6 在程序中需要调用其静态方法( )来得到一个Calendar对象。getInstance()
1、String 2、String 3、listIter.hasNext() 4、listIter.next()