
java
文章平均质量分 93
01Byte空间
做过开发,创过业,踩过坑。从Java后台开发,PL/SQL开发,Pro*C开发,到shell脚本,再到兼职开发的MySQL DBA。
为人友善诚恳,工作踏实,吃苦耐劳,富有朝气,激情,以及团队合作意识。
专注后端技术:Java、Shell、Socket、MySQL、Oracle、Linux、中间件、分布式、微服务。偶尔扯扯淡、分享技术干货。
https://github.com/zhouxx1055
https://zhouxx.blog.youkuaiyun.com/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实战:软件架构网络系列之【物联网中MQTT协议报文序列化/ 载荷(Payload)设计】
MQTT协议是一种轻量级的发布/订阅消息传输协议,特别适合物联网(IoT)应用。本文介绍了MQTT协议的核心特点、报文设计要点和不同序列化方案的对比。MQTT协议具有低带宽、低功耗、低开销的优势,其报文设计需要考虑精简报头、主题设计、QoS级别选择等要素。在载荷序列化方面,文章详细比较了JSON、CBOR、Protobuf和自定义字节码四种方案,分析了各自的优缺点和适用场景,并给出了具体实现示例。文章还提供了MQTT在实际应用中的注意事项和优化建议,帮助开发者在物联网场景中合理选择和使用MQTT协议。原创 2025-08-20 16:02:30 · 946 阅读 · 0 评论 -
实战:软件架构网络系列之【物联网中MQTT协议报文设计梳理】
本文系统介绍了MQTT协议在物联网应用中的核心设计原则与实现方案。MQTT作为轻量级发布/订阅消息协议,具有低带宽、低功耗特点,通过QoS分级、遗嘱消息、主题通配符等机制确保物联网通信的可靠性。文章详细解析了MQTT报文结构(固定/可变报头、负载),并给出传感器数据上报、设备控制等典型场景的报文设计示例。同时探讨了MQTT5.0的增强特性(用户属性、消息过期)以及安全加密、文件分块传输等进阶优化方案,为物联网系统开发提供了完整的MQTT协议实现指南。原创 2025-08-20 12:33:30 · 703 阅读 · 0 评论 -
实战:软件架构网络系列之【物联网中MQTT应用相关问题梳理】
本文系统介绍了MQTT协议在物联网中的应用及优化策略。主要内容包括:1)协议基础功能实现,如发布/订阅、SSL/TLS安全通信、遗嘱消息等;2)性能优化方法,包括通用优化策略及工业、车联网等特定场景优化;3)安全性增强措施,如权限管理、设备指纹识别等;4)主题设计优化,涵盖负载均衡、扩展性建议及农业、智能家居等场景应用;5)综合场景解决方案,如农业物联网设备协同、杭州五水共治项目适配等。文章着重探讨了如何根据设备性能、网络状况和业务需求优化MQTT主题设计与QoS等级配置。原创 2025-08-20 10:21:02 · 446 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT V5基础功能:MQTT 5.0 发布和订阅 】
【摘要】本系列文章全面解析MQTT协议及其应用实践。基础篇详细介绍了MQTT作为轻量级发布/订阅协议的特性,并整理了6个主流公共MQTT服务器(如Mosquitto、HiveMQ等)的地址端口信息。实战篇包含:1)开发MqttClientV3/V5工具类简化客户端操作;2)实现多主题订阅与发布功能;3)通过遗嘱消息保障可靠传输;4)构建智能家居传感器案例;5)配置SSL/TLS安全通信。特别提供了MQTT5.0工具类实现,支持用户属性等新特性,包含连接管理、异常处理等完整功能,适用于物联网开发场景。文中还对原创 2025-08-20 00:13:07 · 834 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT V5工具类:MqttClientV5Util】
本系列文章全面解析MQTT协议及其应用实践。基础篇详细介绍了MQTT作为轻量级发布/订阅协议的特性,并整理了6个主流公共MQTT服务器(如Mosquitto、HiveMQ等)的地址端口信息。实战篇包含:1)开发MqttClientV3/V5工具类简化客户端操作;2)实现多主题订阅与发布功能;3)通过遗嘱消息保障可靠传输;4)构建智能家居传感器案例;5)配置SSL/TLS安全通信。特别提供了MQTT5.0工具类实现,支持用户属性等新特性,包含连接管理、异常处理等完整功能,适用于物联网开发场景。文中还对比了各公原创 2025-08-20 00:12:32 · 816 阅读 · 0 评论 -
实战:软件架构网络系列之【MQTT基础功能:MQTT多主题订阅】
【摘要】本系列文章系统介绍了MQTT协议及其应用实践。理论部分详解了MQTT作为轻量级发布/订阅协议的特点,并梳理了6个常用公共MQTT服务器(如Mosquitto、HiveMQ等)的地址和端口信息。实战部分包含:1)开发MqttClientV3Util工具类简化客户端操作;2)实现多主题订阅与多线程发布功能;3)通过遗嘱消息保障可靠传输;4)构建智能家居温度传感器案例;5)配置SSL/TLS加密通信。其中,多主题订阅示例通过线程池管理多个传感器主题(温度/湿度等)的并发发布,包含连接管理、异常处理和模拟数原创 2025-08-20 00:11:42 · 609 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT基础功能:MQTT 重连(可靠传输保障)】
本文介绍了MQTT协议在物联网中的应用,包括公共MQTT服务器资源、Java客户端工具类开发及可靠传输保障。主要内容有:1)列举了6个免费公共MQTT服务器及其连接参数;2)提供基于Eclipse Paho的MQTT V3工具类实现,包含客户端创建、连接管理功能;3)重点演示了包含重连机制的MQTT全生命周期验证方案,通过多线程模拟连接、订阅、发布、断连、重连等操作,确保网络异常时的可靠传输。该方案采用最大重试次数(3次)和重连间隔(3秒)的自动恢复机制,使用AtomicBoolean保障线程安全,适合物联原创 2025-08-20 00:10:36 · 537 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT基础功能:MQTT over SSL/TLS 安全通信(安全传输)】
【摘要】本文介绍MQTT协议及其安全通信实现。首先列举了6个免费公共MQTT服务器(如Eclipse Mosquitto、HiveMQ等),包含地址、端口和协议支持信息。重点解析了基于Java的MQTT安全通信示例代码,通过SSL/TLS加密连接测试服务器(test.mosquitto.org:8883),实现消息发布/订阅功能。代码包含SSL上下文创建、连接配置、回调处理等核心模块,适用于金融、医疗等敏感数据传输场景。文章还提供了MQTT工具类(MqttClientV3Util)的简要说明,支持客户端创建原创 2025-08-19 22:48:14 · 463 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT基层功能:带遗嘱消息的智能家居温度传感器(可靠传输保障)】
【摘要】 本文介绍了MQTT协议及其应用,包括免费的公共MQTT服务器资源(如Mosquitto、HiveMQ等),并提供了Java实现示例。重点展示了智能家居温度传感器的模拟代码,通过MQTT协议周期性发布温度数据,支持遗嘱消息机制确保设备异常离线时自动通知。工具类MqttClientV3Util简化了客户端连接管理,示例代码支持多设备并发运行,适用于物联网设备监控场景。原创 2025-08-19 21:12:59 · 491 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT基层功能:MQTT遗嘱消息(可靠传输保障)】
【MQTT应用开发指南】 本文系统介绍了MQTT协议应用开发全流程: 公共服务器资源:提供6个免费MQTT Broker(含Mosquitto/HiveMQ等),详细列出地址、端口及协议支持; 开发工具类:封装MqttClientV3Util工具类,实现客户端创建、连接管理和资源释放; 遗嘱消息实战:通过Java代码演示遗嘱消息机制,当客户端异常断开时自动发布离线状态,包含主题订阅、QoS设置等关键实现。适用于物联网设备状态监控场景,所有示例均通过公共服务器验证。(149字)原创 2025-08-19 18:40:11 · 645 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT基层功能:发布/订阅】
【摘要】MQTT(消息队列遥测传输)是一种轻量级的物联网通信协议,支持发布/订阅模式。本文介绍了多个免费公共MQTT服务器(如Eclipse Mosquitto、HiveMQ等),并提供了Java示例代码实现基础消息收发功能。通过MqttClient工具类可快速建立连接,实现QoS等级为1的消息传输,适用于物联网设备与云端通信。原创 2025-08-19 18:12:19 · 849 阅读 · 0 评论 -
实战:软件架构网络系列之【 MQTT V3工具类:MqttClientV3Util】
【摘要】 两篇科普文分别介绍了MQTT协议及其应用。第一篇详解MQTT(消息队列遥测传输)协议特性及在物联网中的应用;第二篇梳理了6个免费公共MQTT服务器(如Eclipse Mosquitto、HiveMQ等),包括地址、端口及协议支持。附带的Java工具类(MqttClientV3Util)提供了MQTT客户端连接管理功能,涵盖创建、连接、关闭等操作,并通过单元测试验证了其健壮性,依赖Eclipse Paho MQTTv3库实现。工具类适用于开发者快速集成MQTT通信能力。原创 2025-08-19 18:01:28 · 995 阅读 · 0 评论 -
科普文:软件架构方法论【第一性原理(First Principles)在软件开发团队管理中的应用】
本文探讨了第一性原理在软件开发团队管理中的应用,主张通过追问底层需求重构管理策略。文章从五个维度提出创新方案:1)按业务需求域重组跨职能团队,取代传统职能分工;2)基于能力-需求匹配动态分配任务,打破均摊工作量的惯例;3)以可衡量的用户价值替代KPI指标;4)建立信息透明的共识决策机制;5)设计基于成就感、技术成长等内在动机的激励机制。这些方法通过消除经验惯性,有效提升了团队协作效率和交付质量,如某案例显示需求周期从2周缩短至5天。实施时需注意平衡专业深度与协作灵活性,建立清晰的能力评估体系,并针对个体差异原创 2025-08-04 20:30:56 · 1091 阅读 · 0 评论 -
科普文:软件架构方法论【第一性原理(First Principles)在软件行业的解析】
本文系统梳理了软件架构中的第一性原理思维方法,指出其通过原子性分解、跨学科溯源和重构创新三个核心特征推动根本性创新。文章详细阐述了该原理在分布式系统、React框架等领域的应用案例,并提出了五层追问法、验证矩阵等实践工具。同时强调需防范过度理论化风险,建议设定3-5层合理分解层级,并建立ROI评估机制。最后给出开发者思维训练方法,包括每日一题练习和架构审查四问,帮助工程师突破行业惯例束缚,从基础原理层面重构系统设计。研究表明,掌握该方法可使系统设计效率提升40%以上。原创 2025-08-04 20:26:17 · 902 阅读 · 0 评论 -
科普文:软件架构方法论【软件行业的定理/定律梳理:第一性原理(First Principles)】
摘要:第一性原理是一种从基本公理出发推导复杂问题的思维方法,强调剥离经验假设、回归底层逻辑。其核心步骤包括质疑传统假设、拆解本质要素和逻辑重构方案,在科技(如SpaceX火箭设计)、商业(特斯拉电池优化)和密码学等领域具有广泛应用。实施时需平衡原理推导与工程落地,要求深厚的领域知识,并警惕过度解构风险。该方法能突破思维定式,但需注意在常规决策中合理使用,避免认知过载。第一性原理作为对抗思维熵增的工具,帮助从业者在复杂系统中重建创新秩序。原创 2025-08-04 20:18:52 · 1160 阅读 · 0 评论 -
科普文:软件架构方法论【软件行业的定理/定律梳理】补充
本文梳理了软件行业25个重要定理、定律和原则,涵盖开发效率、系统设计、软件质量等六大领域。包括利特尔定律(系统吞吐量优化)、布鲁克斯法则(项目延期风险)、CAP定理(分布式系统设计)等经典理论,以及尼尔森可用性原则(用户体验)、MVP原则(产品验证)等实践指导。这些规律揭示了软件开发的本质特征:任务预估偏差、技术债务累积、系统复杂度增长等固有现象,为架构设计、团队协作和项目管理提供了科学依据,帮助开发者规避常见陷阱,优化技术决策。原创 2025-08-04 11:36:29 · 966 阅读 · 0 评论 -
科普文:软件架构方法论【软件行业的定理/定律梳理】
开发效率 KISS + YAGNI 代码复杂度分析工具(SonarQube)架构演进 康威定律 + 冰山谬论 架构决策记录(ADR)模板团队协作 彼得原则 + DRY 跨职能评审会(RFC机制)风险控制 墨菲定律 + 侯世达定律 故障演练平台(Chaos Mesh)原创 2025-08-04 11:29:28 · 1231 阅读 · 0 评论 -
科普文:软件架构方法论【实战“首页≤10屏、门户≤10屏、官网≤3屏、电商≤6屏”】
【摘要】本文系统阐述了前端设计中"屏"的概念及谷歌建议的屏数规范。不同类型网站有不同屏数限制:门户网站≤10屏、企业官网≤3屏、电商网站≤6屏。文章详细解析了各类型网站的典型屏数结构,并提供了技术实现方法(如动态检测、CSS视口单位控制)。研究数据表明,屏数与页面性能指标(加载时间、留存率等)密切相关。最后针对特殊场景(如长表单、无限滚动)提出优化建议,强调通过量化控制实现用户体验与技术性能的最佳平衡。(148字)原创 2025-08-01 13:48:05 · 942 阅读 · 1 评论 -
科普文:软件架构方法论【前端设计:为何谷歌说“首页≤10屏、门户≤10屏、官网≤3屏、电商≤6屏”?】
本文探讨了网页设计中"屏数"规范的科学依据,指出谷歌建议的屏数限制(首页≤10屏、门户≤10屏、官网≤3屏、电商≤6屏)是基于用户行为、认知规律和商业目标的综合考量。核心发现包括:1)用户注意力集中在首3屏,认知负荷遵循"3-5-7"原则;2)不同类型网站需差异化设计,如官网需3屏内完成品牌传达,电商需6屏内平衡商品展示与转化效率;3)移动端主导环境下,超长页面会加剧加载延迟和操作疲劳;4)每增加1屏可能导致转化率下降5-10%。研究强调屏数规范本质是优化用户体验与商原创 2025-08-01 10:41:42 · 1278 阅读 · 0 评论 -
科普文:软件架构方法论【前端设计:什么是屏/屏数?】
本文围绕"屏数"概念展开技术解析,首先阐明其作为衡量网页内容纵向长度的核心定义,指出1屏代表用户不滚动时的完整可视区域。通过官网(≤3屏)、电商(≤6屏)、门户(≤10屏)三类典型场景示例,说明如何根据业务目标规划屏数布局。文章详细介绍了屏数的测量方法、响应式适配原理及商业价值,强调关键信息需集中在前3屏以优化转化率。最后提出技术实现要点,包括懒加载优化和内容密度控制,为前端工程提供实用指导规范。原创 2025-08-01 09:39:10 · 953 阅读 · 0 评论 -
科普文:软件架构方法论【架构师技术选型梳理】
技术选型需平衡业务需求、团队能力、技术成熟度和长期成本四大维度。优秀架构师会通过结构化评估,确保选型既满足当前需求,又为未来发展预留空间。核心考量包括:业务匹配度(核心需求对齐、场景适配性)、技术可行性(团队能力、成熟度、依赖风险)、性能扩展性(吞吐量、延迟、水平扩展)、可靠性(容错机制、监控告警)、安全性(数据加密、合规要求)、可维护性(开发效率、运维友好性)和成本效益(硬件/隐性成本、许可合规)。决策流程需进行多方案对比、原型验证并形成团队共识,最终通过POC验证和渐进式落地实现科学决策。原创 2025-07-26 00:02:57 · 1057 阅读 · 0 评论 -
实战:软件架构方法论【入门Jmeter性能测试】
本文系统介绍了软件性能测试的理论与实践。主要内容包括:性能测试的定义与目的,通过负载测试、压力测试等方法评估系统响应速度、并发处理能力等指标;详细讲解JMeter工具的使用方法,包括线程组配置、HTTP请求发送、参数化设置、断言检查等步骤;并解析聚合报告中的关键指标如响应时间、吞吐量、错误率等。文章还对比了负载测试与压力测试的区别,强调性能测试对确保系统稳定性的重要性。最后提供了相关技术文档和百科链接作为扩展阅读资源。原创 2025-07-25 21:14:20 · 983 阅读 · 0 评论 -
实战:软件架构方法论【Little定律(Little‘s Law):JMeter性能测试—利特尔定律在工作负载模型中的应用】
本文介绍了利特尔定律(Little's Law)及其在性能测试中的应用。该定律指出稳定系统中的平均客户数(N)等于平均抵达率(λ)乘以平均停留时间(W),即N=λW。文章通过售票柜台示例说明该定律,并展示如何将其应用于Web服务器性能测试,验证测试结果的准确性。作者还探讨了如何利用Google Analytics数据确定合适的工作负载模式,包括吞吐量、思考时间和并发用户数的计算方法。最后强调使用利特尔定律可有效识别测试工具本身造成的瓶颈,确保性能测试结果的可靠性。原创 2025-07-25 15:24:17 · 758 阅读 · 0 评论 -
科普文:软件架构方法论【Little定律(Little‘s Law)详解】
本文系统介绍了排队论中的核心定理——Little定律(L=λ×W),揭示了稳定系统中平均请求数(L)、请求到达率(λ)和平均响应时间(W)之间的守恒关系。定律表明:系统并发量等于吞吐量与响应时间的乘积,这为Web服务器性能分析提供了量化工具。文章详细阐述了三个关键参数的含义及相互影响,列举了在容量规划、瓶颈定位、资源预估等场景的应用方法,并指出常见误区(如单位统一、稳态前提等)。通过咖啡店、数据库连接池等实例,演示了如何利用该定律进行系统优化和资源调配,同时强调其作为性能分析基础工具的价值与限制条件。原创 2025-07-25 13:37:27 · 963 阅读 · 0 评论 -
实战:JUC系列之基础类Unsafe应用场景【阻塞队列 Unsafe.park/Unsafe.unpark替代方案java.util.concurrent.locks.LockSupport】
本文介绍了Java并发编程中的LockSupport工具类,它是基于Unsafe类实现的底层线程控制原语。LockSupport提供park/unpark方法实现线程精准阻塞与唤醒,相比Object的wait/notify具有免锁依赖、支持中断检查等优势,是构建AQS、Disruptor等并发框架的基础。文章通过一个超时阻塞队列的代码示例,展示了如何使用LockSupport实现生产-消费模型,包含put和take方法的超时控制逻辑。该队列利用LockSupport.parkNanos进行定时阻塞,并通过u原创 2025-06-29 23:22:53 · 884 阅读 · 0 评论 -
实战:JUC系列之基础类Unsafe应用场景【阻塞队列 Unsafe.park/Unsafe.unpark】
《JUC系列之Unsafe类详解》介绍了Java底层类sun.misc.Unsafe的功能与实现原理。文章通过一个支持超时的阻塞队列案例,展示了Unsafe在并发编程中的典型应用:1)使用CAS原子操作(compareAndSwapInt)实现线程安全;2)通过park/unpark方法控制线程阻塞与唤醒。特别强调Unsafe作为内部API存在风险,建议优先使用java.util.concurrent包的标准工具。该技术博客深入解析了Unsafe的内存操作、线程控制等底层机制,为理解Java并发原理提供了重原创 2025-06-29 21:52:21 · 754 阅读 · 0 评论 -
科普文:JUC系列之基础类Unsafe详解
Java中的Unsafe类(sun.misc.Unsafe)提供了直接操作内存、线程和CAS等底层功能,绕过JVM安全检查。核心原理是通过JNI调用C/C++代码实现硬件级操作,主要方法包括内存分配/释放、CAS操作和线程调度等。虽然Unsafe能实现高性能无锁数据结构(如自旋锁)和堆外内存管理,但存在内存泄漏、JVM崩溃等风险,且不同JDK版本兼容性差。典型应用包括ConcurrentHashMap的CAS操作和Netty的堆外内存分配。由于是内部API且使用危险,建议优先使用java.util.conc原创 2025-06-28 23:13:44 · 674 阅读 · 0 评论 -
科普文:Java对象内存结构详解
Java对象内存结构解析:32位与64位JDK对比分析 摘要: Java对象内存布局主要包含对象头(MarkWord和类型指针)、实例数据和对齐填充三部分。32位JDK对象头为8字节,64位JDK默认16字节(启用压缩指针后12字节)。64位系统下引用类型默认8字节,启用压缩指针后降至4字节。空对象在32位和64位(压缩)JDK中均占16字节,但64位未压缩时达32字节。Class类对象因元数据复杂,内存占用明显大于普通对象。性能方面,64位系统提供更大寻址空间,推荐启用压缩指针(堆内存<32GB时)原创 2025-06-28 22:10:17 · 929 阅读 · 0 评论 -
科普文:软件架构设计【安全设计:Java动态编译JavaCompiler实现代码隐藏】
* 执行ServiceConfig类* 第一次运行时会自动创建以下文件:* target/classes/com/zxx/study/rjava/codeBehind/spi/MyServiceImpl.class* data/my/key.enc(包含加密密钥)* data/my/MyServiceImpl.enc(加密后的类文件)* 注意事项:* 在生产环境中,请确保:* 密钥不应硬编码在代码中* 应使用专业的密钥管理系统(如HSM或KeyStore)* 加密类应该通过混淆工具处理*原创 2025-05-31 18:18:30 · 1017 阅读 · 0 评论 -
科普文:软件架构设计【安全设计:Java动态编译JavaCompiler技术解析以及代码隐藏】
【摘要】本文详细解析了Java代码隐藏技术的实现方案,通过动态生成加密代码、编译时加密字节码、自定义类加载器解密等步骤构建安全架构。重点剖析了JavaCompiler API的核心原理与使用流程,包括SPI机制、编译任务配置和诊断信息收集。文章对比了该技术的性能优劣(50-200ms/次编译),列举了在线编程环境等典型应用场景,并针对常见错误提供解决方案。最后从对象复用、并行编译、内存缓存等6个维度提出优化方案,实测可降低50%-70%内存消耗,提升3-5倍吞吐量,强调需结合安全沙箱和版本控制使用。原创 2025-05-31 18:01:42 · 1040 阅读 · 0 评论 -
科普文:一文搞懂jvm实战(六)JVM监控原理之ManagementFactory获取当前jvm信息:运行时、死锁、gc等
ManagementFactory 是 Java 平台提供的标准工厂类,用于通过 MXBean(管理扩展 Bean) 暴露 JVM 运行时数据。其底层基于 JMX(Java Management Extensions) 技术,通过 MBeanServer 将 JVM 内部状态(如内存、线程、GC 等)封装为可访问的管理接口。关键机制:MXBean 规范:定义标准数据模型,仅使用基本数据类型(如 long、String),确保跨版本兼容性。平台 MBeanServer:自动注册原创 2025-04-15 12:34:24 · 753 阅读 · 0 评论 -
科普文:Java基础系列之【并发编程二java线程状态:BLOCKED、WAITING、TIMED_WAITING】
前面有梳理java的线程状态和操作系统的线程状态:java的线程调用的就是操作系统的线程接口,其线程状态只是将Ready和Running统称为Runnable。因为java线程的start底层调用的native方法start0是操作系统提供的方法,start之后,即将线程交给操作系统来调度。详细可以看:Java的Thread.State枚举,共有六个状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。原创 2025-04-14 21:32:15 · 1083 阅读 · 0 评论 -
科普文:一文搞懂Maven【JDK、Maven、Spring Boot、Spring Cloud版本对应关系详解】
以下是详细的版本对应关系和搭配建议,可以帮助开发者更好地选择和配置JDK、Maven、Spring Boot和Spring Cloud的版本,确保项目的顺利开发和稳定的运行。在实际项目中,建议根据项目的具体需求和团队的技术栈熟悉度,结合上述指导选择合适的版本搭配,既能保障项目的高效开发,又能确保系统的稳定性和可维护性。:对于生产环境,建议选择Spring Boot和Spring Cloud的LTS版本,这些版本通常会有更长的维护周期和更稳定的功能。原创 2025-03-25 13:47:29 · 2509 阅读 · 0 评论 -
科普文:一文搞懂Maven
Maven基于项目对象模型 (POM) 的概念,Maven 可以通过中央信息来管理项目的构建、报告和文档。Maven(读作“马文”)是一个软件项目管理和构建工具,主要用于Java项目。它简化了项目的构建、依赖管理和项目信息管理。Maven 是一个意第绪语单词,意思是 知识的积累器,最初是为了简化 Jakarta Turbine 项目的构建过程。有几个项目,每个项目都有自己的 Ant 构建文件,但都略有不同。JAR 已签入 CVS。我们需要一种构建项目的标准方法、项目组成的清晰定义、发布项目信息的简单方法以原创 2025-03-25 13:43:36 · 1442 阅读 · 0 评论 -
科普文:2025 年3月18日Java Development Kit (JDK) 24正式发布
Oracle 正式发布,这是备受欢迎的编程语言和开发平台推出的全新版本。Java 24 () 提供了数千项改进,可帮助开发人员提高工作效率并推动创新。此外,平台提升了性能、稳定性和安全性,可帮助企业加快业务增长。敬请关注 2025 年 3 月 18 日至 20 日在美国加利福尼亚州红木海岸举办的会议,了解有关新的 Java 24 版本的更多信息。原创 2025-03-23 17:07:52 · 1602 阅读 · 0 评论 -
科普文:【支持信创、宣传国产】通过JCK认证的国产JDK梳理
未通过JCK 认证的 OpenJDK 发行版阿里巴巴 Dragonwell:未明确标注通过 JCK 认证。腾讯 Tencent Kona JDK:未明确标注通过 JCK 认证,一组工具,和其它的一些需求,用来检查一个实现是否和Java平台规范和软件参考实现兼容。JCK (或TCK for Java SE)用于验证一个Java的运行和开发环境是否符合JavaSE标准。另一方面,JCK包含海量的测试用例,通过了JCK也代表了质量保证,其他组织可以放心地使用通过了JCK测试的Java虚拟机。原创 2025-03-23 13:39:39 · 1030 阅读 · 0 评论 -
实战:一文搞懂JVM原理(八):startup.sh分享一个springboot启动脚本
3. 支持新特性:JDK8、JDK11和JDK17都引入了很多新的语言特性和API,如Lambda表达式、Stream API、新的日期时间API、Var关键字等,这些新特性能够提高代码的可读性、可维护性和灵活性,也使得开发更加高效和简便。4. 生态支持:JDK8、JDK11和JDK17都有丰富的生态支持,包括各种开源框架、库、工具和平台,可以帮助企业快速开发和上线应用,提升开发效率和质量。涵盖 TLAB、逃逸分析、数据共享、锁优化、大对象处理、堆内存分配 等核心优化点,原创 2025-03-19 11:26:50 · 392 阅读 · 0 评论 -
科普文:一文搞懂JVM原理(八):对于微服务springboot进程的jvm大小如何设置?
微服务JVM配置需结合业务负载、容器资源及GC特性综合设计,核心原则为:。建议通过压力测试验证配置合理性,并持续监控运行时指标动态优化。注:实际选型需结合压力测试验证,例如通过。分析各阶段耗时及Full GC频率。原创 2025-03-19 11:17:31 · 1095 阅读 · 0 评论 -
科普文:一文搞懂JVM原理(七):垃圾回收之CMS、G1、ZGC对比 (补充 )
垃圾回收(Garbage Collection,简称GC)是内存管理的核心组成部分,它负责自动回收不再使用的内存空间。在Java中,程序员不需要手动释放对象占用的内存,一旦对象不再被引用,垃圾回收器就会在适当的时机回收它们所占用的内存。 这样可以避免内存泄漏和野指针,从而大大减轻了程序员的负担,也使得Java成为一个相对安全、易于开发的编程语言。防止内存泄漏:手动管理内存容易导致内存泄漏,而GC可以自动回收不再使用的对象,防止内存泄漏的发生。提高开发效率。原创 2025-03-19 11:12:01 · 986 阅读 · 0 评论 -
科普文:一文搞懂JVM原理(七):如何选择JDK和GC收集器
前面做了汇总,继续看看如何选择jdk和垃圾收集器?选择jdk,就一个标准收费和不收费。有钱任性的选择甲骨文高版本jdk,性能肯定会有提升,毕竟甲骨文是企业,挣的就是卖软件的钱;没钱的,老老实实的用jdk8U211,jdk11.0.2,基本没得选。所以jdk不用选,确定了jdk之后,比如不想被甲骨文收割的那么就只能这两个版本。jdk8:支持cms、Parallel GC、G1;jdk11:支持G1、以及早期版本的ZGC。原创 2025-03-19 10:56:38 · 1292 阅读 · 0 评论