Java面试题

514 阅读1分钟

一.单选题

1. public class Test{ public static void main(String   args[]){
System.out .println(15>>1);
}
}其运行结果是(        )
A 7        B 8        C 16        D 14

2.关于private修饰符的方法,下面说法正确的是

A.可以被子类使用

B.在同一个包中的类都可以使用

C.只能在本类中使用

D.不能被重载

  1. 在 Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是( )
    A.java.io      B.java.awt      C.java.util       D.java.lang

4. 哪个关键字可以抛出异常?( )
A try        B finally      
C throw           D catch

5.在Java中,能实现多重继承效果的方式是(         )

A.内部类 B.适配器 C.接口 D.同步

public class test1
{

public static void main(String args[])
{

System.out.println(2.0-1.1);
}
}
A 0.9 B0.90 C编译有错误 D 0.899999999999999 E 0.90000000001

  1. public class test2
    {

privatetest2(Object e)
{

System.out.println("object ");
}
private test2(int array[])
{

System.out.println("array ");
}
public static void main(String args[])
{

new test2(null);
}

}A object B array C 编译有错误 D null

  1. public class test3
    {

public static void main(String args[])
{

int count=0;
for (int i=0;i<=100;i++)
count+=count++;

System.out.print(count)

}

}

A 0 B1 C5050 D 其他答案

  1. Public class Test1

{

Public static void changeStr(String str)

{

Str =”WELCOME”;

}

Public static void main(String args[])

{

String str=”1234”;

changeStr(str);

System.out.println(str);

}

}

A.1234 B.WELCOME C.编译不通过 D.出现异常

public class Something

{
void doSomething ()

{
private String s = "";
int l = s.length();
}

}

A.0 B.编译错误 C.空指针异常

11.在线程类中能运行线程体的方法是

A.start() B.resume() C.init() D.run()

12. 在java中,i/o流使用了(__)模式A. 解释器模式B. 观察者模式C. 工厂模式D. 装饰模式

13. public class test3
{

public static void main(String args[])
{

int count=0;
for (int i=0;i<=100;i++)
count+=++count;

System.out.print(count)

}

}

A 0 B-1 C1 D 其他答案

  1. 下列关于接口和抽象类的说法不正确的是?( )A) 接口也有构造方法B) 实现接口时,需对接口中的所有方法都要实现C) 抽象类也有构造方法D) 抽象类可以派生出子类

15、下述哪个说法是不正确的?( )A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法
D) for语句中定义的变量,当for语句执行完时,该变量就消亡了

16. 以下编译Java程序“A.java”正确的方法是:( )
A.javac   A           B.javac   a.java       C.javac   a       D.java   A.java

  1. 请阅读下列程序
    class ExampleStringBuffer{
    public static void main(String[] args){
    StringBuffer sb=new StringBuffer("test");
    System.out.println("buffer="+sb);
    System.out.println("length="+sb.length());}}
    程序的运行结果中在“length=”后输出的值是( )
    A 10      B 4     C 20     D 30

18.下面是有关子类调用父类构造函数的描述正确的是()

A、子类定义了自己的构造函数,就不会调用父类的构造函数

B、子类必须通过super关键字调用父类没有参数的构造函数

C、如果子类的构造函数没有通过super调用父类构造函数,那么子类会先调用父类不含参数的构造函数,再调用子类自己的构造函数

D、创建子类对象时,先调用子类自己的构造函数,然后调用父类的构造函数

  1. 下面关键字中那一个是不可用来控制对类成员的访问()

A. public

B. private

C. protected

D. default

20"若有定义String tom=""我们是学生"";则tom.length()的值是()"

A.5

B.10

C.6

D. 11

二.多选题

1.下列关于java数组论述,正确的是:A) 定义一个Java的多维数组变量,实际上是定义了将会指向数组对象的引用,该数组对象所包含的元素又将是另一个数组对象的引用。B) int[][] x = new int[3][5]; 所定义的二维数组对象含有15个int型元素。C) String[] x = {"o", "k","ok"}; 所创建的数组对象含有3个串对象。D) int[] x = {0}; 与 int[] x = new int[1]; 的结果是完全等价的。E) int[][] x = {{1},{1,2},{1,2,3},new int[1]}; 是正确的语句。2 下列叙述正确的是:A) 方法中可以定义另一个方法,称为:内部方法。B) 类中可以定义另一个类,称为内部类。C) 接口中可以定义另一个接口,称为:内部接口。D) 对象中可以包含另一个对象。E) 属性中可以包含另一个属性。

3.下面哪些是float的有效声明?
A. float foo=-1;
B. float foo=2.02f;
C. float foo=3.03d;
D. float foo=0x0123;

4. public class ConstOver{ public ConstOver(int x, int y, int z){} } 下面哪两个是构造方法的重载?
A. ConstOver(){}
B. protected int ConstOver(){}
C. private ConstOver(int z, int y, byte x){}
D. public void ConstOver(byte x, byte y, byte z){}

5. 下面哪种类型的对象可以用"throws"抛出?
A. Error
B. Exception
C. Throwable
D. Runtime Exception

6. 下面哪两个是对的?
A. 静态的内部类需要一个静态的初始化方法
B. 一个静态的内部类需要一个外部类的实例来调用
C. 一个静态的内部类不需要外部类的实例来调用
D. 一个静态的内部类的静态成员可以用静态类的类名来调用。

7  编译并运行下面的程序,运行结果为( ).

public class A {

public static void main (String[] args) {

                   A a=new B( );

                    a.test();

}

                    void test()

                   {

                                      System.out.print ("A");

                   }

}

class B extends A

{

                   void test()

                   {

                                      super.test();

                                      System.out.println("B");

                   }

}

A. 子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。

B. 代码可以编译运行,并输出结果:AB。

C. 代码可以编译运行,并输出结果:A。

D. 类B定义了与父类A中同名的方法test,java中称为方法的重载

8.  下面关于类的说法正确的是()。

A. 类是 Java 语言中的一种复合数据类型。

B. 类中包含数据变量和方法。

C. 类是对所有具有一定共性的对象的抽象。

D. Java 语言的类只支持单继承

9.  设有如下代码: 

class Base{}

public class MyCast extends Base{

                   static boolean b1=false;

                   static int i = -1;

                   static double d = 10.1;

                    public static void main(String argv[])

                   {

                                      MyCast m = new MyCast();

                                      Base b = new Base();

                                       //Here
```

```
                    }

}

则在 //Here处插入哪个代码将不出现编译和运行错误。()

A. b=m;

B. m=b;

C. d =i;

D. b1 =i;
```

10.Java语言提供那些元素支持封装()

Aclass语句

Bnew语句

Cpackage语句

D.访问修饰符

三.简答题

1.线程的start()和run()的区别

2.接口和抽象类的区别

3.重载和重写的区别

4.StringStringBufferequals区别

答案:一.ACDCC DBAAB ADBAA BBCDA

 二.1.ADE 2.BC 3 ABD 4.AC 5.ABCD

6.CD 7.AB 8.ABCD 9.AC 10.ACD

  

> 本文使用 [文章同步助手](https://juejin.cn/post/6940875049587097631) 同步