Java应届生岗位面试题记录(附答案及解析)

仅为记录面试所遇到的题目,不论难易。

目录

单选

多选题

简答题

编程题


 

单选

1、关于java的异常处理机制,以下说法正确的是:()
A) 当某个线程抛出OutOfMemoryError时,其他线程有可能不受影响
B) 当大量抛出RuntimeException时,不会影响系统的吞吐量
C) java.lang.Exception是java.lang.Error的父类
D) finally块代码一定会被执行

答案:A

解析:

A.当一个线程抛出OOM异常后,它所占据的内存资源会被快速地释放掉,从而不会影响其它线程的运行.
B.当大量抛出运行时异常时,系统肯定存在问题,会影响系统吞吐量。
C.Exception 和Error 都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出或者捕获,它是异常处理机制的基本类型
D.执行完try…catch之后,一定会执行finally里的代码… 除了个别情况不会执行finally,如:(1)try中有死循环 (2)try-catch异常退出:System.exit(0) (3)线程被杀死,执行try,finally的线程被杀死时.

2. java程序的执行过程中用到一套jdk工具,其中java.exe是指()编译器
A.    文档生成器
B.    解释器
C.    编译器
D.    分解器

答案:B

解析:

javadoc.exe:制作源文件类结构的html格式文档。
java.exe:java解析器,直接从类文件执行Java应用程序字节代码。
javac.exe:java编译器,将Java源代码转换成字节码
javap.exe:Java类分解器,对.class文件提供字节代码的反汇编。

3.在几进制下,123*234=28560是成立的? 
A)6
B)10
C)12
D)14 

答案:C

解析:个位数3*4得到的个位数是0,那便是逢12进10

4. 下列语句哪一个正确()
A.    Java程序经编译后会产生machine code
B.    Java程序经编译后会产生byte code
C.    Java程序经编译会产生dll
D.    以上都不正确

答案:B

解析:byte code,即字节码,“java程序经编译后”,可理解为使用javac 指令编译后,程序会生成.class文件,即字节码文件,故b正确。machine code是机器码,DLL(Dynamic Link Library)文件为动态链接库文件,均不是Java程序经编译后产出的文件。

5.关于sleep()和wait(),以下描述错误的一项是(  )
A)sleep是线程类(Thread)的方法,wait是Object类的方法;
B)sleep不释放对象锁,wait释放对象锁;
C)sleep暂停线程、但监控状态仍然保持,结束后会自动恢复;
D)wait后进入等待锁定池,只有针对此对象发出notify方法后获得对象锁进入运行状态。

答案:D

解析: 

(发出-->调用)
Sleep   暂停当前线程,但是不释放锁
        Sleep是在Thread
可以在任何场景使用
只有睡够时间才能醒

Wait   暂停当前线程。但是释放资源锁
       Object对象的
       wait方法只能在同步模块使用
       可以随时唤醒

首先,多线程中会使用到两个延迟的函数,wait和sleep。 
wait是Object类中的方法,而sleep是Thread类中的方法。
sleep是Thread类中的静态方法。无论是在a线程中调用b的sleep方法,还是b线程中调用a的sleep方法,谁调用,谁睡觉。 
最主要的是sleep方法调用之后,并没有释放锁。使得线程仍然可以同步控制。sleep不会让出系统资源; 
而wait是进入线程等待池中等待,让出系统资源。
调用wait方法的线程,不会自己唤醒,需要线程调用 notify / notifyAll 方法唤醒等待池中的所有线程,才会进入就绪队列中等待系统分配资源。sleep方法会自动唤醒,如果时间不到,想要唤醒,可以使用interrupt方法强行打断

Thread.sleep(0) // 触发操作系统立刻重新进行一次CPU竞争。

6.下列关于进程和线程的叙述中,正确的是()
A)不管系统是否支持线程,进程都是资源分配的基本单位
B)线程是资源分配的基本单位,进程是调度的基本单位
C)系统级线程和用户级线程的切换都需要内核的支持
D)同一进程中的各个线程拥有各自不同的地址空间

答案:A

解析:在系统中,进程是最小的资源分配的基本单位,不管系统是否支持线程。在支持线程的系统中,线程是调度的基本单位。同一进程中的各个线程拥有共同的共享地址空间。

 7.下列说法正确的有()
