Java 面试复习_7

Java后端面试7天冲刺:从八股文到实战的系统复习指南 这次我们来看一个针对Java后端面试的八股文学习项目。这个项目号称“7天刷完面试所需的Java后端八股文,面试通过率95%”,覆盖了从Java基础、并发编程、JVM、MySQL到Spring全家桶等核心后端技术栈,并包含了场景题。对于正在准备面试的开发者来说,这听起来像是一个高效、集中的复习方案。 本文的核心不是讨论“7天”是否足够,而是拆解这个学习路径的可行性、内容结构,以及如何将其转化为可执行的、高效的复习计划。我们将重点关注这套八股文的知识体系完整性、学习节奏安排、以及如何结合实践进行巩固,最终目标是 阅读详情

2019-5-30
作者:水不要鱼

(注:能力有限,如有说错,请指正!)

  • JVM 垃圾收集器

如果说垃圾收集算法是接口,那垃圾收集器就是接口的实现了。由于现在 JVM 上一般都会使用分代垃圾回收机制,也就是将堆进一步分为
新生代和老年代,根据不同区域的特点进一步选择具体的垃圾回收算法和垃圾回收器,一般来说新生代使用的是复制算法,老年代使用的是
标记清除算法或标记整理算法,同理,针对不同的区域也会有不同的垃圾收集器。目前在 JVM 中有以下几种常用的垃圾收集器:

  1. Serial(用于新生代)/ Serial Old(用于老年代)
  2. Parallel Scavenge(用于新生代)/ Parallel Old(用于老年代)
  3. ParNew(用于新生代)
  4. CMS(用于老年代)
  5. G1(新生代和老年代都能用)

不同的业务对于垃圾收集的要求不一样,你可以组合不同的垃圾收集器,比如新生代选择一个,老年代选择另外一个,都可以,但是有些垃圾收集器是不可以一起组合使用的。
不管怎么组合,我们要知道没有完美的垃圾收集器,只有适合的垃圾收集器,所以我们只聊它们的特点,不对比谁好谁坏。

  1. Serial(用于新生代)/ Serial Old(用于老年代)

从名字就能看出来,这是两个单线程的垃圾收集器。其实应该叫一个,因为两个是一样的,只是针对的区域不一样。
这两个垃圾收集器的“单线程”不仅仅是说收集垃圾的时候是单线程,还指整个垃圾收集的过程都是单线程,也就意味在执行垃圾收集的时候,
用户线程是不会执行的,业务就会暂时不可用,这段不可用的时期被称为 STW(Stop The World)。Serial 是针对新生代的,使用复制算法来收集垃圾,
而 Serial Old 是针对老年代的,使用标记整理来收集垃圾。

  1. Parallel Scavenge(用于新生代)/ Parallel Old(用于老年代)

这两个垃圾收集器和 Serial / Serial 很像,只是使用多线程来收集垃圾,而且更多的是关注吞吐量,也就是用户 CPU 时间比值。
上面说过垃圾收集器会存在一个 STW 时间段,就是说在收集垃圾的时候不能执行用户代码,而这两个垃圾收集器虽然是多线程的,但是还是有
STW 这个停顿时间段存在。Parallel Scavenge 是针对新生代的,使用复制算法来收集垃圾,而 Parallel Old 是针对老年代的,
使用标记整理来收集垃圾。

  1. ParNew(用于新生代)

这个垃圾收集器和 Serial / Serial 很像,只是它也是多线程的,和 Parallel Scavenge / Parallel Old 也很像,只是它能和 CMS 垃圾收集器配合使用。
上面说过,ParNew 是针对新生代的,而且不存在 ParNew Old 之类的针对老年代的收集器,所以它可以和 CMS 这个老年代收集器配合使用算是补偿吧。
它使用的垃圾收集算法是复制算法。

  1. CMS(用于老年代)

