Java 面试题经典 77 问(含答案)!

金三银四了,3月底,4月初,找工作换单位的黄金时期。4月初将会有有一大批职场人士流动。。。

作为Java开发码农的你是不是也在蠢蠢欲动,或者已经搞了几轮车轮战了?

我们为大家准备了 77 道经典 Java 面试题,如果你面试不力,基础还不够强,那么你或许会受用!

1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

2、JDK和JRE的区别是什么?

3、static关键字是什么意思?Java中是否可以覆盖(override)一个private或者是 static的方法?

4、是否可以在static环境中访问非static变量?

5、Java支持的数据类型有哪些?什么是自动拆装箱?

6、Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

7、Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

8、Java支持多继承么?

9、接口和抽象类的区别是什么?

10、什么是值传递和引用传递?

11、进程和线程的区别是什么?

12、创建线程有几种不同的方式?你喜欢哪一种?为什么?

13、概括的解释下线程的几种可用状态。

14、同步方法和同步代码块的区别是什么?

15、什么是死锁(deadlock)?

16、如何确保N个线程可以访问N个资源同时又不导致死锁?

17、Java集合类框架的基本接口有哪些?

18、为什么集合类没有实现Cloneable和Serializable接口?

19、什么是迭代器(Iterator)?

20、Iterator和ListIterator的区别是什么?

21、快速失败(fail-­fast)和安全失败(fail-­safe)的区别是什么?

22、Java中的HashMap的工作原理是什么?

23、hashCode()和equals()方法的重要性体现在什么地方?

24.HashMap和Hashtable有什么区别?

25、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是 ArrayList?

26、ArrayList和LinkedList有什么区别?

27、Comparable和Comparator接口是干什么的?列出它们的区别。

28、什么是Java优先级队列(Priority Queue)?

29、你了解大O符号(big-­O notation)么?你能给出不同数据结构的例子么?

30、如何权衡是使用无序的数组还是有序的数组?

31、Java集合类框架的最佳实践有哪些?

32、Enumeration接口和Iterator接口的区别有哪些?

33、HashSet和TreeSet有什么区别?

34、System.gc()和Runtime.gc()会做什么事情?

35、finalize()方法什么时候被调用?析构函数(finalization)的目的是什么?

36、果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?

37、Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

38、串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?

39、在Java中,对象什么时候可以被垃圾回收?

40、JVM的永久代中会发生垃圾回收么?

41、Java中的两种异常类型是什么?他们有什么区别?

42、Java中Exception和Error有什么区别?

43、throw和throws有什么区别?

44、异常处理完成以后,Exception对象会发生什么变化?

45、finally代码块和finalize()方法有什么区别?

46、什么是JDBC?

47、解释下驱动(Driver)在JDBC中的角色。

48、Class.forName()方法有什么作用?

49、PreparedStatement比Statement有什么优势?

50、什么时候使用CallableStatement?用来准备CallableStatement的方法是什么?

51、数据库连接池是什么意思?

52、什么是RMI?

53、什么是分布式垃圾回收(DGC)?它是如何工作的?

54、解释下Serialization和Deserialization。

55、什么是Servlet?

56、说一下Servlet的体系结构。

57、GenericServlet和HttpServlet有什么区别?

58、解释下Servlet的生命周期。

59、doGet()方法和doPost()方法有什么区别?

60、什么是服务端包含(Server Side Include)?

61、什么是Servlet链(Servlet Chaining)?

62、如何知道是哪一个客户端的机器正在请求你的Servlet?

63、HTTP响应的结构是怎么样的?

64、什么是cookie?session和cookie有什么区别?

65、浏览器和Servlet通信使用的是什么协议?

66、什么是HTTP隧道?

67、sendRedirect()和forward()方法有什么区别?

68、什么是URL编码和URL解码?

69、JSP请求是如何被处理的?

70、什么是JSP指令(Directive)?JSP中有哪些不同类型的指令?

71、什么是JSP动作(JSP action)?

72、隐含对象是什么意思?有哪些隐含对象?

73、面向对象软件开发的优点有哪些?

74、封装的定义和好处有哪些?

75、多态的定义?

76、继承的定义?

77、抽象的定义?抽象和封装的不同点?

原文发布于微信公众号 - Java技术栈(javastack)

原文发表时间:2018-03-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大史住在大前端

野生前端的数据结构基础练习(2)——队列

循环队列书中并没有提及,它是一种特殊的队列。简单理解就是将基本队列只当做存储结构,而使用front和rear两个指针分别代表队列的头和尾,实际对外表现的队列是f...

2163
来自专栏Java Web

Java 面试知识点解析(四)——版本特性篇

1365
来自专栏10km的专栏

java:基于volatile和Thread Local Storage的双重检查锁定实现延迟初始化

总在同一个地方栽坑里是不可原谅的,以本文做个记录,以防下次再犯。 下面这段很简单的基于双重检查锁定(Double-checked locking)实现的延迟...

2497
来自专栏java达人

Java中的堆和栈的区别

当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更...

2296
来自专栏逸鹏说道

C# 温故而知新:Stream篇(五)上

MemoryStream 目录: 1 简单介绍一下MemoryStream 2 MemoryStream和FileStream的区别 3 通过部分源码深入了解下...

4055
来自专栏博岩Java大讲堂

Java虚拟机--对象内存布局

3596
来自专栏抠抠空间

JSON和Django内置序列化

JSON 什么是JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数...

3676
来自专栏黑泽君的专栏

day19_java基础加强_动态代理+注解+类加载器

        Proxy Pattern(即:代理模式),23种常用的面向对象软件的设计模式之一。         代理模式的定义:为其他对象提供一种代理以控...

1164
来自专栏Netkiller

java 脚本引擎

本文节选自《Netkiller Java 手札》 第 18 章 java 脚本引擎 目录 18.1. Maven 18.2. Helloworld 18.3. ...

3985
来自专栏java一日一条

最全面的 Android 编码规范指南

这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范。该文档仅供参考,只要形成一个统一的风格,见量知其意就可...

1604

扫码关注云+社区

领取腾讯云代金券