Java基础笔试练习(十)
1.Java中所有类的父类是( )?
A.Father
B.Dang
C.Exception
D.Object
答案:
D
解析:
D,java中Object是所有类的父亲,所有类的对象都是Class的实例。
2.在 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是标准输入流,所以不符合题意。
3. “先进先出”的容器是:( )
A.堆栈(Stack)
B.队列(Queue)
C.字符串(String)
D.迭代器(Iterator)
答案:
B
解析:
堆栈(Stack) : 如子弹入弹夹一样 先进后出
队列(Queue):如排队过隧道 先进先出
4.下面关于静态方法说明正确的是?
A.在静态方法中可用this来调用本类的类方法
B.在静态方法中调用本类的静态方法时可直接调用
C.在静态方法中只能调用本类中的静态方法
D.在静态方法中绝对不能调用实例方法
答案:
B
解析:
解释一下D.可以通过在静态方法中创建对象,通过对象.调用非静态方法
5.以下定义一维数组的语句中,正确的是:()?
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.是正确的
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.BufferedReader的父类是以下哪个?
A.FilterReader
B.InputStreamReader
C.PipedReader
D.Reader
答案:
D
解析:
io流
8.以下代码在编译和运行过程中会出现什么情况 ?
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方法也位于当前类,所以可以正确输出
9.类方法中可以直接调用对象变量。( )
A.正确
B.错误
答案:
B
解析:
静态方法中不能调用对象的变量,因为静态方法在类加载时就初始化,对象变量需要在新建对象后才能使用
10.内部类(也叫成员内部类)可以有4种访问权限。( )?
A.正确
B.错误
答案:
A
解析:
把内部类理解成类的成员,成员有4种访问权限吧,内部类也是!分别为private、protected、public以及默认的访问权限
11.关于以下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;};}//9
A.4行与9行不能通过编译,因为缺少方法名和返回类型
B.编译通过,执行结果是:x=5
C.编译通过,执行结果是:x=3
D.9行不能通过编译,因为只能有一个静态初始化器
答案:
B
解析:
父类静态代码块-->子类静态代码块-->父类普通代码块-->父类构造方法-->子类代码块-->子类构造方法;
12.java程序内存泄露的最直接表现是( )
A.频繁FullGc
B.jvm崩溃
C.程序抛内存控制的Exception
D.java进程异常消失
答案:
C
解析:
首先理解一下内存泄漏的概念,内存泄漏就是对象引用消失了,对象内存却没有被回收。
A答案:FullGC 是老年代内存空间不足的时候,才会触发的,老年代一般是生命周期较长的对象或者大对象,频繁的 FullGC 不会可能会影响程序性能(因为内存回收需要消耗CPU等资源),但是并不会直接导致内存泄漏。
B 答案:JVM奔溃的可能是内存溢出引起的,也可能是其他导致 JVM崩溃的操作,例如设置了错误的JVM参数等。
C 答案:内存异常,最常见的 就是 StackOverFlow 了把,内存溢出,其实内存泄漏的最终结果就是内存溢出。所以,基本上C是对的答案。
D 答案:Java 进程异常消失,这个明显不对的。
13.以下程序运行后的输出结果是()?
int main(){int a=1,b=2,m=0,n=0,k;k=(n=b