这是个针对老年代的收集器,而且关注点是最短回收停顿时间,也就是说希望 STW 时间尽可能短。它是多线程的,而且和之前的收集器都不一样的是
它使用标记清除算法,这就意味着它收集之后的内存空间是不连续的,如果这时候需要分配一个大对象,可能就需要进行一次整理甚至是执行 Full GC 了。
另外,这个收集器有一个很神奇的地方在于,它允许用户线程同时进行,也就是业务在执行的时候同时执行 GC !这个看起来很神奇,实际上不完全是好事。
首先,业务在执行的时候同时执行 GC 意味着要将 CPU 时间分一部分出来给 GC,如果业务需要的 CPU 资源比较多,就可能导致资源出现争用的问题。
再一个就是,由于在 GC 时程序还在执行,这就有可能还会产生垃圾,这部分新产生的垃圾就被称为浮动垃圾。这就说明这个 GC 没办法针对一整个区域,
如果 GC 清理占用的内存使得程序内存不足,就会启动 Serial Old 来清理了。
这个垃圾收集器有如下几个过程:

  • 初始标记(这个部分存在 STW)
  • 并发标记
  • 重新标记(这个部分存在 STW)
  • 并发清除
  1. G1(新生代和老年代都能用)

这个多线程而且老少通吃(新生代和老年代)的垃圾收集器号称最新高科技收集器,并且打算替换 CMS 收集器。它将整个区域分为多个 Region 区域,
整体使用标记整理算法收集垃圾,而对于两个 Region 是使用复制算法来收集垃圾的,但都是可以整理出完整的连续内存空间的算法。
它分为以下几个阶段:

  • 初始标记(这个部分存在 STW)
  • 并发标记
  • 最终标记(这个部分存在 STW)
  • 筛选回收(这个部分存在 STW)

对象在内存上的分配策略

主要有几个分配策略:

  1. 对象优先在 Eden 区分配

之前说过,对象不一定在堆上,也有可能在栈上分配,这是由于 JIT 编译器使用变量逃逸进行优化导致的情况。
但是绝大多数情况都是在堆上分配,而且优先在 Eden 区进行分配。

  1. 大对象和长期存活的对象直接进入老年代

今晚就到这里,晚安!

Java后端面试7天冲刺:系统化复习八股文与场景题实战 Java作为企业级应用开发的核心语言,其知识体系涵盖语言基础、并发编程、JVM虚拟机、数据库与主流框架等多个维度。理解这些技术的底层原理,如JVM内存模型、Spring IOC容器机制、MySQL索引与事务实现,是构建高性能、高可用后端系统的基石。掌握这些原理不仅能提升代码质量,更能有效解决分布式场景下的并发控制、数据一致性等工程难题。对于即将参加Java后端岗位面试的开发者而言,如何高效整合这些零散且深度的知识点,并通过场景题训练将理论转化为解决实际问题的能力,成为面试成功的关键。本文聚焦于Java并发编 阅读详情

相关推荐

7天速成八股文:Java后端面试高频考点复习清单

技术面试的核心挑战,在于将零散的基础知识组织成清晰、有逻辑的口头表达。对于Java后端岗位而言,HashMap的底层结构、JVM内存模型、并发机制、TCP三次握手、MySQL索引与Redis缓存等,都是面试官高频考察的知识点。理解这些原理,并形成结构化的答题框架,是提升面试表现的关键。八股文复习的本质,是借助系统化的考点索引,将“知道”转化为“能讲出来”。无论是备战春招、暑期实习,还是准备跳槽,一套覆盖Java核心、操作系统、网络、数据库与分布式的7天速成计划,都能帮助候选人在高压环境下稳定输出,将背诵内化

weixin_30621959的博客 493

Java面试7天突击:高频考点与实战复习路线

在Java技术面试中,系统化复习是提升通过率的关键。理解Java虚拟机(JVM)内存模型、垃圾回收机制以及并发编程中的锁与线程池原理,是构建稳固知识体系的基础。这些核心原理不仅决定了程序性能与稳定性,更是面试中考察开发者深度的重要标尺。从技术价值看,掌握JVM调优能有效解决线上OOM问题,而精通并发工具类(如ReentrantLock、CountDownLatch)则能提升高并发场景下的系统设计能力。在实际应用场景中,无论是微服务架构下的Spring Bean生命周期管理,还是数据库MySQL的索引优化与事

