1.在 main() 方法中给出数组buffer和下标i,如果将此下标中的元素显示到控制台上,需要使用( )。
A.System.out.print (buffer[i]);
B.FileOutputStream fout = new FileOutputStream(this.filename);
C.FileInputStream fin = new FileInputStream(this.filename);
D.System.in.read(buffer)。
答案:A
解析:在main中已经给出字节数组,直接System.out.print();输出即可。BC都是文件输出输入流,D是标准输入流,所以不符合题意。
2.Java中所有类的父类是( )?
A.Father
B.Dang
C.Exception
D.Object
答案:D
解析:java中Object是所有类的父亲,所有类的对象都是Class的实例。
3以下定义一维数组的语句中,正确的是:()?
.A.int a [10]
B.int a []=new [10]
C.int a[] int a []=new int [10]
D.int a []={1,2,3,4,5}
答案:D
解析:
1.int a[10]是错误的,声明的时候不能初始化容量,只有new的时候才可以
2.正确的是int a[]=new int[10];
3.不能两个声明连在一起
4.是正确的、
4.abstract和final可以同时作为一个类的修饰符
答案:错误 解释:final的类不能被重写和继承
6.有如下代码:请写出程序的输出结果。
public class Test
{
public static void main(String[] args)
{
int x = 0;
int y = 0;
int k = 0;
for (int z = 0; z < 5; z++) {
if ((++x > 2) && (++y > 2) && (k++ > 2))
{
x++;
++y;
k++;
}
}
System.out.println(x + ”” +y + ”” +k);
}
}
A.432
B.531
C.421
D.523
答案:B
解析:每次循环z,x,y,k对应数值为:
0,1,0,0
1,2,0,0
2,3,1,0
3,4,2,0
4,5,3,1
执行完这次以后,z++为5,不再进入for循环。
7.以下代码在编译和运行过程中会出现什么情况 ?
public class TestDemo{
private int count;
public static void main(String[] args) {
TestDemo test=new TestDemo(88);
System.out.println(test.count);
}
TestDemo(int a) {
count=a;
}
}
A.编译运行通过,输出结果是88
B.编译时错误,count变量定义的是私有变量
C.编译时错误,System.out.println方法被调用时test没有被初始化
D.编译和执行时没有输出结果
答案:A
解析:private是私有变量,只能用于当前类中,题目中的main方法也位于当前类,所以可以正确输出
8.关于异常处理机制的叙述正确的是
A.catch部分捕捉到异常情况时,才会执行finally部分
B.当try区段的程序发生异常时,才会执行finally部分
C.当try区段不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
D.以上都是
答案C解析:finally中的代码是无论如何都会执行的。
9.高优先级的线程比低优先级的线程运行得更快。
答案错误解析:高优先级的线程与低优先级 的线程只是运行的优先级
10.关于以下application,说法正确是什么?
public class Test {
static int x=10;
static {x+=5;}
public static void main(String[] args) //4
{
System.out.println(“x=”+x);
}
static{x/=3;};
}
A.4行与9行不能通过编译,因为缺少方法名和返回类型
B.编译通过,执行结果是:x=5
C.编译通过,执行结果是:x=3
D.行不能通过编译,因为只能有一个静态初始化器
答案:B解析:父类静态代码块–>子类静态代码块–>父类普通代码块–>父类构造方法–>子类代码块–>子类构造方法;
11.以下程序运行后的输出结果是()?
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b
printf("%d,%d\n",k,m);
return 0;
}
A.0,0
B.0,1
C.1,0
D.1,1
答案:A
12.基本的Java语言函数存储在以下哪个java包中?()
java.lang
java.io
java.net
java.util
答案java.lang解析lang包主要是集合类、时间处理模式、日期时间工具等各类常用工具包。
2.util包 包括基本Object类、Class类、String类、基本类型的包装类、基本的数学类等最基本的类。
14.Integer a = 1;
Integer b = 1;
Integer c = 500;
Integer d = 500;
System.out.print(a == b);
System.out.print(c == d);代码返回结果是:true、false解析:
Interger的范围时[-128,127],在这个范围内比较大小,相等为true,超过范围为false
15.选项中哪一行代码可以替换 //add code here 而不产生编译错误
public abstract class MyClass {
public int constInt = 5;
//add code here
public void method() {
}
}
A.public abstract void method(int a);
B.consInt=constInt+5;
C.public int method();
D.public abstract void anotherMethod(){}
答案A解析:A是抽象方法,抽象类可以包含抽象方法,也可以不包含,实现重载。
B 在类中不能constInt = constInt + 5(
C 返回值不能作为重载的依据
D 有方法体的不能作为抽象函数
16.面代码的运行结果是()
public static void main(String[] args){
String s;
System.out.println(“s=”+s);
}
A.代码编程成功,并输出”s=”
B.代码编译成功,并输出”s=null”
C.由于String s没有初始化,代码不能编译通过。
D.代码编译成功,但捕获到NullPointException异常
答案:c解析:局部变量没有默认值
17.下列修饰符中,能够使得某个成员变量可被它所在包访问到和它的子类访问到的是( )
protected
public
private
应不加修饰符
答案:protected可被同一包以及包外子类访问
18.关于Java以下描述正确的有( )?
A.Class类是Object类的超类
B.Object类是一个final类
C.String类是一个final类
D.Class类可以装载其它类
答案:C D解析:A.class类是Object的派生类B.每个类都使用Object类作为超类,而final修饰的类不能被继承
19.以下哪几种是java的基本数据类型。
A.String
B.int
C.boolean
D.Double
答案:BC解析:Double在java.lang包,是double的一个包装类,不是基本数据类型
20.在java的一个异常处理中,可以包含多个的语句块是 ( )。
try
finally
throws
catch
答案: catch捕获异常
21.下面有关java的一些细节问题,描述错误的是?
构造方法不需要同步化
一个子类不可以覆盖掉父类的同步方法
定义在接口中的方法默认是public的
容器保存的是对象的引用
答案:一个子类不可以覆盖掉父类的同步方法解析:子类应该是可以置换掉父类的同步方法的。
23.关于final说法正确的是? ( )
final类的方法肯定不能被同一个包的类访问
final类的方法能否被同一个包的类访问不是由final决定
final方法等同于private方法
final对象本身的引用和值都不能改变
答案:final类的方法能否被同一个包的类访问不是由final决定解析:final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的。
24.下列说法正确的有()
能被java.exe成功运行的java class文件必须有main()方法
J2SDK就是Java API
Appletviewer.exe可利用jar选项运行.jar文件
能被Appletviewer成功运行的java class文件必须有main()方法
答案:A解析:A:正确main方法是入口
B:J2SDK当然不仅仅包含java API
C:jar选项是java.exe 的选项
D:Appletviewer是运行applet的, applet 不用main方法,继承applet类即可。
26.public class A2{
public static void main(String[] args){
int[] a={2,4,6,8,3,6,9,12};
doSomething(a,0,a.length-1);
for(int i=0;i<=a.length-1;i++)
System.out.print(a[i]+" ");
}
private static void doSomething(int[] a,int start,int end){
if(start
int p=core(a,start,end);
doSomething(a,start,p-1);
doSomething(a,p+1,end);
}
}
private static int core(int[] a,int start,int end)
{
int x=a[end];
int i=start;
for(int j=start;j<=end-1;j++){
if(a[j]>=x){
swap(a,i,j);
i++;//交换了几次
}
}//把最大的放到最后
swap(a,i,end);//把最大的放到i的位置
return i;
}
private static void swap(int[] a,int i,int j)
{
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
} 解析:每次排序,先拿前面的值依次和末尾值比较,比末尾值大的则交换,每次排序最大的值放到末尾;关键还没完,还要再和前面的值交换,将最大值放到前面