Java 面试题大全及答案大全(共 2000+,2022最新版)

2022-08-16
阅读 12 分钟
3k
栈长整理了 2022 年最新、最全的 Java 面试题,题目涉及 Java 基础、集合、多线程、IO、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等。
封面图

写了一首 Java 表白诗,女朋友不愁了!

2020-02-14
阅读 1 分钟
1.9k
祝大家情人节快乐一首原创 Java 诗表白大家了遇见你的第一天忍不住内心的躁动我在心里开辟了一块你的内存区域和你的每一次美好邂逅我都封装成记忆深深将它压入堆栈舍不得让它逃逸追求你的队列很长并发很高我也加入了竞争拼命挣抢着你的爱情锁却被一直阻塞着想念的接口没有回应我不断休眠重试结果异常中断了我彻底失去了...

20200202,千年难遇啊!

2020-02-02
阅读 2 分钟
1.9k
本文收录在Java技术栈Github,欢迎Star:[链接] 已经在家好几天没出门了,是不是都憋疯了?今天又是个特殊的日子,我来给大家分享一个节日小知识。 20200202 为什么说是千万难遇的一天? 因为今天是:世界完全对称日,很少遇见,看起来和回文数差不多,如: 2020 倒过来就是 0202,拼在一起就是:20200202 这个节日是否...

switch多值匹配骚操作,带你涨姿势!

2020-01-02
阅读 2 分钟
2k
我们都知道 switch 用来走流程分支,大多情况下用来匹配单个值,如下面的例子所示: {代码...} 相关阅读:switch case 支持的 6 种数据类型。 大概的意思就是,周一到周五输出:1,周六到周日输出:0,默认输出-1。 这样写,很多重复的逻辑,冗余了。 也许这个例子不是很合适,用 if/ else 更恰当,但这只是个例子,实际...

不能用 + 拼接字符串? 这次我要吊打面试官!

2019-12-23
阅读 3 分钟
4.1k
我们做 Java 程序员以来,不管是工作当中,还是面试过程中,都知道:字符串拼接不能用 String,要用 StringBuilder 或者是 StringBuffer,以至于它们都被滥用了。

疯了!同事又问我为什么不能用 isXXX

2019-12-12
阅读 2 分钟
3k
最近在做Code Review,写下了这篇文章:代码写成这样,老夫无可奈何!,说多了都是泪啊。。 最近又有人同事跑过来质疑我: 为什么变量名取名不能用 isXXX 这种方式,这样有什么问题?! 醉了,讲了好多次都记不住,我让他自己去看阿里巴巴的《Java开发手册》,或者自行百度,说实话,有点工作经验人都知道,这都是基础的...

Spring Boot 构造器参数绑定,越来越强大了!

2019-11-29
阅读 3 分钟
3.6k
在之前的文章:Spring Boot读取配置的几种方式,我介绍到 Spring Boot 中基于 Java Bean 的参数绑定,在一个 Java Bean 类上用 @ConfigurationProperties 注解标识(更多 Spring Boot 的教程请关注公众号 "Java技术栈" 在后台回复:boot)。

GitHub for mobile 来了,码农苦逼了!

2019-11-18
阅读 1 分钟
4.3k
北京时间 2019 年 11 月 14 日 GitHub Universe 2019 大会上,GitHub 正式发布了 GitHub for mobile,即 GitHub 的移动版本,支持 iOS 与 Android 两大平台。

Spring Cloud 升级最新 Greenwich 版本,舒服了~

2019-11-14
阅读 2 分钟
4.7k
Greenwich发布也快 1 年了,栈长迟迟没有升级,距离上个大版本升级一年多了,所以栈长最近将 Spring Cloud 升级到了 Greenwich,几乎没踩多少坑,但也有坑,这里再记录分享一下,希望对你有用。

Spring Boot 2.2.1 发布,一个有点坑的版本!

2019-11-11
阅读 2 分钟
3.4k
Spring Boot 2.2.0 没发布多久,Spring Boot 2.2.1 又发布了,这是一个很有意思,又有点 "坑" 的一个版本。

歪国人整理的 2019 年 Java 开发路线图,值得参考!

