自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牛马baby的博客

牛马baby的博客

  • 博客(231)
  • 收藏
  • 关注

原创 Java 中可作为 GC Roots 的引用有哪几种?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶是垃圾回收器遍历对象引用关系的起点。从这些根节点开始,通过引用链能到达的对象都是,而无法通过任何引用链从 GC Roots 到达的对象则被判定为可回收的垃圾。

2025-09-25 11:30:00 637

原创 如何判断对象仍然存活?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶判断对象是否存活是垃圾收集(Garbage Collection, GC)的核心前提。和。现代主流 Java 虚拟机均采用。

2025-09-24 11:30:00 770

原创 内存泄漏可能由哪些原因导致?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶内存泄漏是Java开发中一个非常隐蔽且棘手的问题。它指的是程序在运行过程中,,从而导致内存被无效占用。久而久之,泄漏的内存累积起来,最终会引发。

2025-09-23 11:15:00 715

原创 内存溢出和内存泄漏的区别是什么?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶fill:#333;color:#333;color:#333;fill:none;成功失败根本原因分析内存泄漏数据量过大内存设置过小程序运行申请内存申请成功?正常使用内存释放内存溢出。

2025-09-22 11:15:00 933

原创 dll修复工具安装教程(附详细图文教程)

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶是一类专门用于检测、下载、替换或修复系统中缺失、损坏或版本不兼容的文件的软件。为了更好地理解,我们首先需要明白就是这个“公共工具箱”的。当系统因为某个“工具”丢失、损坏或版本不对而无法正常工作时,它就出面解决。

2025-09-21 12:26:00 1589

原创 对象一定分配在堆中吗?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶。从《Java虚拟机规范》的逻辑角度来看,。这是Java内存管理的核心规则,堆是对象存储的“基本盘”。然而,在实际的JVM实现中,为了提升性能、降低GC压力,JVM会通过一些优化技术,让某些对象,或者“看起来”不像在堆上分配。和。

2025-09-21 10:00:00 857

原创 垃圾回收中的STW是什么?

中文常译为“万物停顿”或“全局暂停”。它指的是在垃圾回收过程中,为了确保一致性,JVM 会暂停所有应用程序线程的执行。此时,整个 Java 应用程序会表现得像卡住了一样,无法响应任何请求。可以把它想象成进行大扫除时,需要让所有员工暂时停下手中的工作,离开工位,这样清洁人员才能高效、安全地清理垃圾,而不会漏掉垃圾或误扔重要文件。STW 就是 JVM 为了“安全地清理内存垃圾”而让所有业务线程“暂停工作”的过程。

2025-09-20 11:15:00 993

原创 面试官:对象什么时候会进入老年代?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶对象进入老年代是JVM分代垃圾回收模型中的关键环节。对象并非永远停留在新生代,在满足特定条件后,会从新生代“晋升”到老年代:fill:#333;color:#333;color:#333;fill:none;否是条件1: 年龄阈值达标条件2: 动态年龄判定条件3: 大对象条件4: 分配担保新对象在Eden区创建发生Minor GC对象存活?被回收移至Survivor区年龄+1检查晋升条件?晋升至老年代。

2025-09-19 11:30:00 1746

原创 Java 堆内存分区详解

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶fill:#333;color:#333;color:#333;fill:none;Java Heap (堆)(新生代)(老年代)Eden(伊甸园)(From)(To)对象优先在此分配Minor GC后存活对象暂存区Minor GC后存活对象暂存区存放长期存活的对象。

2025-09-18 11:30:00 1072

原创 面试官:说一下对象有哪哪些引用

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶和。。下图清晰地展示了四种引用在GC压力下的不同表现:fill:#333;color:#333;color:#333;fill:none;是否对象存在四种引用强引用软引用弱引用虚引用决不回收宁愿抛出OOM内存是否不足?回收对象(在OOM前)不回收下次GC必回收(无论内存是否充足)GC时即回收且不放入ReferenceQueue无法获取对象。

2025-09-17 11:30:00 1048

