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

简介: 金三银四了,3月底,4月初,找工作换单位的黄金时期。4月初将会有有一大批职场人士流动。。。作为Java开发码农的你是不是也在蠢蠢欲动,或者已经搞了几轮车轮战了?我们为大家准备了 77 道经典 Java 面试题,如果你面试不力,基础还不够强,那么你或许会受用!

image.png

金三银四了,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、抽象的定义?抽象和封装的不同点?


相关文章
|
6天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
11天前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
1天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
9 2
|
8天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
28 4
|
9天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
41 4
|
1月前
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
79 1
Java面试题之Java集合面试题 50道(带答案)
|
21天前
|
存储 Java 程序员
Java面试加分点!一文读懂HashMap底层实现与扩容机制
本文详细解析了Java中经典的HashMap数据结构,包括其底层实现、扩容机制、put和查找过程、哈希函数以及JDK 1.7与1.8的差异。通过数组、链表和红黑树的组合,HashMap实现了高效的键值对存储与检索。文章还介绍了HashMap在不同版本中的优化,帮助读者更好地理解和应用这一重要工具。
45 5
|
20天前
|
存储 Java
[Java]面试官:你对异常处理了解多少,例如,finally中可以有return吗?
本文介绍了Java中`try...catch...finally`语句的使用细节及返回值问题,并探讨了JDK1.7引入的`try...with...resources`新特性,强调了异常处理机制及资源自动关闭的优势。
18 1
|
29天前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
25 3
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
397 37