weixin_33946605的博客 848

Java后端面试7天速成:从HashMap到Spring的系统复习指南

在Java后端开发领域,掌握核心数据结构与算法是构建高性能应用的基础。以HashMap为例,其底层通过数组、链表与红黑树的组合,结合哈希函数与扩容机制,实现了高效的键值对存储与检索,这体现了数据结构设计对性能的直接影响。理解其原理,如哈希冲突解决和并发安全,是进行系统调优和设计分布式缓存等组件的关键。这种从基础数据结构到系统架构的贯通能力,正是高级工程师解决复杂工程问题(如高并发场景下的数据一致性)的核心价值。本文将围绕HashMap、JVM、并发编程及Spring等核心技术栈,提供一个系统性的复习框架,帮

weixin_33508411的博客 298

被某大厂裁员后,我拿下阿里P7岗offer(附Java面试题+复习方法)

众所周知,互联网行业是一个说变就变的行业,随着互联网的飞速发展,涌现了一大批新兴互联网行业,在这个行业里,巨头企业也在不停地更换中。而对于程序员来说,可能一不小心就要面临裁员的危机,毕竟在这个行业里,人才太多,而在互联网寒冬的今年,我也不幸被裁员,加入到了失业大军。 值得高兴的是,在被裁员的3个月之后,我面试阿里成功拿下P7岗的offer,这3个月的时间里,我并未气馁,也未选择转行,而是静下心来复习好一些理论,鼓起了勇气给阿里投了我的简历。 以下附上我这次面试阿里支付宝团队的面试题以及我个人的复习方法和学

weixin_47067712的博客 608

Java后端面试7天冲刺:从HashMap到Spring Boot的高效复习指南

1. 这个“急救包”到底想解决什么问题? 如果你正在准备Java后端开发面试,尤其是针对1-3年经验的岗位,面对网上浩如烟海的八股文和面经,感觉无从下手、效率低下,那么这个“每天2小时,7天搞定”的思路,就是为你准备的。它不是一个全新的知识体系,而是一个 高强度、高密度的面试冲刺计划 。核心价值在于帮你把散落在各处的核心考点——从Java基础(HashMap、JVM)到并发编程,再到数据库(MySQL、Redis)和主流框架(Spring)——串联成一个可执行的复习路径。 很多人复习的误区是“摊大饼”,什么

weixin_34319111的博客 371

2026年Java后端面试高频考点解析:7天系统复习指南

面向对象编程(OOP)作为软件开发的核心理念,通过封装、继承和多态三大特性实现代码的模块化和复用。其原理基于类与对象的关系模型,通过方法重载实现编译时多态,方法重写实现运行时多态,这种设计模式显著提升了代码的可维护性和扩展性。在Java后端开发中,OOP思想与并发编程、JVM调优等技术结合,能够构建高可用分布式系统。特别是在面试场景下,HashMap的线程安全机制和ConcurrentHashMap的分段锁原理成为衡量候选人并发掌握程度的重要指标。通过理解GC算法的标记-清除、复制等核心机制,开发者可以针对

weixin_34378969的博客 457

Java后端面试7天冲刺:95%通过率的核心考点与高效复习路径

这次我们来看一个针对 Java 后端面试的“7天速成”学习计划。对于正在求职或准备跳槽的 Java 开发者来说,面对海量的面试题和知识点,如何高效、系统地复习,是一个普遍存在的痛点。这个计划的核心价值在于,它不是一个简单的题库罗列,而是一套经过设计的、旨在短期内集中突破核心考点的学习路径,目标是实现高达 95% 的面试通过率。 这个计划覆盖了 Java 后端面试的几乎所有核心领域:从 Java 基础、并发编程、JVM 原理,到 MySQL、Spring 全家桶,甚至还包括了能拉开差距的场景题。它的重点不是让

