![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 后端经典面试题
文章平均质量分 92
Java 后端经典面试题
Lorin 洛林
一枚 Java 服务端码农 | 技术交流 | 技术分享 | 拥抱开源 | 开源作者 article-sync-tool | Technology has the power to make the world a better place.
展开
-
直接调用 Java 线程的 run() 方法会发生什么?
`直接调用 run() 方法不会启动一个新的线程,它只是普通方法调用,代码在当前线程中同步顺序执行。`原创 2024-06-25 13:31:33 · 777 阅读 · 0 评论 -
Java8 Optional 的正确用法以及在 Java9 中的增强
Optional 是 Java 8 中引入的一个有趣类,它的设计目的是解决空指针异常(NullPointerException)问题,我们应该好好掌握它,从而让我们在程序代码中更加优雅的处理空指针异常(NullPointerException)问题,使我们的代码具备更好的可读性以及更加健壮。原创 2024-03-15 14:03:14 · 878 阅读 · 0 评论 -
一文读懂函数式接口、Lambda表达式、Stream
Java 8 中引入很多有意思的新特性,本篇文章我们来聊聊其中三个比较重要的特性:`函数式接口、Lambda表达式、Stream流`,我们分别从示例用法、底层原理、最佳实践三个方面来了解这些特性。原创 2024-02-21 18:06:45 · 868 阅读 · 0 评论 -
Java 异常处理下篇:11 个异常处理最佳实践
在前两篇文章中,我们深入研究了 `Java` 异常处理中的 `Throwable` 类和异常处理常用关键字以及 `finally` 使用中的陷阱。在本文中,我们将探讨异常处理的一些最佳实践,这些实践有助于编写更健壮和可维护的程序代码。原创 2024-01-31 17:52:26 · 680 阅读 · 0 评论 -
Java 异常处理中篇:finally 中的陷阱(finally 中 return 会发生什么)
在上一篇文章中,我们介绍了 `Java` 异常的基本概念,`Throwable` 、异常处理关键字:`try-catch-finally、throw、throws`;本篇文章我们将更加深入的了解 `finally` 在异常处理中的常见问题和底层原理。原创 2024-01-30 19:33:37 · 1228 阅读 · 0 评论 -
Java 异常处理上篇: Throwable 详解
Java异常处理是编写稳健、可靠程序的关键组成部分。在Java中,异常是一种程序运行时可能发生的错误或异常情况的表示。异常处理的核心是Throwable类及其子类,它们为我们提供了处理程序执行中出现的问题的机制。本文将深入探讨Throwable类,探索其层次结构、常见的子类以及异常处理的常用关键字。Java异常处理是构建健壮程序的关键组成部分。Throwable类及其子类为我们提供了处理程序执行中出现的问题的框架。通过合理使用和throw,我们能够更好地控制程序的流程,增强程序的可维护性和稳定性。原创 2024-01-29 13:15:30 · 1756 阅读 · 0 评论 -
MySQL 系列:注意 ORDER 和 LIMIT 联合使用的陷阱
不知道大家在在分页查询中有没有遇到过这个问题,分页查询中不同的页中出现了同一条数据,出现了分页错乱的问题:原创 2023-12-13 21:36:16 · 2082 阅读 · 0 评论 -
资深开发居然还分不清 MySQL int(1)、int(20) 的区别
int(1)、int(20) 中指定的位数并不会影响字段的存储大小,而是和零填充(zerofill)联合使用实现对齐填充,实际使用中没有特殊对齐需求,我们配置为int(1)即可。原创 2023-12-04 13:29:20 · 1168 阅读 · 0 评论 -
IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket
对Web端即时通讯技术熟悉的开发者来说,回顾整个网页端IM的底层通信技术发展,从短轮询、长轮询,到后来的SSE以及WebSocket,我们使用的技术越来越先进,使用门槛也越来越低,给大家带来的网页端体验也越来越好。原创 2023-11-27 07:29:10 · 1298 阅读 · 0 评论 -
3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)
WebSocket 是一种在客户端和服务器之间建立实时双向通信的协议。具备全双工、低延迟等优点,适用于实时聊天、多人协助、实时数据展示等场景。原创 2023-11-22 18:33:27 · 2187 阅读 · 0 评论 -
史上最全解析:从输入 URL 到页面展示到底发生了什么?
hello,大家好,我是 Lorin,今天这篇文章我将从浏览器搜索栏键入开始,分析整个流程中发生的重要事件,以及面试中涉及的常见面试题。本篇文章从浏览器搜索栏键入 url 开始,到最后页面渲染完成,分析其中的一些关键环节以及面试常考问题,希望对你有帮助。👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。原创 2023-11-16 17:47:48 · 1006 阅读 · 0 评论 -
黑客帝国中的黑客如何隐藏自己的IP,你不可不知的正向代理和反向代理
正向代理,是一个位于客户端和原始服务器之前的服务器,为了从目标服务器取得内容,客户端向代理服务器发送一个请求并且指定目标服务器,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。一般用于客户端无法直接访问服务端或需要对服务端屏蔽客户端的的场景,需要代理服务器帮我们转发请求,比如我们常见的 VPN。原创 2023-11-15 11:17:59 · 469 阅读 · 0 评论 -
MySQL索引下推:提升数据库性能的关键优化技术
索引下推(Index Condition Pushdown,简称ICP),是 MySQL5.6 版本提供的新特性,核心目标是减少回表查询次数,提高查询效率。原创 2023-11-14 17:33:58 · 683 阅读 · 1 评论 -
图文并茂解读联合索引底层存储结构及索引查找过程
大家好,我是 Lorin ,联合索引(Composite Index)又称复合索引,它包括两个或更多列。与单列索引不同,联合索引可以覆盖多个列,这有助于加速复杂查询和过滤条件的检索。联合索引的列顺序非常重要,因为查询优化器会按照索引列的顺序执行搜索。原创 2023-11-09 17:58:24 · 377 阅读 · 0 评论 -
面试必问系列:MySQL 索引合并优化及底层原理
hello,大家好,我是 Lorin,最近无意中看到一道 MySQL 经典面试题,什么是索引合并,也许有的小伙伴比较疑惑,心里想难道是联合索引?其实并不是,下面我们就来看看什么是索引合并。原创 2023-11-07 16:49:07 · 338 阅读 · 0 评论 -
一文读懂从 CPU 多级缓存 & 缓存一致性协议(MESI)到 Java 内存模型
MESI 缓存一致性协议中为了尽可能的提高性能,引入了 Store Bufferes & Invalidate Queue ,将数据具体的失效时机和写入时间交给了内存屏障控制,而 JMM 则基于内存屏障保证数据的可见性。原创 2023-11-05 14:04:05 · 1062 阅读 · 2 评论 -
【Java对象】一文读懂 Java 对象庐山真面目及指针压缩
一个 Java 对象由三部分组成:对象头、实例数据、对齐数据,其中对象头分为 mark word 标记字和 class point 类元数据指针。原创 2023-11-04 22:34:51 · 344 阅读 · 0 评论 -
单例模式下双重校验锁 DCL 的灵魂三问
hello,大家好,我是 Lorin,今天给大家带来双重校验锁的灵魂三问?以及我们如何一步步实现一个懒汉式单例。开始阅读前,大家可以思考下面三个问题:原创 2023-10-31 12:43:54 · 974 阅读 · 0 评论 -
RSA 加密算法的原理与加密过程深度解析(下篇)
hello,大家好,我是 Lorin,这是 RSA 算法解密的第二期 “RSA 加密算法的原理与加密过程深度解析” 主要介绍如何使用上期学到的数论知识来实现 RSA 加解密过程。原创 2023-10-30 17:58:33 · 405 阅读 · 0 评论 -
你真的了解 Java 普通数组?
大家好,我是 Lorin,数组是我们日常开发中使用非常广泛的一种数据结构,但是大家真的已经了解它了?我们最大可以开辟多大的数组?数组底层如何存储?什么时候我们应该选择数组?接下来我和大家一起来一一解决这些问题。原创 2023-10-29 23:30:06 · 154 阅读 · 0 评论 -
揭秘 Java 字符串类:String、StringBuffer 和 StringBuilder 的奥秘
String、StringBuffer、StringBuilder 在 JVM 内存中的分布,以及面试常问:Java 不同字符类会创建几个对象?原创 2023-10-13 13:26:50 · 183 阅读 · 0 评论 -
面试官:Java 对象是值传递还是引用传递?
Java 值传递和引用传递一直值讨论比较多的话题,本文将结合概念和案例做一个详细的介绍。原创 2023-10-11 18:41:42 · 110 阅读 · 0 评论 -
从入门到精通:Java线程池原理 3W 字长文全面指南
大家好,我是 Lorin。随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。本文从线程池概念和用途开始介绍,然后接着结合线程池的源码,领略线程池的设计思路,最后结合实践介绍线程使用的一些常见案例以及线程池参数配置难题引出动态线程池。原创 2023-10-10 20:34:27 · 124 阅读 · 1 评论 -
经典面试题:SpringBoot 应用可以同时并发处理多少请求
hello,大家好,我是你们的老朋友 Lorin,最近逛帖子看到一个面试题:SpringBoot 应用可以同时并发处理多少请求?看到这个问题大多数朋友也许都会回答 200,这样你也许第二天就会收到如下拒信原创 2023-10-03 17:21:00 · 280 阅读 · 0 评论 -
MySQL 不同存储引擎下 count(*) count(1) count(field) 结果集和性能上的差异,不要再听网上乱说了
MySQL 不同存储引擎下 count(*) count(1) count(field) 结果集和性能上的差异原创 2023-09-24 17:37:04 · 121 阅读 · 1 评论 -
终于懂了 Java 中的各种锁
Java 中提供了种类丰富的锁,每种锁因有不同的特性在不同的场景能够展现出较高的性能,本文在概念的基础上结合源码 + 使用场景进行举例,让读者对 Java 中的锁有更加深刻的认识原创 2023-09-26 12:59:23 · 107 阅读 · 0 评论 -
一文读懂五大 IO 模型的前世今生( select、epoll、epoll)
计算机编程中,IO模型是描述程序与输入/输出操作之间交互方式的抽象概念。不同的IO模型可以影响程序的性能、可扩展性和资源利用效率。我们常见有五种 IO 模型:阻塞式 IO、非阻塞式 IO 、IO 多路复用、信号驱动 IO、异步 IO。原创 2023-09-24 09:56:15 · 62 阅读 · 1 评论 -
终于理解了多线程中不得不谈的并发三大性质
并发是计算机科学领域的重要概念,它涉及到多个任务或操作在同一时间段内执行的能力。并发有三大性质,分别是:原子性、有序性、可见性。原创 2023-09-27 10:16:08 · 143 阅读 · 1 评论 -
JUC 中的另一重要大杀器 AQS 抽象队列同步器
AQS 全称是 AbstractQueuedSynchronizer,是 Java 并发包中的一个抽象类,用于构建各种同步器和锁,如 ReentrantLock、CountDownLatch、Semaphore 等。原创 2023-09-30 08:51:31 · 111 阅读 · 0 评论 -
高效的 CAS (Compare and Swap)
CAS 全称 Compare and Swap,是 Java 中提供的一个原子操作,是一种高效且线程安全的并发编程技术。原创 2023-09-29 10:19:48 · 135 阅读 · 1 评论 -
经典面试题:多线程如何循环顺序打印 123
今天继续带来了多线程系列知识分享,想必大家面试时都遇到一个经典的面试题:用多线程实现循环打印123?原创 2023-09-25 12:45:21 · 401 阅读 · 1 评论