原创 JVM 是怎么访问对象的?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶在Java虚拟机中,访问一个堆上的对象需要特定的方式,因为执行引擎操作数据时是在虚拟机栈的局部变量表或操作数栈中进行,而对象本身存储在Java堆中。和。HotSpot虚拟机主要使用方式。

2025-09-16 11:15:00 990

原创 面试官:说一下对象的内存布局

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶和。

2025-09-15 11:30:00 1061

原创 new 对象时,堆会发生抢占吗?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶在Java中,使用new关键字创建对象时,,但JVM通过高效的机制巧妙地处理了这个问题,使得常规情况下的分配效率极高。

2025-09-13 11:15:00 1039

原创 JVM方法区详解

方法区是《Java虚拟机规范》中定义的一个逻辑内存区域。它被所有Java虚拟机线程共享。可以把它想象成整个JVM的“信息中心”或“蓝图仓库它的主要作用是存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。简单来说,当写的.java文件被编译成.class文件,然后被JVM加载后,关于这个类的所有“元数据”(描述类的数据)都会被存放到方法区中。

2025-09-12 10:30:00 1603

原创 面试官:介绍一下 Java 堆

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶。

2025-09-11 10:00:00 1603

原创 面试官:堆内存是如何分配的?

hello啊,各位观众姥爷们!本baby今天又来报道了!在发生Minor GC之前,JVM会先检查。(下次From是S1, To是S0)晋升至Old Generation。清空Eden和S1(To)Java堆主要划分为。Minor GC过程。触发Minor GC。Eden区空间不足?

2025-09-10 11:30:00 665

原创 一篇文章带你吃透java对象创建过程!

创建对象是非常频繁的操作,在并发情况下,仅仅修改一个指针所指向的位置也不是线程安全的。从虚拟机的视角看,一个新的对象已经产生了。但从Java程序的视角看,对象创建才刚刚开始——后续程序通过这个栈上的引用指针来操作堆中的具体对象。内存分配完成后,虚拟机需要将分配到的内存空间(不包括对象头)都。取决于Java堆是否规整,而Java堆是否规整又由所采用的。”的理念,并确保了对象的创建是安全、高效且符合预期的。JVM需要对对象进行必要的设置,这些信息存储在。中创建并初始化了一个对象。中定位到一个类的符号引用。

2025-09-09 10:00:00 640

原创 面试官:说一下 JDK 1.7、1.8 内存区域的变化有哪些?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶。

2025-09-08 09:30:00 884

原创 面试题:什么是java中的虚拟机栈?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶。

2025-09-06 09:30:00 811

原创 面试官:说一说JVM的内存区域

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶和。fill:#333;fill:black;fill:#333;40%60%JVM运行时数据区核心组成线程共享线程私有。

2025-09-05 10:15:00 856

原创 如果让你设计ThreadLocal,你会怎么设计

该设计在保持 API 兼容性的同时,通过降低初始容量(8)、增加定期扫描线程、引入墓碑标记等策略,实测可减少 35% 内存占用并提升 20% 访问性能。此设计在保证线程隔离核心功能的基础上,通过多层防御机制解决内存泄漏问题,并通过数据结构优化提升性能,适合作为高并发系统基础设施。标记Entry.key=null。后续操作清理无效Entry。回收弱引用(key)

2025-09-04 10:00:00 657

原创 面试官:介绍一下本地方法栈

简单地理解,就是用。

2025-09-04 09:30:00 1064

原创 线程池的线程数应该怎么配置?

丢失任务导致业务异常 → 推荐 AbortPolicy。默认使用无界队列 → OOM 风险。

2025-09-02 09:30:00 1751

原创 针对redis中的热数据该怎么处理

分级处理原则:按数据特性采用不同缓存策略物理隔离方案:为顶级热Key分配专属Redis实例价值优先策略if key.value_size < 100: return True # 小对象优先return (key.qps * unit_value) > 1000 # 价值计算。

2025-09-01 21:35:17 935

原创 线程池发生了异常该怎么处理?