weixin_30568591的博客 594

2026 Java后端面试高频题:7天八股文复习冲刺指南

在Java后端开发岗位的面试中,集合框架、JVM、Spring生态、数据库与缓存技术始终是考察的核心维度。理解HashMap底层数组与红黑树的转换机制,掌握ConcurrentHashMap的并发安全设计,是应对高频基础题的关键。JVM内存区域划分与垃圾回收器的工作流程,直接体现了开发者排查线上问题的能力。Spring的IOC/AOP与自动配置原理,决定了框架应用的深度。MySQL的索引优化与事务隔离级别、Redis的缓存穿透与分布式锁,以及Kafka消息队列的可靠性与顺序性,都是工程实践中的常见痛点。由基

weixin_33769125的博客 319

Java面试突击:7天高效复习核心知识点与高频场景题

在Java技术面试中,掌握核心知识体系与高频考点是成功的关键。理解底层原理,如JVM内存模型、垃圾回收机制和并发编程中的锁机制,是构建扎实技术基础的第一步。这些原理直接决定了系统的性能、稳定性和可扩展性。从技术价值看,深入理解集合框架、MySQL索引与事务隔离级别,能有效解决实际开发中的性能瓶颈和数据一致性问题。应用场景广泛,从高并发下的缓存设计、数据库优化到分布式系统的事务处理,都离不开这些核心知识的支撑。本文聚焦HashMap源码、ConcurrentHashMap线程安全实现、Spring Bean生

weixin_30887919的博客 312

国产麒麟系统下Kettle安装避坑指南:解决aarch64架构不支持问题

本文详细解析了在国产麒麟系统上部署Kettle时遇到的aarch64架构不支持问题,提供了从获取适配的SWT库、修改启动脚本到生产环境调优的完整解决方案。文章重点解决了ARM架构与Java GUI工具的兼容性挑战,并分享了内存配置、字体显示及Carte服务部署等实战经验,助力用户在国产化环境中稳定运行ETL流程。

weixin_29197835的博客 559

用LightRAG+Ollama搭建本地知识库:从文档上传到智能问答的完整流程

本文详细介绍了如何利用LightRAG与Ollama构建企业级本地知识库,涵盖从文档预处理到智能问答的完整流程。通过实战案例展示,该方案能高效处理海量文档,实现语义搜索与知识图谱关联分析,显著提升信息检索效率。特别适合金融、医疗等领域的技术团队快速搭建智能知识管理系统。

weixin_42535461的博客 185

Java后端面试7天高效复习:核心考点、高频八股与实战策略

在软件工程领域,面试准备是每位开发者职业生涯中的关键环节,尤其对于Java后端岗位,其知识体系庞大且深入。理解计算机科学的基础原理,如数据结构、算法、操作系统和网络,是构建扎实技术能力的基石。从原理层面看,掌握核心数据结构(如HashMap的哈希表与红黑树实现)、并发编程的线程安全机制(如锁、CAS、AQS)以及JVM的内存管理与垃圾回收,是应对技术考察的根本。这些技术的价值在于,它们直接决定了系统的高并发处理能力、内存使用效率及稳定性,是构建高性能、可扩展后端服务的核心。在实际应用场景中,无论是设计秒杀系

cigang4063的博客 405

NVIDIA 2025 Board Design Engineer 校招笔试全解析:从基础门电路到理想放大器设计

本文详细解析了NVIDIA 2025届板级设计工程师校招笔试的核心考点与解题策略。内容涵盖从基础门电路、CMOS实现NOR门,到开关电源CCM/DCM模式波形分析与效率计算,以及理想运放电路设计与稳定性优化。旨在帮助考生构建硬件知识体系,掌握工程思维,顺利通过NVIDIA Board Design Engineer校招笔试。

weixin_29172201的博客 195

Java面试复习7 多线程