2019-11-06
阅读 4 分钟
2.9k
在此,我将向大家展示一张根据自己多年经验总结出的路线图。该路线图在保持简单可行的基础上,介绍了各种具有业界标准、且方便多数人遵循的工具和程序库。

Spring Boot 之配置导入,强大到不行!

2019-10-31
阅读 2 分钟
2.2k
我们知道在 Spring Boot 中可以用一个 @Configuration 配置文件来配置所有 Bean 及其他配置(不会的看这篇文章:Spring零配置之@Configuration注解详解),但其实没必要这么做。

Spring Boot 怎么打一个可执行 Jar 包?

2019-10-29
阅读 3 分钟
3.1k
Java 支持打 Jar 包,但没有提供一个标准的方式在一个 Jar 包内再加载嵌入别的 Jar 包,一般需要扩展类加载器来实现,即使这样,也做不到打成一个包运行,因为没有 Servlet 容器。

代码写成这样,老夫无可奈何!

2019-10-17
阅读 3 分钟
2.4k
你见过最无可奈何的代码是什么? 今天,栈长就来总结一下我遇到过的一些神逻辑代码,不一定很全,但我真心写不出,真心让我自叹不如啊! 1、耍猴的最佳手段 还记得 XX 手机的抢购活动么,抢购按钮的代码类似是这样的: {代码...} 活动还没开始就结束了。。 后面有人挖出来这段神逻辑,大家真是哭晕在厕所了,还好,抢购...

在外包干了三年,我废了……不吹不黑!

2019-10-08
阅读 3 分钟
7.6k
去年国庆,栈长分享了一次我的真实相亲经历:《一个程序员的国庆血泪相亲史,惨败而归…》,大家反响爆蓬,感觉十分有意思,今年国庆我再来分享一下我在外包的真实经历,是不是很想听? 没错,栈长也干过外包,一干就是三年,三年后,我废了…… 虽说废的不是很彻底,但那三年我几乎是出差了三年、玩了三年、荒废了三年,那...

国庆加了三天班,公司不给钱,咋办?

