吴晓斌kobe
码龄10年
求更新 关注
提问 私信
  • 博客:115,032
    115,032
    总访问量
  • 81
    原创
  • 448
    粉丝
  • 49
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
加入CSDN时间: 2015-01-10
博客简介:

吴晓斌的博客

博客描述:
江湖事江湖了,编程事代码结!
查看详细资料
个人成就
  • 获得673次点赞
  • 内容获得22次评论
  • 获得636次收藏
  • 博客总排名30,230名
  • 原力等级
    原力等级
    1
    原力分
    95
    本月获得
    1
创作历程
  • 44篇
    2025年
  • 1篇
    2020年
  • 18篇
    2019年
  • 37篇
    2018年
成就勋章
TA的专栏
  • Java学习
    45篇

TA关注的专栏 1

TA关注的收藏夹 0

TA关注的社区 3

TA参与的活动 0

创作活动更多

王者杯·14天创作挑战营·第2期

这是一个以写作博客为目的的创作活动,旨在鼓励码龄大于4年的博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。 注: 1、参赛者可以进入活动群进行交流、分享创作心得,互相鼓励与支持(开卷),答疑及活动群请见https://bbs.csdn.net/topics/619735097 2、文章质量分查询:https://www.csdn.net/qc 我们诚挚邀请你们参加为期14天的创作挑战赛!

56人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

用一段代码来彻底弄明白java运行时数据区

元空间:类的元数据、符号引用(运行时常量池)、静态变量引用。堆:对象实例、字符串常量池(实际字符串值)。虚拟机栈:方法调用的局部变量和操作数。本地方法栈:Native 方法的调用栈。程序计数器:线程执行位置的记录。通过这种划分,可以清晰理解代码中每个变量和对象在内存中的位置,这对分析内存泄漏、栈溢出、垃圾回收等问题非常有帮助!
原创
发布博客 2025.03.05 ·
836 阅读 ·
25 点赞 ·
0 评论 ·
7 收藏

如何理解I/O操作为何不占用CPU的原理

核心思想:通过硬件(DMA)和操作系统(中断)的协作,将慢速的 I/O 操作与 CPU 解耦。效果:CPU 仅在关键节点短暂介入,其余时间可处理计算任务,从而提升系统整体吞吐量。类比:类似于领导(CPU)分配任务后,由下属(DMA)独立完成,领导只需等待完成报告(中断),期间可处理其他工作。这种设计是计算机系统实现高并发和高性能的核心基础之一。
原创
发布博客 2025.03.03 ·
678 阅读 ·
19 点赞 ·
0 评论 ·
6 收藏

多路复用 I/O 模型详解

管理多个 I/O 通道(如 Socket、文件等),并在这些通道有事件(如可读、可写)时进行响应。多路复用器将就绪的事件返回给应用程序,应用程序根据事件类型进行相应的 I/O 操作(如读取数据、写入数据)。是一种高效的 I/O 模型,通过单线程管理多个 I/O 通道,适合高并发、低活跃连接的场景。多路复用 I/O(Multiplexing I/O)是一种高效的 I/O 模型,它通过。如果某个事件的处理时间过长(如大文件传输),会导致后续事件延迟响应,影响整体性能。,但也存在事件响应延迟和编程复杂性的问题。
原创
发布博客 2025.03.03 ·
1112 阅读 ·
29 点赞 ·
0 评论 ·
17 收藏

IO中的两个核心概念,Socket 和文件句柄

两者都是操作系统提供的核心机制,分别用于网络 I/O 和文件 I/O,是编程中不可或缺的工具。:通过 Socket,客户端和服务器可以建立连接(如 TCP 的三次握手)。是网络通信的抽象,用于实现进程间的数据传输,支持 TCP、UDP 等协议。是文件操作的抽象,用于标识和管理打开的文件,支持读写、追加等操作。是操作系统对文件的抽象,用于标识和管理打开的文件。是网络通信的抽象,用于在网络上实现进程间的通信。:每个打开的文件都有一个唯一的文件句柄。:每个打开的文件都有一个唯一的文件句柄。
原创
发布博客 2025.03.03 ·
759 阅读 ·
5 点赞 ·
0 评论 ·
6 收藏

为什么 Netty 选择 NIO 而非 AIO?

Netty 的事件循环模型(Reactor 模式)经过多年优化,能精细控制线程和资源,而 AIO 的编程模型和线程管理较为黑盒。,底层基于同步非阻塞 I/O(NIO 多路复用),通过事件循环和回调机制模拟异步行为,适用于高并发网络通信。AIO 在文件操作中表现更好,而 Netty 主要用于网络 I/O,NIO 的多路复用已足够高效。,由内核直接完成 I/O 操作并通过回调通知,适用于文件操作等场景,但受限于平台支持。用户线程发起 I/O 后完全释放,内核完成后通过独立的线程池触发回调。
原创
发布博客 2025.03.03 ·
907 阅读 ·
19 点赞 ·
0 评论 ·
13 收藏