Java面试复习6 多线程 声明:本面试复习都基于一本未署名的Java面试宝典所述,根据自己的理解写出了这一专栏的复习博客 传统多线程实现方式 继承Thread类创建线程 定义子类继承Thread类。 子类中重写Thread类中的run方法。 创建Thread子类对象,即创建了线程对象。 调用线程对象start方法:启动线程,调用run方法 实现Runnable接口 定义子类,实现Run...

yikuki的博客 227

Case-Based Reasoning用于RAG

在做大模型应用RAG的时候,会发现一种特殊的场景,就是基于之前的case进行回答,比如法律咨询、医疗诊断等等。这种情况的问答,需要有强有力的case支持才行,有了case支持,大模型回答会更加准确。CBR这个概念已经很久了,它是一种人工智能推理方法,它的基本思想是:遇到新问题时,先回忆相似的过去案例,再基于这些案例进行调整,得到新问题的解答。Retrieve(检索):在案例库中找到与当前问题最相似的案例。Reuse(复用):借鉴案例的解决方案来应对当前问题。

sinat_28694519的博客 938

一文讲透什么是ADC/DAC中的DDC、DUC、采样率以及数据率等概念

摘要:ADC/DAC中的采样率与数据率概念不同,采样率是转换器的时钟速率,而数据率是数字输出的实际速率。抽取通过滤波降低数据速率,提升信噪比但牺牲带宽;内插则通过插零和滤波提高采样率,将镜像信号移远但增加延迟和功耗。JESD204B标准的高速转换器需平衡通道数与串行速率,内插/抽取技术是关键。文章还解析了DDC、DUC的应用及优缺点,为高速数据转换设计提供参考。(150字)

weixin_49761275的博客 4264

Java后端面试复习7.23

进程和线程 线程优先级 线程状态 线程构造方式三种 推荐用哪种为什么 线程中断调用什么方法,本线程怎检查 为什么线程不应强制停止 线程通信方式四种 ThreadLocal FUtureTask 线程礼让 终止线程的另一个缺陷(锁) 守护线程 什么时候设置为守护县城 sleep,yieldjoin的区别 能否按照优先级严格执行 THreadlocal的例子Simpledataformat Threadlocal的弱引用 解决map冲突 内存泄露,怎么解决 域名分片 短

m0_58466443的博客 600

具身智能(40):主流 VLA 模型π₀

摘要: π₀是首款专为机器人设计的VLA(视觉-语言-动作)端到端基础模型,通过双阶段训练实现“感知-决策-执行”闭环。其创新点包括:1)FlowMatching技术实现连续平滑动作控制(精度0.3°);2)结合VLM预训练与多机器人实操数据,零样本任务完成率达76.4%,远超同类模型;3)支持模糊指令理解与动态场景适应(如遮挡识别)。开源版本涵盖不同规模模型,适用于工业装配、服务机器人等场景,在延迟(213ms)和稳定性(92%自主恢复率)上显著领先OpenVLA等竞品。

码农17年的博客 509

Java后端面试复习7.24

lock加锁解锁尝试获取锁方法 lock底层基于什么实现 lock和lock的底层实现分别面向什么用户 lock和synchronized异同 如何选择合适的锁 ReentrantLock如何实现冲入 内部类三个 公平和非公平获取锁怎么实现的 RL默认公平还是非公平,构造参数 ReentrantRedaWriteLock的特性 什么是AQS,内部属性 AQS的设计模式,三类方法和对应作用 实现自定义锁步骤 同步队列的实现,入队出对 非公平所在队列中的竞争 读写锁获取两个锁的方法

m0_58466443的博客 509

【STK】手把手教你利用STK进行导弹和反导仿真04 - STK/MMT模块03 导弹飞行工具应用案例

飞行设置的工具栏就在附加窗口的中间,首先点击左边的General,修改这个项目的名字。然后在下拉的System中选择导弹的类型,这里我们选择远程。(4)输出数据文件到STK,任务窗口里选择Export Manager项,飞行数据输出到STK。项目可以命名为Test;(1)首先建立新项目,点击Flight菜单中的New Flight选项,见下图。首先看世界地图中间的红圈,是一个导弹形状的图标,这个图标表示的是导弹的发射点。选择下面的Export Manager,依次勾选红框的选项。我们拖动这个导弹的图标,