2019-10-08
阅读 1 分钟
1.8k
没错,栈长我就遇到过这样的事情,那是在行业内还是小有名气和规模的中大型公司。国庆让我加了三天班,居然不想给钱?(&……×(@¥!……&,粗话就不说了)

面试官问线程安全的List,看完再也不怕了!

2019-09-27
阅读 3 分钟
2.1k
最近在Java技术栈知识星球里面有球友问到了线程安全的 List: 扫码查看答案或加入知识星球 栈长在之前的文章《出场率比较高的一道多线程安全面试题》里面讲过 ArrayList 的不安全性。 那么面试官会问你,既然 ArrayList 是线程不安全的,怎么保证它的线程安全性呢?或者有什么替代方案? 往下看,看我如何碾压他! 大部...

年轻人的第一个自定义 Spring Boot Starter!

2019-09-18
阅读 4 分钟
2.1k
陆陆续续,零零散散,栈长已经写了几十篇 Spring Boot 系列文章了,其中有介绍到 Spring Boot Starters 启动器,使用的、介绍的都是第三方的 Starters ,那如何开发一个自己的 Spring Boot Starter 呢?

这个中秋,我用 Java 画了一个月饼!

2019-09-16
阅读 2 分钟
2.1k
栈长代表微信公众号 "Java技术栈" 祝所有粉丝中秋佳节快乐! 为了用一种特殊的方式表达我的心意,去年中秋节,我写了这篇文章: 为了写中秋这篇文章,我学了 20 种编程语言! 没错,去年一天,我学了 20 种编程语言,刺激。。 看过这篇文章的在下面留个言,是时候露个脸了,你已经是微信公众号 "Java技术栈" 的铁粉了,...

线程休眠只会用Thread.sleep?那你就弱爆了!

2019-08-30
阅读 2 分钟
6.2k
咱大多数程序员,多线程虽然学得不好,但线程休眠,无人不知,无人不晓,也都会用,不就是用 Thread.sleep 方法嘛!而且还将它用到那么绝,之前不是还有人写过休眠排序算法和休眠取时间的算法,再来回味下这么脑洞大开的两个算法:

公司不用 Spring Boot,果断离职了!

2019-08-26
阅读 2 分钟
1.9k
面试回答离职原因简直特么就是巨坑,我也因此在微信公众号 “Java技术栈” 写了这篇文章《[过了所有技术面,却倒在 HR 一个问题上。。]([链接]》,希望可以给职场小白一点点经验,少走弯路。

Java 12 骚操作, 文件比对居然还能这样玩!

2019-08-21
阅读 2 分钟
2.8k
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 之前分享了一些 Java 12 的骚操作,今天继续,今天要分享的是 Java 12 中的文件比对骚操作。 我们或多或少会遇到这样的需求:怎么比对两个文件中的内容一样? 你会把两个文件中的内容拉出来一个个字符对比,然后提交一大堆不怎么优雅的代...

Java 12 骚操作, switch居然还能这样玩!

2019-08-21
阅读 2 分钟
3.1k
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! Java 12 中对 switch 的语法更友好了,建议大家看下栈长在Java技术栈微信公众号分享的《switch case 支持的 6 种数据类型!》,对理解 switch 更有帮助。 那么在 Java 12 中可以怎样玩 switch? 先来定义一个枚举类: {代码...} Java 12 之...

Java 12 骚操作, String居然还能这样玩!

2019-08-14
阅读 3 分钟
2.5k
Java 13 都快要来了,12必须跟栈长学起! Java 13 即将发布,新特性必须抢先看! 栈长之前在Java技术栈微信公众号分享过《Java 11 已发布,String 还能这样玩!》这篇文章,介绍了 Java 11 的 String 新玩法,让大家耳目一新。 Java 12 已经发布数月了:Java 12 正式发布,8大新特性!,今天我再来分享下在 Java 12 中关...

Spring Boot YML 掀翻 Properties!!

2019-08-01
阅读 2 分钟
2.2k
那么,这两种格式的配置文件到底有哪些区别呢?哪个更好?能不能替换代替?今天,栈长就来解开这些谜团,看 YML 能不能掀翻Properties。。。

推荐一款阿里开源的 Java 诊断工具,好用到爆!

2019-07-31
阅读 5 分钟
11.1k
Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux、Mac、Windows 操作系统,命令还支持使用 tab 键对各种信息的自动补全,诊断起来非常利索。

Java 8 创建 Stream 的 10 种方式,我保证你受益无穷!

2019-07-17
阅读 3 分钟
2.6k
之前栈长分享过 Java 8 一系列新特性的文章,其中重点介绍了 Stream. 获取上面这份 Java 8~12 系列新特性干货文章,请在微信搜索关注微信公众号:Java技术栈,在公众号后台回复:java。 今天来分享下在 Java 8 中创建 Stream 的 10 种方式,我就整理了 10 种,其实还有更多,仅供大家参考学习下。 1、Stream.of 可变参数...

到底什么是重入锁,拜托,一次搞清楚!

2019-06-27
阅读 3 分钟
2k
相信大家在工作或者面试过程中经常听到重入锁这个概念,或者与关键字 synchrozied 的对比,栈长面试了这么多人,80%的面试者都没有答对或没有答到点上,或者把双重效验锁搞混了,哭笑不得。。

面试问我 Java 逃逸分析,瞬间被秒杀了。。

2019-06-14
阅读 3 分钟
4k
记得几年前有一次栈长去面试,问到了这么一个问题: Java中的对象都是在堆中分配吗?说明为什么! 当时我被问得一脸蒙逼,瞬间被秒杀得体无完肤,当时我压根就不知道他在考什么知识点,难道对象不是在堆中分配吗?最后就没然后了,回去等通知了。。 这个面试题很经典,我最近也分享到了知识星球上面: 回答很精彩,大家可...

坑爹的 Java 可变参数,把我整得够惨。。

2019-06-10
阅读 2 分钟
11.1k
最近在写一个功能点,用了 Java 中的可变参数,真是把我搞得够惨。。 什么是可变参数? 就是方法参数用 Object... args 三个点形式,一个参数可以接收多个参数。 实际的代码就不帖了,来看这个示例吧: 示例1 {代码...} 大家猜结果是什么?结果如我们想象: {代码...} 示例2 {代码...} 我把 "666" 移到了子方法里面,放...