A.    class中的constructor不可省略
B.    constructor必须于class同名,但方法不能与class同名
C.    constructor在一个对象被new时执行
D.    一个class只能定义一个constructor

答案:C

解析:这里可能会有误区,其实普通的类方法是可以和类名同名的,和构造方法唯一的区分就是,构造方法没有返回值。构造方法可重载(constructor:构造函数)

8.提供Java存取数据库能力的包是()
A.    Java.sql
B.    java.awt
C.    java.lang
D.    java.swing

答案:A

解析:

java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。 
java.awt包提供了基本的java程序的GUI设计工具。
java.lang提供利用 Java 编程语言进行程序设计的基础类
Java SWing提供许多比AWT更好的屏幕显示元素。
java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 

9.给定以下JAVA代码,这段代码运行后输出的结果是()

public class Test{
    public static int aMethod(int i)throws Exception{
        try{
            return i / 10;
        }catch (Exception ex){
           throw new Exception("exception in a Method");
        } finally{
            System.out.printf("finally");
        }
    }
    public static void main(String [] args) {
        try {
            aMethod(0);
        } catch (Exception ex) {
            System.out.printf("exception in main");
        }
        System.out.printf("finished");
    }
} 

A)exception in main finished
B)finally finished
C)exception in main finally
D)finally exception in main finished

答案:B

解析:略

10.下面有关SPRING的事务传播特性,说法错误的是?
A)PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行
B)PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就抛出异常
C)PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起
D)PROPAGATION_NESTED:支持当前事务,新增Savepoint点,与当前事务同步提交或回滚

答案:B

解析:Spring的API设计很不错,基本上根据英文翻译就能知道作用:Required:必须的。说明必须要有事物,没有就新建事物。supports:支持。说明仅仅是支持事务,没有事务就非事务方式执行。mandatory:强制的。说明一定要有事务,没有事务就抛出异常。required_new:必须新建事物。如果当前存在事物就挂起。not_supported:不支持事物,如果存在事物就挂起。never:绝不有事务。如果存在事物就抛出异常

11.下列运算符合法的是()
A.&&
B.<>
C.if
D.:=

 答案:A

解析:

Java应届生岗位面试题记录(附答案及解析)_第1张图片

 12.下列哪一种叙述是正确的()
A.    abstract修辞符可修饰字段,方法,类
B.    抽象方法的body部分必须用一对大括号{}包住
C.    声明抽象方法,大括号可有可无
D.    声明抽象方法不可写出大括号

答案:D

解析:abstract不能修饰字段。抽象方法没有实现的方法,所以没有body部分。

 13.下列语句正确的是()
A.    形式参数可被视为local variable
B.    形式参数可被字段修饰符修饰
C.    形式参数为方法被调用时,真正被传递的参数
D.    形式参数不可以是对象

答案:A

解析:

A.local variable:局部变量。形参和局部变量一样都不能离开方法。都只有在方法内才会发生作用,也只有在方法中使用,不会在方法外可见。
B.形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误。
C. 传递的是对象的引用
D. 形参可以是对象,如果形参是对象,那么形参里面存储的就是对象的引用

 14.下列哪种说法是正确的()
A.    实列方法可直接调用超类的实列方法
B.    实例方法可直接调用超类的类方法
C.    实例方法可直接调用其他类的实例方法
D.    实例方法可直接调用本类的类方法

答案:D

解析:实例方法不能调用被private修饰的方法,所以ABC错误

 15.jsp指令中isELIgnored=“boolean”的意思是()
A.    决定是否实现Servlet的单线程模式
B.    决定改页面是否是一个错误处理页面
C.    决定是否支持EL表示
D.    没有具体的含义

答案:C

解析:略

16.按照MVC设计模式,jsp用于实现()
A.    Model
B.    View
C.    Controller
D.    容器

答案:B

解析:模型(Model):程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能);
控制器(Controller):负责转发请求,对请求进行处理;
视图(View):界面设计人员进行图形界面设计

17.下面哪个不是表单标记()
A.    INPUT
B.    RADIO
C.    CHECKBOX
D.    TR

答案:D

解析:

表单标记: