当前位置:文档之家› 100道Java基础测试题

100道Java基础测试题

Java基础测试题不定项选择题1、面向对象的三大特征是()A) 封装B) 继承C) 多态D) 线性2、变量命名规范说法正确的是()A) 变量由英文字母、下划线、数字、$符号组成B) 变量不能以数字作为开头C) A和a在Java中代表同一个变量D) 不同类型的变量,可以起相同的名字3、i的值为10,表达式(i++)+(i--)的值为()A) 21B) 20 C) 19 D) 184、下面哪些定义变量的语句是正确的?()A) int i = 'A'; B) float f = 1.23;C) byte b = (byte)128; D) int c[5][5] = new int[ ][ ];5、以下代码的执行结果是()int a = 1;bool ean m = a%2 = = 1;if(m = false){System.out.println("false");}else{System.out.println("true");}A) false B) true C) 编译不通过6、以下程序段中,哪个选项不能插入到第二行?()A)class Demo2 { } B) import java.util.*;C) public static void main(String args[ ]) { }D) package com; E) public class Demo2 { }7、下面有关Java循环结构的描述正确的是()A) for循环体语句中,可以包含多条语句,但要用大括号括起来B) for循环和do...while循环都是先执行循环体语句,后进行条件判断C) continue和break只能用于循环结构中D) 增强for循环遍历数组时不需要知道数组的长度,但不能实现与下标相关的操作8、switch选择语句是多分支选择语句,只能处理等值条件判断的情况。

在jdk1.7中,switch中的表达式可以是以下哪种类型()A)int B)char C)double D) float E)String F) short9、和下面while循环完成相同功能的选项是()A) for (i = 1; i <= 100; i++) {i++; sum = sum + i;}B) for (i = 0; i <= 100; i++) {i++; sum = sum + i;}C) for (i = 0; i <= 100; i+=2) {sum = sum+i;}D) for (i = 1; i <= 100; i+=2) {sum = sum+i;}10、编译运行以下程序后,输出结果是()public class TestMain {public static void main(String args[ ]){int x=4;System.out.println("value is "+ ((x>4) ? 9.9 :9));}}A) value is 9.9 B) value is 9 C) value is 9.011、在面向对象编程里,经常使用is-a来说明对象之间的继承关系。

下列对象中不具备继承关系的是?()A) 手机与小米手机B) 企业家与马云C) 编程语言与Java D) 中国与北京12、下列说法正确的是()A) Java程序可以一次编译,到处运行B) 类可以看成一类对象的模板,对象可以看成该类的一个具体实例C) 能被java.exe成功运行的java class文件必须有main( )方法D) Java致力于检查程序在编译和运行时的错误13、在Java中,关于数组描述正确是()A) 声明数组仅仅是给出了数组的名字和元素的数据类型,要想真正地使用数组还必须使用new关键字在堆内存中分配内存空间B) 存储在数组中的元素都属于同一数据类型C) 已知二维数组int [ ] [ ] array={{1,2,3},{4,5}},则array[1].length的值为3D) 创建数组后,系统会给每个数组元素一个默认值,如boolean型元素的默认值是true14、哪个修饰符能够使得某个成员变量可被它所在包访问到和它的子类访问到的是()A) public B) private C) protected D) 不加修饰符15、下面哪个可作为int add(int a, int b){return a+b;}的重载方法()A) int add(int c, int d){return c+d;}B) void add(int a, int b){System.out.println(a+b);}C) double add(double a, double b){return a+b;}D) int add(int a, int b, int c){return a+b+c;}16、System是jdk中常用的类之一。

以下说法正确的是()A) System类位于ng包中B) System类是用final修饰的,所以不能被继承C) System类中有多个重载的println方法D) in和out是System类中的两个公共静态成员变量E) System.currentTimeMillis( )返回一个long类型的值17、程序的运行结果是()A) null123 B) null C) 出现空指针异常D) 编译失败18、对于static关键字,说法正确的是()A) 可以使用static修饰内部类B) 被static关键字修饰的成员变量可以被该类所有的实例对象共享C) 静态代码块随着类的加载而加载,并且只执行一次D) 静态方法中只能通过对象调用非静态方法,而不能直接调用19、设三个整型变量 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是()A) 3B) 3.5 C) 4 D) 520、以下选项中可以使成员变量m 被函数fun( )直接访问的是()class Test {private int m;public static void fun() {System.out.println(m);}}A) 将private int m 改为protected int mB) 将private int m 改为public int mC) 将private int m 改为static int mD) 将private int m 改为int mE) 将public static void fun( ) 改为public void fun( )21、父类中有一个方法public void aa(int i) throws IOException {...},子类要重写该方法,正确的定义是()A) public void aa(int j ) {...}B) public void aa(Integer j) {...}C) public void aa(int i ) throws Exception {...}D) protected void aa( int i) {...}E) public void aa( int j) throw IOException {...}22、关于抽象类和接口,下列说法正确的是()A) 抽象类中可以没有抽象方法B) 抽象类中可以定义main方法和构造方法C) 抽象类实现接口时可以不用实现接口中的方法D) 一个类通过implement关键字实现接口23、以下关于this和super关键字的说法错误的是()A) this关键字指向当前对象自身,super关键字指向当前对象的直接父类B) this和super关键字都可以访问成员属性,成员方法和构造方法C) 在构造方法中可以使用this调用本类中其他构造方法,但必须位于首句D) 在main方法中可以存在this或super关键字,但不能同时存在E) 可以使用super访问父类所有属性和方法24、关于构造方法,下列说法不正确的是()A) 构造方法与类同名,且不能声明返回值类型B) 用构造方法创建对象时,需使用new关键字C) 构造方法中不能含有return语句D) 我们在定义一个类时,必须要声明至少一个构造方法25、阅读以下程序段int a = 7, b = 8; //1int temp = a; //2a = b; //3b = temp; //4下面哪个选项可以替换该程序段的2—4行,并实现与之相同的功能?()A) a = a^b; b = a^b; a = a^b;B) a = a+b; b = a-b; a = a-b;C) a = a&b; b = a&b; a = a&b;D) a = a*b; b = a/b; a = a/b;26、已知外部类Outer中有一个成员内部类Inner,则()A) Inner生成的class文件为Outer.Inner.classB) Inner生成的class文件为Outer$Inner.classC) 在内部类中可以直接访问外部类的成员属性和方法D) 在其他类中用语句Outer.Inner in = new Outer.Inner( );创建Inner对象27、instanceof运算符能够用来判断一个对象是否为()A) 一个类的实例B) 一个实现指定接口的类的实例C) 一个子类的实例28、已知实体类A继承了B类并实现了C、D两个接口,则以下哪条语句可以通过编译?()A) A a = new B( ); B) B b = new A( );C) C c = new C( ); D) D d = new A( );29、下面关于Java中包的说法正确的是()A) 在Java中使用import语句导入包B) package语句指明该源文件定义的类所在的包,必须作为Java源文件的第一条语句C) 不同的包中可以出现类名相同的类D) 包存放在Java项目的src目录下30、类Teacher和Student是类Person的子类Teacher t = new Teacher();Student s = new Student();if (t instanceof Person )s = (Student)t;最后一条语句的执行结果是: ()A) 将构造一个Student对象B) 将强制转换一个Student对象C) 编译失败D) 编译时正确,但运行时错误31、哪个不是Object类中的方法()A) toString B) equals C) hashCode D) compare32、如果Child extends Parent,那么正确的有()A) 如果Child是class,且只有一个有参数的构造方法,那么必然会调用Parent中相同参数的构造方法B) 如果Child是interface,那么Parent必然是interfaceC) 如果Child是interface,那么Child可以同时extends Parent1,Parent2等多个interfaceD) 如果Child是class,并且没有显示声明任何构造方法,那么此时仍然会调用Parent的构造方法33、下面哪些情况下需要使用抽象类?()A) 当一个类的一个或多个方法是抽象方法时B) 当类是一个抽象类的子类,并且不能为任何抽象方法提供任何实现细节或方法体时C) 当一个类实现多个接口时D) 当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法体时34、以下代码中错误的语句是()public class Something {public static void main(String[] args) {final Other o = new Other();new Something().addOne(o); // 1}public void addOne(Other o){o.i++; // 2o = new Other(); // 3}}class Other{public int i;}A) 1 B) 2 C) 3 D) 没有错误35、String s1 = "java";String s2 = "java"; 则下列表达式值为true的是()A) s1.equals(s2)B) "Java".equalsIgnoreCase(s2)C) new String("java") = = s1D) s1= =s236、关于String字符串描述不正确的是()A) String本质是一个字符数组B) String对象存储字符串的效率比StringBuffer高C) String类提供了许多用来操作字符串的方法:连接、提取、查询等D) 基本数据类型和String相加结果一定是字符串型E) 可以使用构造方法String(char value[ ])创建一个字符串对象37、String s = "How are you"; 下列哪个操作不会产生错误或异常?()A) char c = s.charAt(s.length()); B) int i = s.indexOf("you");C) s = s.split("-")[0]; D) s = s.substring(1, s.length());38、以下选项中关于int和Integer的说法错误的是()A) int是基本数据类型,Integer是int的包装类,是引用数据类型B) int的默认值是0,Integer的默认值也是0C) Integer i = 5;该语句使用了自动拆箱功能D)使用Integer中的静态方法sqrt可以对一个整数进行开方运算39、关于try...catch..finally结构,描述正确的是哪项()A) 可以有多个catch B) catch块是必不可少的C) 可以有多个finally D)只能有一个catch40、对于异常处理,选择正确的选项()A) 如果finally中有return语句,则会将try或catch中的return语句“覆盖”,直接执行finally中的return语句B) 如果一个方法内部抛出了一个异常对象,那么必须要在方法上声明抛出C) 如果调用了一个声明抛出异常的方法,那么调用者必须要处理异常D) 如果try块中出现了异常的代码,那么其后面的代码是不会执行的41、能和try语句块一起使用的是()A) catch B) finally C) final D) finalize42、下面方法的返回值是()int method( ) {int i = 3;try{i /= 0;}catch(Exception e) {return i;}finally{i++;}return i+=2;}A) 4 B) 3 C) 6 D) 编译失败43、用冒泡排序对4,5,6,3,2,1进行从小到大排序,第三趟排序后的状态为()A) 4 5 3 2 1 6 B) 3 2 1 4 5 6C) 4 3 2 1 5 6 D) 2 1 3 4 5 644、如何随机地获取数组arr中的某一个元素?()A) arr[new Random( ).nextInt(arr.length)]B) arr[new Random( ).nextInt(arr.length+1)]C) arr[(int)Math.floor(Math.random( )*arr.length)]D) arr[(int)Math.ceil(Math.random( )*arr.length)]45、String str = "abccdefcdh";System.out.println(str.split("c").length);以上程序执行后打印的结果是几?()A) 2 B) 3 C) 4 D) 546、public class Example {public static void main(String[ ] args) {final String[ ] strs = { "Tom", "Jerry","Donald" };for (String s : strs) {s = "Tuffy";}System.out.println(strs[0] + "," + strs[1] +"," + strs[2]);}}请问运行main方法会打印出的是什么()A) Tom,Jerry,Donald B) Tuffy, Tuffy, TuffyC) 编译失败D) 发生异常,输出异常信息47、m个人去公园划船,每条船可以乘坐n个人,需要()条这样的船?A) m/n B) m/n+1C) m%n= =0?m/n:m/n+1 D) (int)(1.0*m/n)+148、关于Java中常用的类,下列说法正确的是()A) Calendar.MONTH用于表示月份,现在是8月份,得到的Calendar.MONTH 字段的值是9B)用SimpleDateFormat类的format方法可以格式化Date对象C) ArrayList集合底层是用数组实现的,存储的元素有序,可重复D) java.util.Random的nextInt( )方法会生成一个正整数类型的随机数49、单例模式正确的写法是(),其中(D)是饿汉式A) public class SingleInstance {private static SingleInstance instance = new SingleInstance( );private SingleInstance( ) { }public SingleInstance getInstance() {return instance;}}B) public class SingleInstance {private SingleInstance( ) { }public static SingleInstance getInstance( ) {return new SingleInstance() ;} }C) public class SingleInstance {private static SingleInstance instance ;private SingleInstance( ) { }public static SingleInstance getInstance( ) {if (instance == null) { instance = new SingleInstance( );}return instance;}}D) public class SingleInstance {private static SingleInstance instance = new SingleInstance( ) ;private SingleInstance( ) { }public static SingleInstance getInstance( ) {return instance;}}50、运行以下代码片段,输出结果是? ( )class X {{ System.out.print("1"); }static { System.out.print("2"); } X() { System.out.print("X"); }}public class Y extends X {{ System.out.print("3"); }static { System.out.print("4"); }Y() { System.out.print("Y"); }public static void main(String[] args) {new Y();}}A) 241X3Y B) 21X43Y C) 12X34Y D) 2413XY51、实现/继承了Collection接口的是()(包括直接和间接的实现/继承)A) Map B) List C) Vector D) Iterator E) Set52、下面属于线程安全的类是()A) java.util. ArrayList B) java.util.VectorC) ng.StringBuffer D) ng.StringBuilderE) java.util.HashMap F) java.util.Hashtable53、下列()选项中是LinkedList类有而ArrayList类没有的方法A) add(Object o) B) add(int index,Object o)C) getFirst( ) D) removeLast( )54、有这样一段程序:请问运行主要的程序会打印出的是什么()A) 2,2 B) 2,3 C) 3,2D) 3,355、根据以下代码,选择正确的选项()①Map map = new HashMap();②map.put(null,null);③map.put("a","A");④map.put("b","B");⑤map.put("b","BB");A) 第②行错误,因为HashMap不能将空值用作键B) 第②行错误,因为HashMap不能将空值用作值C) 第③行的put方法会返回nullD) 第⑤行的put方法会返回"B"56、关于集合,下列说法不正确的是()A) List是有序的。

相关主题