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
解析:
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<a)&&(m=a) ;
printf("%d,%d\n",k,m);
return 0;
}
A.0,0
B.0,1
C.1,0
D.1,1
答案:
A
解析:
14.下面这条语句一共创建了多少个对象:String s=“welcome”+“to”+360;
A.1
B.2
C.3
D.4
答案:
A
解析:
略,可以参考我的其他文字关于对String的介绍.
15.下面这段程序的输出结果是()
public class Main {
public static void main(String[] args) {
split(12);
}
public static int split(int number) {
if (number > 1) {
if (number % 2 != 0) System.out.print(split((number + 1) / 2));
System.out.print(split(number / 2));
}
return number;
}
}
A.12136
B.63121
C.61213
D.11236
答案:
A
解析:
考察方法进栈与出栈的顺序。先进后出
16.关于Java以下描述正确的有( )?
A.Class类是Object类的超类
B.Object类是一个final类
C.String类是一个final类
D.Class类可以装载其它类
答案:
C D
解析:
A.class类是Object的派生类
B.每个类都使用Object类作为超类,而final修饰的类不能被继承
17.以下哪几种是java的基本数据类型。
A.String
B.int
C.boolean
D.Double
答案:
BC
解析:
Double在java.lang包,是double的一个包装类,不是基本数据类型
18. Java程序的种类有( )
A.类(Class)
B.Applet
C.Application
D.Servlet
答案:
BCD
解析:
Java程序的种类有:
(a)内嵌于Web文件中,由浏览器来观看的_Applet
(b)可独立运行的 Application
(c)服务器端的 Servlets
19.关于java中的数组,下面的一些描述,哪些描述是准确的:()?
A.数组是一个对象,不同类型的数组具有不同的类
B.数组长度是可以动态调整的
C.数组是一个连续的存储结构
D.一个固定长度的数组可类似这样定义:int array[100]
E.两个数组用equals方法比较时,会逐个便利其中的元素,对每个元素进行比较
F.可以二维数组,且可以有多维数组,都是在java中合法的。
答案:
A C F
解析:
1.数组其实也是一个对象
2.定义一个一维数组的方式是:type[] arrayname或者type arrayname[];
3.一维数组的初始化:
(1)静态初始化
1)int[] arr = new int[]{1, 2, 3}
2)int[] arr = {1, 2, 3}
(2)动态初始化
int[] arr = new int[3];
4.可以定义多维数组
20.假如某个JAVA进程的JVM参数配置如下:
-Xms1G -Xmx2G -Xmn500M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3,
请问eden区最终分配的大小是多少?
A.64M
B.500M
C.300M
D.100M
答案:
C
解析:
java -Xmx2G -Xms1G -Xmn500M -Xss128k
-Xmx2G:设置JVM最大可用内存为2G。
-Xms1G:设置JVM初始内存为1G。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmn500M:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
-XX:SurvivorRatio=3:新生代中又会划分为 Eden 区,from Survivor、to Survivor 区。
其中 Eden 和 Survivor 区的比例默认是 8:1:1,当然也支持参数调整 -XX:SurvivorRatio=3的话就是3:1:1。
故该题为500*(3/5)=300M.