深入解析Java代码保护:从基础混淆到动态加密防御体系

Override@Override// 插入冗余指令@Overridetry {
原创
发布博客 2025.02.28 ·
662 阅读 ·
19 点赞 ·
0 评论 ·
17 收藏

深入解析Java分布式事务:Seata vs Atomikos vs Narayana

通过本文的深度剖析可见:Seata在云原生场景优势明显Atomikos适合传统JTA项目快速集成Narayana为复杂事务提供企业级支持选择合适的事务框架需要综合考虑业务场景、团队技术栈和长期维护成本。建议从简单方案入手,随着业务复杂度提升逐步演进架构。
原创
发布博客 2025.02.28 ·
1034 阅读 ·
26 点赞 ·
0 评论 ·
27 收藏

Java数据库连接池深度对比:HikariCP vs Druid vs Tomcat JDBC

性能优先:选择HikariCP监控需求:选择Druid传统Web应用具体到技术决策:在Spring Boot项目中,默认使用HikariCP;当需要详细监控时启用Druid;在Tomcat传统应用中保持技术栈统一。"没有最好的连接池,只有最合适的连接池。" —— 连接池设计哲学。
原创
发布博客 2025.02.28 ·
1297 阅读 ·
13 点赞 ·
0 评论 ·
23 收藏

Java中的容器化技术:JVM在Docker中的性能优化

在容器化浪潮中,JVM调优已从单纯的参数调整演变为系统级的资源博弈。通过本文揭示的:容器资源隔离机制与JVM的认知偏差三维内存模型与动态CPU绑定技术全链路调优方法论与前沿技术实践开发者应建立环境感知→指标监控→动态调整的闭环优化思维。记住:最优配置永远是动态的,真正的性能艺术在于平衡资源的精确控制与系统的弹性能力。
原创
发布博客 2025.02.28 ·
743 阅读 ·
23 点赞 ·
0 评论 ·
29 收藏

Java中的分布式追踪:SkyWalking vs Zipkin vs Jaeger

特性SkyWalkingZipkinJaeger实现原理Java Agent 自动注入Brave 库手动或自动注入OpenTracing 标准手动注入数据存储内存、MySQL、Cassandra、ElasticsearchUI 展示丰富的可视化界面简单的调用链展示强大的调用链展示集成复杂度低(自动注入)中(需手动配置 Brave)中(需手动配置 OpenTracing)适用场景微服务、云原生架构中小型分布式系统大规模分布式系统。
原创
发布博客 2025.02.28 ·
1100 阅读 ·
22 点赞 ·
0 评论 ·
23 收藏

Java中的安全编程:加密、签名与SSL/TLS

通过本文,我们深入探讨了Java中的加密算法、数字签名以及SSL/TLS的实现。这些技术是构建安全应用程序的基石。希望本文的代码实战能够帮助你更好地理解这些概念,并在实际项目中应用它们。安全编程不仅仅是技术问题,更是一种责任。让我们共同努力,构建更加安全的软件世界。
原创
发布博客 2025.02.28 ·
288 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Java 代码生成技术:APT vs Lombok vs JavaPoet

技术原理使用场景优点缺点APT编译时处理注解,生成代码生成样板代码、框架代码、代码检查灵活、可控需要编写注解处理器,学习成本较高Lombok编译时修改 AST,生成代码减少样板代码、简化代码使用简单、代码简洁依赖于 IDE 插件,调试困难JavaPoet通过 API 生成 Java 源代码动态生成代码、生成复杂代码灵活、可控需要编写生成代码的逻辑如果需要生成简单的样板代码,Lombok 是一个不错的选择。
原创
发布博客 2025.02.28 ·
727 阅读 ·
9 点赞 ·
0 评论 ·
14 收藏

Java中的高并发设计模式:Disruptor vs Reactor vs Actor模型

Disruptor是一个高性能的并发队列框架,由LMAX公司开发。它通过无锁设计、环形缓冲区和事件驱动机制,实现了极高的吞吐量和低延迟。Disruptor特别适合用于金融交易、实时数据处理等对性能要求极高的场景。Reactor模式是一种事件驱动的并发模型,它通过一个或多个事件循环(Event Loop)来处理大量并发请求。Reactor模式广泛应用于网络编程中,如Netty、Spring WebFlux等框架。
原创
发布博客 2025.02.28 ·
509 阅读 ·
10 点赞 ·
0 评论 ·
19 收藏

Java中的分布式锁实现:Redisson vs Zookeeper vs Etcd

