Java的所有间接父类 java中所有类的父类是什么_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

解析:

Java的所有间接父类 java中所有类的父类是什么_Java面试_02

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.