99%的面试咯里都会有这些Java面试题
更新时间:2024-01-06 07:02:01 阅读量: 教育文库 文档下载
最近是招聘季,所谓金九银十,正是跳槽的好几节。今天,给大家整理了一些Java面试常考的经典题目,我们一道一道来分析一下。 经典面试题
1、谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗? 考点分析:对于这类笼统的问题,你需要尽量表现出自己的思维深入并系统化,Java 知识理解得也比较全面,一定要避免让面试官觉得你是个“知其然不知其所以然”的人。毕竟明白基本组成和机制,是日常工作中进行问题诊断或者性能调优等很多事情的基础,相信没有招聘方会不喜欢“热爱学习和思考”的面试者。 回归正题,对于 Java 平台的理解,可以从很多方面简明扼要地谈一下,例如:Java 语言特性,包括泛型、Lambda 等语言特性;基础类库,包括集合、IO/NIO、网络、并发、安全等基础类库。对于我们日常工作应用较多的类库,面试前可以系统化总结一下,有助于临场发挥。 下图是我总结的一个相对宽泛的蓝图供你参考。
2、对比Hashtable、HashMap、TreeMap有什么不同?
考点分析:上面的回答,只是对一些基本特征的简单总结,针对Map相关可以扩展的问题很多,从各种数据结构、典型应用场景,到程序设计实现的技术考量,尤其是在Java 8里,HashMap本身发生了非常大的变化,这些都是经常考察的方面。
很多朋友向我反馈,面试官似乎钟爱考察HashMap的设计和实现细节,所以今天我会增加相应的源码解读,主要专注于下面几个方面:
理解Map相关类似整体结构,尤其是有序数据结构的一些要点。 从源码去分析HashMap的设计和实现要点,理解容量、负载因子等,为什么需要这些参数,如何影响Map的性能,实践中如何取舍等。
?
? ?
理解树化改造的相关原理和改进原因。
除了典型的代码分析,还有一些有意思的并发相关问题也经常会被提到,如HashMap在并发环境可能出现无限循环占用CPU、size不准确等诡异的问题。 我认为这是一种典型的使用错误,因为HashMap明确声明不是线程安全的数据结构,如果忽略这一点,简单用在多线程场景里,难免会出现问题。
理解导致这种错误的原因,也是深入理解并发程序运行的好办法。对于具体发生了什么,你可以参考这篇很久以前的分析,里面甚至提供了示意图,我就不再重复别人写好的内容了。
3、Java 提供了哪些 IO 方式? NIO 如何实现多路复用?
考点分析:在实际面试中,从传统 IO 到 NIO、NIO 2,其中有很多地方可以扩展开来,考察点涉及方方面面,比如:
基础 API 功能与设计, InputStream/OutputStream 和 Reader/Writer 的关系和区别。
? ?
?
NIO、NIO 2 的基本组成。
给定场景,分别用不同模型实现,分析 BIO、NIO 等模式的设计和实现原理。
? ?
NIO 提供的高性能数据操作方式是基于什么原理,如何使用?
或者,从开发者的角度来看,你觉得 NIO 自身实现存在哪些问题?有什么改进的想法吗?
IO 的内容比较多,专栏一讲很难能够说清楚。IO 不仅仅是多路复用,NIO 2 也不仅仅是异步 IO,尤其是数据操作部分,会在专栏下一讲详细分析。 4、后台服务出现明显“变慢”,谈谈你的诊断思路?
考点分析:今天我选择的是一个常见的并且比较贴近实际应用的的性能相关问题,我提供的回答包括两部分。
在正面回答之前,先探讨更加精确的问题定义是什么。有时候面试官并没有表达清楚,有必要确认自己的理解正确,然后再深入回答。
?
?
从系统、应用的不同角度、不同层次,逐步将问题域尽量缩小,隔离出真实原因。具体步骤未必千篇一律,在处理过较多这种问题之后,经验会令你的直觉分外敏感。
大多数工程师也许并没有全面的性能问题诊断机会,如果被问到也不必过于紧张,你可以向面试官展示诊断问题的思考方式,展现自己的知识和综合运用的能力。接触到一个陌生的问题,通过沟通,能够条理清晰地将排查方案逐步确定下来,也是能力的体现。
面试官可能会针对某个角度的诊断深入询问,兼顾工作和面试的需求,我会针对下面一些方面进行介绍。目的是让你对性能分析有个整体的印象,在遇到特定领域问题时,即使不知道具体细节的工具和手段,至少也可以找到探索、查询的方向。
我将介绍业界常见的性能分析方法论。
?
?
从系统分析到JVM、应用性能分析,把握整体思路和主要工具。对于线程状态、JVM内存使用等很多方面,我在专栏前面已经陆陆续续介绍了很多,今天这一讲也可以看作是聚焦性能角度的一个小结。 5、谈谈你的GC调优思路?
考点分析:今天考察的GC调优问题是JVM调优的一个基础方面,很多JVM调优需求,最终都会落实在GC调优上或者与其相关,我提供的是一个常见的思路。 真正快速定位和解决具体问题,还是需要对JVM和GC知识的掌握,以及实际调优经验的总结,有的时候甚至是源自经验积累的直觉判断。面试官可能会继续问项目中遇到的真实问题,如果你能清楚、简要地介绍其上下文,然后将诊断思路和调优实践过程表述出来,会是个很好的加分项。
专栏虽然无法提供具体的项目经验,但是可以帮助你掌握常见的调优思路和手段,这不管是面试还是在实际工作中都是很有帮助的。另外,我会还会从下面不同角度进行补充:
涉及具体的GC类型,JVM的实际表现要更加复杂。目前,G1已经成为新版JDK的默认选择,所以值得你去深入理解。
?
?
因为G1 GC一直处在快速发展之中,我会侧重它的演进变化,尤其是行为和配置相关的变化。并且,同样是因为JVM的快速发展,即使是收集GC日志等方面也发生了较大改进。
?
从GC调优实践的角度,理解通用问题的调优思路和手段。
面试者常犯错误
我在面试候选人中经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因:
1、“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。坦白说,我并不放心把具有一定深度的任务交给他。
2、知识碎片化,不成系统。在面试中,面试者似乎无法完整、清晰地描述自己所开发的系统,或者使用的相关技术。平时可能埋头苦干,或者过于死磕某个实现细节,并没有抬头审视这些技术。
面试者常犯错误
我在面试候选人中经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因:
1、“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。坦白说,我并不放心把具有一定深度的任务交给他。
2、知识碎片化,不成系统。在面试中,面试者似乎无法完整、清晰地描述自己所开发的系统,或者使用的相关技术。平时可能埋头苦干,或者过于死磕某个实现细节,并没有抬头审视这些技术。
正在阅读:
99%的面试咯里都会有这些Java面试题01-06
弱水三千%2c只取一瓢饮——围术期液体治疗的再认识08-25
干部档案十大类内容(20150209)11-21
高三生物课程教学总结与反思【优秀4篇】03-28
项目组织结构图 - 姜经理03-06
通用二维运动平台设计04-21
全新版大学英语综合教程3课文原文和翻译04-21
隆回县卫生工作简报10-25
七年级英语上册Unit5LetscelebrateTask教案(新版)牛津版(1)04-07
南京答疑解释05-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 试题
- 面试
- 这些
- Java
- 99
- 2018年一年级数学下册期末质量检测试题 - 图文
- 中铁隧道消防应急演练实施方案
- 缺失的中考学语文新诗教学及其改进策略试
- 2012房地产估价师《制度与政策》备考练习
- 二衬台车内力计算书
- 2.芦花荡
- 008-转动定律
- 诗意的工作总结
- GSM关于切换失败的问题分析
- 厢式和板框式压滤机简介- b2b供应信息 慧聪网供应首页
- 排队练习题
- 杨浦区托幼一览表
- 2014普通高等学校招生全国统一考试 理科综合生物部分新课标2卷
- 会计信息系统作业2
- 2019最新部编版语文四年级上册经典国学诵读系列练习十五
- 《化学能与电能》教学设计及反思
- NEMA和IEC标准定义
- 度米作文汇编之黑龙江哈尔滨中考满分作文350字让我心存感激的人
- 不在澳洲怎么躲过移民监
- 西南政法大学校友总会办公室工作人员联系方式 2007