weixin_44184852的博客 1630

HBase学习二:RegionServer详解

RegionServer是HBase系统中最核心的组件,主要负责用户数据写入、读取等基础操作。RegionServer组件实际上是一个综合体系,包含多个各司其职的核心模块:HLog、MemStore、HFile以及BlockCache。一个RegionServer由一个(或多个)HLog、一个BlockCache以及多个Region组成。其中,HLog用来保证数据写入的可靠性;BlockCache可以将数据块缓存在内存中以提升数据读取性能;

qwerty1372431588的博客 747

Java面试突击:从核心原理到实战场景的7天高效复习指南

在软件工程领域,理解计算机系统的基础原理是构建高性能、高可靠应用的关键。从内存管理、并发控制到数据存储,每一层技术栈都遵循着从底层硬件到上层应用的抽象逻辑。以Java技术栈为例,其核心价值在于通过虚拟机(JVM)实现跨平台能力,并通过并发编程模型、垃圾回收机制和框架设计模式,支撑起大规模分布式系统的开发。在实际工程实践中,开发者常需面对高并发场景下的性能优化、内存泄漏排查、数据库事务一致性等挑战。例如,深入理解JVM内存模型与GC算法,能有效定位线上OOM问题;掌握MySQL的B+树索引与MVCC机制,可针

weixin_29273849的博客 220

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java面试复习总结7——代码块和代码执行顺序

目录 Java中的构造方法 构造方法简介 构造方法实例 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块简介 Java代码块使用 局部代码块 构造代码块 静态代码块 Java代码块、构造方法(包含继承关系)的执行顺序 参考文章 Java中的构造方法 构造方法简介 构造方法是类的...

Slayer_Zhao的博客 298

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java后端面试7天冲刺:高频八股文复习路线与核心考点

Java后端开发离不开JVM、并发、Spring、MySQL、Redis等核心基础设施。理解这些技术的底层原理,不仅有助于解决线上性能问题,更是面试中考察候选人知识体系的关键。从JVM内存区域与垃圾回收,到并发编程中的锁与线程池,再到Spring IoC/AOP和事务机制,以及MySQL索引与事务隔离级别、Redis缓存穿透与分布式锁,每一块都有清晰的技术脉络。针对2025、2026届校招和跳槽场景,梳理出一份7天冲刺的高频考点路线,为每个知识点提炼出回答锚点,并结合代码示例与排查思路,帮助开发者快速建立知

weixin_34126557的博客 370

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

三年Java开发,java手机编程软件能编译的游戏

前言 提到IT人员,人们的第一印象就是高薪资,包括转行来学Java的人绝大多数都是冲着高薪以及就业广泛来的。 前段时间跟同学聊天,她说她老公在一家互联网公司做Java后台开发,年薪四十万,最近在准备复习,想着明年冲一波阿里p6或者p7。 很多人都听过阿里的p级职位层级,那今天就跟大家“揭秘”一下,想要成为p7岗的Java技术专家你需要掌握哪些技术。 本篇文章我将分成三个内容来讲: ①了解阿里p级职位,大厂岗位薪资(2020) ②阿里p7技术专家水平(Java岗) ③如何让自己一步步贴近p7技术专家 复习过

m0_56824583的博客 150

Java面试复习总结(集合篇7)——红黑树和Treemap

目录 什么是红黑树 定义 实践 总结 参考文章 什么是红黑树 首先,什么是红黑树呢? 红黑树是一种“平衡的”二叉查找树,它是一种经典高效的算法,能够保证在最坏的情况下动态集合操作的时间为O(lgn)。红黑树每个节点包含5个域,分别为color,key,left,right和p。 color是在每个节点上增加的一个存储位表示节点的颜色,可以是RED或者BLACK。key为结点中的val...

Slayer_Zhao的博客 128
上一篇: Java 面试复习_6
下一篇: Java 面试复习_8
水不要鱼
博客等级 码龄7年 7粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值