为自动重试机制添加退避策略(Exponential Backoff)。任务抛出未捕获异常 → 导致工作线程死亡!线程池会创建新线程替代。异常信息丢失(仅打印到控制台,生产环境不可见)。通过JMX暴露指标(需继承。显式try-catch捕获。Future.get捕获。会导致异常永久丢失!

2025-09-01 21:32:02 874

原创 线程池是怎么关闭的?

避免数据丢失和资源泄漏同时兼顾效率。

2025-08-29 12:15:00 704

原创 线程池提交 execute 和 submit 有什么区别?

适用场景:提交不需要返回结果的异步任务(如日志记录、事件通知)。异常处理:若任务抛出异常,默认通过线程的 处理。无内置异常捕获机制(需自行实现 或在任务逻辑中处理)。示例:2. 方法适用场景:提交需要返回结果或需要控制任务状态的任务(如并行计算、结果聚合)。核心能力:封装返回值:通过 或带结果的 返回计算结果。异常封装:任务异常不会立即抛出,而是封装到 对象中(需调用 触发异常)。任务控制:通过 实现取消任务、查询完成状态等。示例:关键差异点

2025-08-28 11:00:00 692

原创 线程池有哪几种阻塞队列?

【代码】线程池有哪几种阻塞队列?

2025-08-27 14:00:00 531

原创 面试官:线程池的拒绝策略有哪些?

中,当线程池无法接受新提交的任务时(例如:线程池已关闭。,或者线程池的工作线程和队列都已达到设定的最大值。Java 提供了四种内置的拒绝策略实现,都定义在。在 Java 的线程池。

2025-08-26 10:15:00 679

原创 线程池的主要参数有哪些?

fill:#333;color:#333;color:#333;fill:none;是否是否是否提交任务核心线程创建核心线程队列未满?任务入队线程数创建非核心线程触发拒绝策略📌。

2025-08-25 11:00:00 1137

原创 线程池的工作流程是什么?

线程池(ThreadPoolExecutor)的工作流程是其与。

2025-08-23 10:00:00 975

原创 BlockingQueue 是什么?

是中定义的一个,它代表了一种特殊的。其核心特性在于它提供了一套支持的操作,使得队列成为在多线程环境下实现或任何需要的理想工具。

2025-08-22 11:45:00 942

原创 为什么 ConcurrentHashMap 比 Hashtable 效率高

最大限度地减少了线程间的竞争,允许更多的操作(尤其是读操作和操作不同桶/段的写操作)真正并行执行。ConcurrentHashMap 比 Hashtable 效率高主要是因为它们在实现线程安全时采用了。单一的全局锁导致所有同步操作都必须串行化,在高并发环境下成为严重的性能瓶颈。,是现代 Java 并发编程中替代。的首选线程安全 Map 实现。

2025-08-21 09:15:00 807

原创 面试官:说一下 ConcurrentHashMap 对 HashMap 的改进

【代码】面试官:说一下 ConcurrentHashMap 对 HashMap 的改进。

2025-08-20 10:15:00 1000

原创 Java面试:Semaphore 是什么?

(信号量)是 Java 并发包 (它是一种经典的并发控制原语。) 中另一个功能强大的。想象成一个管理着一组。

2025-08-19 10:45:00 838

原创 MATLAB 2024b安装和使用指南

【代码】MATLAB 2024b安装和使用指南。

2025-08-19 09:00:00 3407

原创 面试官:CyclicBarrier 和 CountDownLatch的区别是什么?

已重置),但这次没有额外动作。(打印消息),然后一起开始。都是 Java 并发包。

2025-08-18 10:15:00 1648

原创 Java初中级面试题:有哪几种常见的线程池?

hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶Java 线程池的核心是类,通过不同参数组合实现多种线程池策略。fill:#333;color:#333;color:#333;fill:none;突发流量任务堆积OOM内存溢出。

2025-08-14 12:15:00 828

原创 Java最新面试题:线程池是如何关闭的?

线程池的关闭是确保任务有序完成、资源正确释放的关键操作。Java 提供两种关闭方式和一种等待机制。hello啊,各位观众姥爷们!本baby今天又来报道了!

2025-08-13 10:45:00 718

原创 GraphPad Prism安装和使用详细教程

TIFF LZW压缩。

2025-08-13 08:15:00 4576

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除