动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

java面试经典题汇总(附答案)

08-13 17:05 201浏览
举报 T字号
  • 大字
  • 中字
  • 小字

每年一到春节过后和毕业季的时候,求职找工作便开始了,在这两个时间段内,被讨论话题度最高的便是“如何能进入大公司”。在IT行业中更是如此,大家都想进入互联网大公司,今天为java程序员们整理了java面试经典题

所谓“知己知彼才能百战百胜”,想成为互联网大公司中的一名程序员,首先要做的就是对java面试的准备,这篇文章总结了一些包括腾讯阿里等公司java面试题,进入互联网大公司朋友们一定不能错过java需要试的朋友们也可以看看java技能的同学到知识

1、对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)

1:成员对象的构造函数   2:基类的构造函数    3:派生类本身的构造函数

A.123           B.231              C.321           D.213

2、递归函数最终会结束,那么这个函数一定?(B)

A. 使用了局部变量       B. 有一个分支不调用自身

C. 使用了全局变量或者使用了一个或多个参数

D. 没有循环调用

3、编译过程中,语法分析器的任务是(BCD)

A. 分析单词是怎样构成的

B. 分析单词串是如何构成语言和说明的

C. 分析语句和说明是如何构成程序的

D. 分析程序的结构

4、同步机制应该遵循哪些基本准则?(ABCD)

A.空闲让进     B.忙则等待      C.有限等待      D.让权等待

5、进程进入等待状态有哪几种方式?(D)

A. CPU 调度给优先级更高的线程       B. 阻塞的线程获得资源或者信号

C. 在时间片轮转的情况下,如果时间片到了   D. 获得 spinlock 未果

6、设计模式中,属于结构型模式的有哪些?(BC)

A. 状态模式        B. 装饰模式       C. 代理模式       D. 观察者模式

7、下面代码的运行结果是(C)

public class Test{
public static void main (String[] args){
List a = null;
test(a);
System.out.println(a.size());
}
public static void test(List a){
a=new arrayList();
a.add(“abc”);
} 
}

A.0    B.1    C.Java.lang.NullPointerException   D.以上都不正确

8、Linux下查看进程占用的CPU的百分比, 使用工具(A)

A. Ps             B. Cat          C. More          D. Sep

9、JVM内存里哪个区域不可能发生OutOfMerncyError(A)

A. 程序计数器        B. 堆         C. 方法区       D. 本地方法栈

10、如果现在需要创建一组任务,他们并行的执行工作,然后进行下一个步骤之前等待,直至所有的任务都完成,而去这种控制可以重用多次,这种情形使用 java.util.concurrent包中引入哪种同步工具最适合(B)

A. CountDownLatch                B. CyclicBarrier

C. Semaphore                      D. FutureTask

11、1 java 中, 为什么基类不能做为 HashMap 的键值, 而只能是引用类型,把引用类型作为HashMap的键值, 需要注意哪些地方?

答:引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。

12、编写一个工具类 StringUtil, 提供方法 int compare(char[] v1 ,char[] v2)方法,比较字符串v1,v2 ,如果按照字符顺序 v1>v2 则 return 1 ,v1=v2 则 return 0, v1

答:public class StringUtil{

int compare(char[] v1,char[] v2) {

 String str1 = new String(v1);

 String str2 = new String(v2);

 int result = str1.compareTo(str2);

 return result == 0 ? 0 : (result > 0 ? 1 : -1);

}

13、Java出现OutOfMemoryError(OOM)的原因有那些?

答:触发java.lang.OutOfMemoryError:最常见的原因就是应用程序需要的堆空间是大的,但是JVM提供的却小。这个的解决方法就是提供大的堆空间即可。除此之外还有复杂的原因:(1)内存泄露:特定的编程错误会导致你的应用程序不停的消耗更多的内存,每次使用有内存泄漏风险的功能就会留下一些不能被 回收的对象到堆空间中,随着时间的推移,泄漏的对象会消耗所有的堆空间,最 终触发java.lang.OutOfMemoryError: Java heap space 错误。

14、解释一下什么是Servlet, 说一说 Servlet的生命周期 ?

答:Servlet 是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web 浏览器或其他 HTTP 客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持 Servlet 的Java虚拟机。

Servlet 生命周期可以分成四个阶段:加载和实例化、初始化、服务、销毁。

当客户第一次请求时,首先判断是否存在 Servlet 对象,若不存在,则由 Web 容器创建对象,而后调用 init()方法对其初始化,此初始化方法在整个 Servlet 生命周期中只调用一次。完成 Servlet 对象的创建和实例化之后,Web 容器会调用 Servlet 对象的 service()方法来处理请求。当Web容器关闭或者Servlet 对象要从容器中被删除时,会自动调用destory()方法。

15、过滤器有哪些作用和用法?

答:对于一个 web 应用程序来说,过滤器是处于web容器内的一个组件,它会过滤特定请求资源请求信息和响应信息。一个请求来到时,web 容器会判断是否有过滤器与该信息资源相关联,如果有则交给过滤器处理,然后再交给目

标资源,响应的时候则以相反的顺序交给过滤器处理,最后再返回给用户浏览器。

常见的过滤器用途主要包括:对用户请求进行统一认证、对用户的访问请求进行记录和审核、对用户发送的数据进行过滤或替换、转换图象格式、对响应内容进行压缩以减少传输量、对请求或响应进行加解密处理、触发资源访问事件等。

16、写出一个冒泡排序

答:从大到小:

public void BigAndSmall(){
int arr[]={-5,29,7,10,5,16};
for(int i=1;i

17、写出一个单例的实现(懒加载方式)

答:

public class LazySingleton {
private LazySingleton(){ 
}
private static class SingletonHolder{
 private static LazySingleton instance = new LazySingleton();
}
public static LazySingleton getInstance(){
 return SingletonHolder.instance;
}
}

 

18、2006年某人连续打工24 天,共赚了190元(日工资10元,星期日工资5元,星期日休息无工资)。已知他打工是从1月下旬的某一天开始的,这个月的1日恰好是星期日,这人打工结束的那一天是 2 月(C)日

A.2月6日             B. 2月14日

C. 2月18日           D. 2月21日

19、由甲地到乙地有一天线路的巴士,全程行驶时间42分钟,到达总站后,司机至少休息10分钟,巴士就掉头行驶,如果这条线路甲,乙两边总站每隔8分钟都发一辆(不必是同一时间),则这条线路至少需要是多少俩巴士(C)

 A. 15           B.14             C. 13           D.12

20、编号为1至10的10个果盘中,每盘都盛有水果,共盛放100个。其中第一盘里有16个,并且编号相邻的三个果盘中水果是的和都相等,求第8盘中水果最多可能有几个(A)

A. 11           B. 12         C. 13          14. 14

上面的20道互联网大公司java面试经典题中,既包含了java各方面的选择题,也包括了简答题和一些java逻辑推理面试题,都是在互联网大公司的java面试中出现的经典面试题目,所以有面试需要的朋友们可以通过这篇面试题的整理,来了解一下大厂公司们的出题风格,也能用这20道题来自测一下。最后希望大家可以顺利的进入互联网大公司。

0人推荐
共同学习,写下你的评论
0条评论
滨崎君
程序员滨崎君

6篇文章贡献37441字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消