一、单选题
1、当试图编译并运行下面程序时会出现什么结果()
class A{
public int getNumber(int a){
return a+1;
}
}
class B extends A{
public int getNumber(int a, char c){
return a+2;
}
public static void main(String[] args){
B b=new B();
System.out.println(b.getNumber(0));
}
}
A、编译错误
B、运行错误
C、1
D、2
答案:C
当编译并运行下面程序时会出现什么结果( )
public class MyAr{
public static void main(String argv[]){
int[] i = new int[5];
System.out.println(i[5]);
}
}
A、编译错误
B、运行错误
C、输出0
D、输出“null”
答案:B
当编译并运行下面程序时会发生什么结果()
public class Bground extends Thread{
public static void main(String argv[]){
Bground b = new Bground();
b.run();
}
public void start(){
for (int i = 0; i <10; i++){
System.out.println("Value of i = " + i);
}
}
}
A、编译错误,指明run方法没有定义
B、运行错误,指明run方法没有定义
C、编译通过并输出0到9
D、编译通过但无输出
答案:D
5、在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。
A、Final
B、Static
C、Abstract
D、Void
答案:C
当编译并运行下面程序时会发生什么结果:
public class Hope{
public static void main(String argv[]){
Hope h = new Hope();
}
protected Hope(){
for(int i =0; i <10; i ++){
System.out.println(i);
}
}
}
A、编译错误,构造方法不能被声明为protected
B、运行错误,构造方法不能被声明为protected
C、编译并运行输出0到10
D、编译并运行输出0到9
答案:D
当编译并运行下面程序时会发生什么结果?( )
public class Test{
public static void stringReplace(String text){
text=text+”c”;
}
public static void bufferReplace(StringBuffer text){
text=text.append("c");
}
public static void main(String args[]){
String textString=new String("java");
StringBuffer textBuffer=new StringBuffer("java");
stringReplace(textString);
bufferReplace(textBuffer);
System.out.println(textString+textBuffer);
}
}
A、编译并运行输出javac javac
B、编译并运行输出java java
C、编译并运行输出java javac
D、编译并运行输出 javac java
答案:C
当编译和运行下面程序时,哪项描述可以最准确的表达发生了什么事情( )
public class MyAr{
public static void main(String argv[]) {
MyAr m = new MyAr();
m.amethod();
}
public void amethod(){
int i;
System.out.println(i);
}
}
A、编译并输出0
B、编译错误
C、编译并输出null
D、运行错误
答案:C
给定如下java代码程序片断:
class A{
public A(){
System.out.println(“A”);
}
}
class B extends A{
public B(){
System.out.println(“B”);
}
public static void main(String[] args){
B b=new B();
}
}
上述程序将()
A、不能通过编译
B、通过编译,输出为AB
C、通过编译,输出为B
D、通过编译,输出为A
答案:C
给定JAVA代码如下,编译运行后,输出结果是()
public class test{
static int i;
public int test(){
i++;
return i;
}
public static void main(String args[]){
Test test=new Test();
test.test();
System.out.println(test.test());
}
}
A、0
B、1
C、2
D、3
答案:C
14、给定JAVA代码如下,关于super的用法,以下描述正确的是( )
class C extends B
{
public C()
{
super();
}
}
A、用来调用类B中定义的super()方法
B、用来调用类C中定义的super()方法
C、用来调用类B中的无参构造方法
D、用来调用类B中第一个出现的构造方法
答案:C
17、下面哪些是正确的描述了关键字synhronized ( )
A、允许两个进程并行运行但其之间相互通信
B、保证任何时候只有一个线程访问一个方法或对象
C、保证两个或多个进程同时启动和结束
D、保证两个或多个线程同时启动和结束
答案:C
18、下列哪一种叙述是正确的()
A、abstract修饰符可修饰属性、方法和类
B、抽象方法的body部分必须用一对大括号{ }
C、声明抽象方法,大括号可有可无
D、声明抽象方法不可写出大括号
答案:C
21、给定java代码如下,编译运行结果是()
public class Test{
public int count(){
return 1%9;
}
public static void main(String[]args){
System.out.println(count());
}
}
A、编译错误
B、运行错误
C、正常运行,输出1
D、正常运行,输出0
答案:C
22、将对象序列化,要实现哪个接口()
A、Cloneable
B、Runnable
C、Serializable
D、Comparator
答案:C
23、以下代码输出结果为( )
public class Test{
public static String output="";
public static void foo(int i){
try {
if(i==1){
throw new Exception();
}
output +="1";
} catch(Exception e){
output+="2";
return;
} finally{
output+="3";
}
output+="4";
}
public static void main(String args[]){
foo(0);
foo(1);
System.out.println(output);
}
}
A、1342
B、123
C、134234
D、13423
答案:C
24、在JAVA中,()接口位于集合框架的顶层( )
A、Collection
B、Collections
C、List
D、Set
答案:C
25、在Java中,下列()类不能派生出子类( )
A、public class MyClass{}
B、class MyClass{}
C、abstract class MyClass{}
D、final class MyClass{}
答案:C
26、启动一个线程,应调用什么方法()。
A、start()
B、run()
C、begin()
D、notify()
答案:C
27、在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )
A、interface A extends B,C
B、interface A implements B,C
C、class A implements B,C
D、class A implements B,implements C
答案:C
28、在Java中,以下定义数组的语句正确的是( )
A、int t[10]=new int[];
B、char a[]="hefg";
C、int t[]=new int[10];
D、double d=new double[10];
答案:C
29、给定一个java程序的main方法的代码片段如下:假如d目录下不存在abc.txt文件,现运行该程序,下面的结果正确的是():
try{
PrintWriter out =
new PrintWriter(new FileOutputStream("d:/abc.txt"));
String name="chen";
out.print(name);
}catch(Exception e){
System.out.println("文件没有发现!");
}
A、将在控制台上打印:"文件没有发现!"
B、正常运行,但没有生成文件abc.txt
C、运行后生成abc.txt,但该文件中可能无内容
D、运行后生成abc.txt,该文件内容为:chen
答案:C
30、集合框架中,要实现对集合里的元素进行自定义排序,要实现哪个接口()
A、Cloneable
B、Runnable
C、Serializable
D、Comparator
答案:C
研究下面的JAVA代码( )
public class TestException {
/**
* @param args
*/
public static void main(String[] args) {
int a[] = {0,1,2,3,4};
int sum=0;
try
{
for(int i=0;i<6;i++)
{
sum+=a[i];
}
System.out.println("sum="+sum);
}
catch(java.lang.ArrayIndexOutOfBoundsException e)
{
System.out.println("数组下标越界");
}
finally
{
System.out.println("程序结束");
}
}
}
输出结果将是()
A、10 数组下标越界 程序结束
B、10 程序结束
C、数组下标越界 程序结束
D、程序结束
答案:C
研究下面JAVA代码
public class TestException {
public static void main(String[] args) {
try
{
System.out.println("hello,jr");
System.exit(0);
}
finally
{
System.out.println("88");
}
}
}
输出结果为()
A、hello,jr
B、88
C、hello,jr后是88
D、不能编译
答案:C
二、多选题
3、final、finally、finalize三个关键字的区别是()
A、final是修饰符(关键字)可以修饰类、方法、变量
B、finally在异常处理的时候使用,提供finally块来执行任何清除操作
C、finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做必要的清理工作
D、finally和finalize一样都是用异常处理的方法
答案:ABC
7、下列说法正确的是?()
A、数组有length()方法
B、String有length()方法
C、数组有length属性
D、String有length属性
答案:BC
以下哪些表达式返回为真()
String a=”My field1”;
String b=”My field1”;
String c=new String(”My field1”);
String d=new String(”My field1”);
A、a ==b
B、a==c
C、c==d
D、a.equals(b)
E、a.equals(c)
F、c.equals(d)
答案:ADEF
12、关于线程,以下说法正确的是:()
A、sleep方法执行时会释放对象锁。
B、wait方法执行时会释放对象锁。
C、sleep方法必须写在同步方法或同步块中
D、wait方法必须写在同步方法或同步块中
答案:BD
15、哪些是Thread类中本身的方法(不包括继承) ( )
A、start()
B、sleep(long mi)
C、wait()
D、notify()
答案:AB
16、下面哪些为真()
A、接口里可定义变量,并且变量的值不能修改
B、任何情况下,类都不能被private修饰
C、类可以被protected修饰
D、接口不能实例化
答案:ACD
19、下面关于网络通信正确的描述是()
A、TCP/IP协议是一种不可靠的网络通信协议。
B、UDP协议是一种可靠的网络通信协议。
C、TCP/IP协议是一种可靠的网络通信协议。
D、UDP协议是一种不可靠的网络通信协议。
答案:CD
20、在Java中,下面关于抽象类的描述正确的是()
A、抽象类可以被实例化
B、如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类
C、抽象类的方法都必须是抽象的
D、声明抽象类必须带有关键字abstract
答案:C
31、
class Super{
protected float getNum(){return 3.0f;}
}
public class Sub extends Super{
//Here
}
下面哪些代码可放在Here处
A、float getNum(){return 4.0f;}
B、public void getNum(){}
C、private void getNum(double d){}
D、public double Getnum(){return 4.0d;}
E、public float getNum(){return 9;}
答案:BD
32、在Java语言中,如果你编写一个多线程序,可以使用的方法是()。
A、扩展类Thread
B、实现Runnable接口
C、扩展类Runnable
D、实现接口Thread
答案:CDE
33、下面哪些接口直接继承自Collection接口()
A、List
B、Map
C、Set
D、Iterator
答案:AB
34、关于HashMap和Hashtable正确的说法有()
A、都实现了Map接口
B、Hashtable类不是同步的,而HashMap类是同步的
C、Hashtable 不允许null键或值
D、HashMap 不允许null键或值
答案:AC
35、下面关于构造方法的说法正确的是()
A、构造方法不能被继承
B、构造方法不能被重写
C、构造方法不能被重载
D、构造方法不能声明为private
答案:AC
考虑下面的代码
public class ConstOver{
public ConstOver(int x,int y,int z){}
}
说出哪些重载了ConstOver构造器?
A、ConstOver(){}
B、protected int ConstOver(){}
C、private ConstOver(int z,int y,byte z){}
D、public void ConstOver(byte x,byte y,byte z){}
E、public Object ConstOver(int x,int y,int z){}
答案:AC
有以下代码:
package com;
public class Test {
public static void main(String[] args) {
Test test = new Test();
//here
}
}
在here处加上以下什么语句,可以获得Class对象?
A、Class c = new Class();
B、Class c = test.class;
C、Class c = Test.class;
D、Class c = test.getClass();
E、Class c = Class.forName(“com.Test”);
F、Class c = Class.forName(“Test”);
答案:CDE
40、能用来修饰interface方法的有( )
A、private
B、public
C、protected
D、static
E、不加修饰符
答案:BE
由“JAVA笔试题库”收集整理