java面试题(第一次笔试)

首先祝大家圣诞节快乐。

信工的元旦晚会还是有点意思的~~~哈哈

java面试题(第一次笔试)_第1张图片

 

今天下午投了一份简历,是一家小公司,hr方面让先做一套笔试题,是一套非常基础的试题,算是试试水吧。

 

题目不是很难,但是有很多文字性的陷阱。

 

1、 下列关于修饰符混用的说法,错误的是(D)

A    abstract不能与final并列修饰同一个类

B    abstract类中可以有private的成员

C    abstract方法必须在abstract类中

D    static方法中能处理非static的属性

解析:A、abstract修饰抽象类,而抽象类本来就是要被继承后重写里面的方法的,如果加了final,final修饰的方法不能被重写。二者的作用冲突。B、private是访问权限修饰符,abstract中可以有private修饰的成员或方法,但是不能被访问,这么写意义不大。C、概念。D、static方法在类加载时先于非静态属性,比构造方法加载的都早,static方法只能处理传进来的参数。

 

 

2、Java异常处理时,哪个关键字不是异常处理所需要的(C)

 

 

A    throw

B    try-catch

C    final

D    throws

解析:final修饰的变量不可改变,final修饰的方法不能被重写,final修饰的类不能被继承。final关键字和异常处理无关。

 

3、下列关于构造的说法正确的是    (C)

A    class中的constructor不可省略

B    constructor必须与class同名,但方法不能与class同名

C    constructor在一个对象被new时执行

D    一个class只能定义一个constructor

解析:构造方法可以有多个。...此题....代码写的多的话就是送分

 

4、接口是Java面向对象的实现机制之一,以下说法正确的是(B)

A    Java支持多重继承,一个类可以实现多个接口

B    Java只支持单重继承,一个类可以实现多个接口

C    Java只支持单重继承,一个类只可以实现一个接口

D    Java支持多重继承,但一个类只可以实现一个接口

解析:java支持单继承,多实现,接口之间可以多继承。

 

5、编译运行以下程序后,关于输出结果的说明正确的是  (C)

public class Demo{     public static void main(String args[ ]){         int x=4;         System.out.println(“value is “+ ((x>4) ? 99.9 :9));     } }

A    输出结果为:value is 99.99

B    输出结果为:value is 9

C    输出结果为:value is 9.0

D    编译错误

解析:本题考查三目运算符:三目运算时会将数据类型自动转换为范围大的统一运算。

 

6、以下 Java语句中,String str = "123456789";str =str.subString(1,3); 执行后 str 中的值为  (A)

A    "23"

B    "123"

C    "12"

D    "234"

解析:对javaAPI的考查:subString方法:左闭又开[1,3)

 

7、在 java 中,已定义两个接口 B 和 C,要定义一个实现这两个接口的类,以下语句正确的是 (C)

A    interface A extends B,C

B    interface A implements B,C

C    class A implements B,C

D    class A implements B,implements C

解析:java基础语法:implements用于实现接口,extends用于继承

 

8、在 Java中,下列(C)是不合法的赋值语句

A    float f=1/3;

B    int i=1/3;

C    float f=1*3.0;

D    double f=1.0/3;

解析:1*3.0的结果是double类型,java中double类型占8个字节,float类型占4个字节,从大范围转小返回会缺失精度,需要强转。float f = (float)1*3.0

 

9、在 Java中,关于 HashMap 类的描述,以下说法错误的是(B)

A    HashMap 使用键 /值的形式保存数据

B    HashMap 能够保证其中元素的顺序

C    HashMap 允许将 null 用作键

D    HashMap 允许将 null 用作值

解析:HashMap底层使用键值对(key,value)来存储的,底层jdk1.7是数组+链表的数据结构,jdk1.8是数组+链表+红黑树的数据结构。HashMap的key和value都是可以为null的。HashMap底层使用hashcode()来计算元素存放的索引下标的位置,所以不能保证元素的顺序。

 

10、在 Java中,下列代码运行后的输出结果是(A) int x=5*3; int y=x+5/x+3; System.out.println(y) ;

 

11、 Java面向对象的特征有哪些 ?(多选)

封装、继承、多态

 

12、 下面关于变量及其范围的说法哪些是不正确的(BC)

A    实例变量是类的成员变量

B    实例变量用关键字static声明

C    在方法中定义的局部变量在该方法被执行时创建

D    局部变量在使用前必须被初始化

解析:类变量用static修饰。

对于C选项我也有困惑:局部变量在局部变量表中,局部变量表在栈帧中,而栈帧是在方法执行的时候创建的。大家可以去百度.......

 

13、下面中哪些方法可以在Demo的子类中使用(AC) class Demo {         protected int method1 (int a, int b) {         return 0;     } }

A    public int method1 (int a, int b) { return 0; }

B    private int method1 (int a, int b) { return 0; }

C    private int method1 (int a, long b) { return 0; }

D    public short method1 (int a, int b) { return 0; }

解析:子类继承父类,然后重写父类的方法:

A是方法的重写;

B又重写了一次,和A重复,所以不行;

C是方法重载;

D的原因和B一样,同一方法不能重写两次。

 

14、在 Java中,下列代码运行后的输出结果是(B) Integer i1 = 100; Integer i2 = 100; Integer i3 = 300; Integer i4 = 300; System.out.println(i1==i2); System.out.println(i3==i4);

A    false false

B    true false

C    true true

D    false true

解析:java中有一个缓冲池的概念,里面缓存了-128~127之间的值,100在缓冲池内,所以是true,300不在缓冲池内,所以是false

 

判断题:

.15、 获取数组长度使用length()方法

解析:错误:length()方法计算的是字符串的长度;length获取的是数组的长度。一个有括号,一个没括号

 

 16、Java程序里,创建的类对象用关键字new,回收无用的类对象使用关键字free

解析:错误:创建对象使用new,但是free没听说过

 

17、栈是一种线性结构,具有先进先出的特点

解析:错误:栈是后进先出的数据结构

 

18、Java中switch case 语句,其中case后紧跟的一定是常量表达式 

解析:正确

 

19、Java中switch case 语句,其中case后紧跟的一定是常量表达式 

解析:正确

 

开放题:

20、Object的equal()和==的区别?

21、String、StringBuffer、StringBuilder的区别 

22、String、StringBuffer、StringBuilder的区别 

23、JVM、JRE和JDK的关系

24、Java语言有哪些特点

25、static存在的主要意义

 

总结:全是一些最基础的题,如果这些都掌握不了,进大厂应该是很困难的。

 

 

你可能感兴趣的:(面试题,java)