特性RedissonZookeeperEtcd实现原理基于 Redis 的SETNX基于临时顺序节点基于事务机制性能高(内存数据库)中等中等一致性最终一致性强一致性强一致性可重入性支持需手动实现需手动实现适用场景高性能、高并发强一致性、复杂协调任务高可用性、强一致性。
原创
发布博客 2025.02.28 ·
495 阅读 ·
8 点赞 ·
0 评论 ·
15 收藏

Java中的编译器优化:方法内联与逃逸分析

方法内联是指编译器将方法调用替换为方法体的实际代码。这样可以减少方法调用的开销,尤其是对于频繁调用的小方法。逃逸分析是JVM在编译时分析对象的作用域,判断对象是否“逃逸”出方法或线程。如果对象没有逃逸,JVM可以进行一些优化,比如栈上分配(Stack Allocation)和锁消除(Lock Elision)。方法内联通过将方法调用替换为方法体的实际代码,减少了方法调用的开销,特别适用于小方法。逃逸分析通过分析对象的作用域,判断对象是否逃逸出方法或线程,从而进行栈上分配和锁消除等优化。
原创
发布博客 2025.02.27 ·
918 阅读 ·
19 点赞 ·
0 评论 ·
25 收藏

Java中的性能监控工具:JMX vs JFR vs JMC

JMX提供了基础的监控功能,适合实时监控和管理Java应用。JFR提供了详细的运行时数据记录,适合深入分析性能问题。JMC集成了JMX和JFR的功能,提供了全面的性能分析工具。通过合理使用这些工具,开发者可以更好地理解和优化Java应用的性能。希望本文的内容能够帮助你掌握这些工具的使用技巧,并在实际项目中应用它们。
原创
发布博客 2025.02.27 ·
646 阅读 ·
28 点赞 ·
0 评论 ·
25 收藏

Java中的堆外内存:DirectByteBuffer与Unsafe

堆外内存在Java高性能应用中扮演着重要角色,尤其是在需要减少GC压力、提升IO性能的场景中。和Unsafe是操作堆外内存的两种主要方式,前者更安全且易于使用,后者则提供了更底层的控制能力。然而,使用堆外内存也带来了内存泄漏和复杂性等风险,开发者需要谨慎使用。通过本文的代码实战,相信你已经对堆外内存的使用有了更深入的理解。在实际开发中,合理使用堆外内存可以显著提升应用性能,但也需要时刻注意内存管理的细节。
原创
发布博客 2025.02.27 ·
870 阅读 ·
19 点赞 ·
0 评论 ·
6 收藏

Java中的模块化系统:JPMS(Java Platform Module System)

在Java 9之前,Java应用的依赖管理主要依赖于类路径(Classpath)。依赖冲突:当多个库依赖同一个库的不同版本时,类路径无法解决版本冲突。可见性问题:所有类默认都是公开的,无法控制哪些类应该对外暴露,哪些应该隐藏。启动性能:类路径机制在启动时需要扫描所有JAR文件,导致启动时间变长。JPMS通过引入**模块(Module)**的概念,解决了这些问题。模块是一个自包含的代码单元,它明确声明了它所依赖的其他模块以及它对外暴露的包。假设我们有一个名为的模块,它依赖于java.base。
原创
发布博客 2025.02.27 ·
634 阅读 ·
24 点赞 ·
0 评论 ·
8 收藏

深入探讨JVM的即时编译器(JIT):C1、C2与GraalVM

JVM的JIT编译器是Java高性能的关键。C1编译器适合快速启动的场景,C2编译器适合长时间运行的高性能应用,而GraalVM则代表了JIT编译器的未来方向。通过合理选择编译器和优化策略,可以显著提升Java应用的性能。希望本文的探讨和代码实战能帮助你更好地理解JIT编译器的工作原理,并在实际项目中应用这些知识。
原创
发布博客 2025.02.27 ·
935 阅读 ·
8 点赞 ·
0 评论 ·
6 收藏

Java中的序列化与反序列化:Kryo vs Protobuf vs Hessian

Kryo是一个高效的Java序列化框架,专注于性能和易用性。它支持对象的深度复制、对象图的序列化,并且序列化后的数据体积较小。Kryo的序列化速度非常快,适合对性能要求较高的场景。Kryo:性能最优,适合对性能要求极高的Java应用,但跨语言和版本兼容性较差。Protobuf:数据体积最小,跨语言兼容性最好,适合需要跨语言通信的场景。Hessian:兼容性较好,适合Web服务等对兼容性要求较高的场景。根据具体需求选择合适的序列化框架,可以显著提升系统的性能和兼容性。
原创
发布博客 2025.02.27 ·
761 阅读 ·
25 点赞 ·
0 评论 ·
14 收藏
加载更多