应用开发

java数组索引越界异常解决

Java中的数组索引越界异常(ArrayIndexOutOfBoundsException)是一个运行时异常,它会在你尝试访问数组的索引值超出其允许的范围时抛出。在Java中,数组的索引是从0开始的,直到数组长度-1。如果你尝试访问小于0或大于或等于数组长度的索引,就会抛出这个异常。以下是一些解决数组索引越界异常的方法:1. 检查索引值在访问数组元素之前,确保索引值在有效范围内。你可以通过比较索引

mingtian66
Java
2024-08-15 11:26

「重构:改善既有代码的设计」实战篇

背景在软件开发的世界里,代码重构是提升项目质量、适应业务变化的关键步骤。最近,我重新翻阅了《重构:改善既有代码的设计 第二版》,这本书不仅重新点燃了我对重构的热情,还深化了我的理解:重构不仅仅是代码层面的整理,它更是一种软件开发的哲学,强调持续改进和适应变化的重要性。书中通过详细的案例分析和代码示例,将理论与实践巧妙地融合在一起。我尤其赞赏作者如何将复杂的重构任务拆解成一系列的小步骤,每一步都被

京东技术
IT综合
2024-08-14 10:43

Node.jsV8引擎泄露内存问题解决方法

Node.js的V8引擎泄露内存问题是一个需要认真对待的问题,因为它可能会导致应用性能下降甚至崩溃。以下是一些解决Node.js V8引擎泄露内存问题的方法:使用内存分析工具:利用如Heapdump、v8-profiler等模块生成堆内存状态的快照,并通过Chrome Dev Tool等工具进行分析。这可以帮助你找到内存泄漏的源头12。也可以使用MAT(Memory Analyzer Tool)等

mingtian66
Node.js
2024-08-13 11:21

go语言和java结合使用方法

1. JNI(Java Native Interface)JNI是Java平台的一部分,允许Java代码和其他语言编写的应用程序或库(如C或C++)进行交互。虽然JNI本身不直接支持Go,但你可以通过C或C++作为中间层来实现Go和Java的互操作。步骤:编写C/C++代码:定义你希望在Java中调用的函数,并编写相应的C/C++代码。创建JNI接口:为Java类编写本地方法声明,并加载包含C/C

mingtian66
Go语言
2024-08-07 15:17

高并发场景下的库存管理,理论与实战能否兼得?

前言本篇文章,是一篇实战后续篇,是基于之前我发了一篇关于如何构建高并发系统文章的延伸:  高并发系统的艺术:如何在流量洪峰中游刃有余 而这篇文章,从实践出发,解决一个真实场景下的高并发问题:秒杀场景下的系统库存扣减问题。随着互联网业务的不断发展,选择在网上购物的人群不断增加,这种情况下,会衍生出一些促销活动,类似抢购场景或者热销热卖场景,在高峰时段的下单数量会非常大,也意味着对数据库中畅

京东技术
IT综合
2024-08-07 14:50

监控系统原理揭秘-数据运算篇

一、监控系统概览监控系统在现代技术环境中扮演着至关重要的角色。运营同学每天检查自己的活动数据,研发人员每天检查系统各项指标是否正常,这些工作都少不了监控系统的身影。通常来讲,监控系统包括数据采集、数据计算、数据存储、数据可视化及监控预警等功能。本文主要介绍数据计算部分。二、实时计算流数据实时计算是一种处理和分析实时数据流的技术,它允许企业从连续生成的数据(如日志文件、传感器数据、在线交易等)

京东技术
IT综合
2024-08-06 11:15

高并发系统的艺术:如何在流量洪峰中游刃有余

前言我们常说的三高,高并发、高可用、高性能,这些技术是构建现代互联网应用程序所必需的。对于京东618备战来说,所有的中台系统服务,无疑都是围绕着三高来展开的。而对于京东庞大的客户群体,高并发的要求尤为重要。用户对在线服务的需求和期望不断提高,系统的并发处理能力成为衡量其性能和用户体验的关键指标之一。高并发系统不仅仅是大型互联网企业的专利,对于任何希望在市场中占据一席之地的公司来说,能够处理大量并发

京东技术
IT综合
2024-08-05 13:48

防御性编程:让系统坚不可摧

1. 引言面对复杂多变的运行环境、不可预测的用户输入以及潜在的编程错误,如何确保软件在遭遇异常情况时依然能够稳定运行,是每位开发者必须面对的挑战。防御性编程(Defensive Programming)正是为解决这一问题而生的一种编程范式,它强调在编程过程中预见并防范潜在的错误和异常情况,从而增强软件的健壮性和稳定性。作为一种细致、谨慎的编程方法,通过提前考虑并防范可能出现的错误,从而有效减少软件

京东技术
IT综合
2024-07-25 14:03

京东百万级调度系统(Buffalo)架构解密

一、调度系统简介Buffalo调度是一款京东自主研发的分布式DAG作业调度系统。为京东的数据开发工程师、算法工程师、数据分析师等用户提供了离线作业的编排&调试、监控运维、DAG调度等系统能力,致力于打造行业领先的稳定高效、产品简洁高体验、任务监控全面、资源容器化、系统能力开放化的ETL调度系统。在京东调度系统核心面临的挑战有以下几个:1.业务复杂带来的依赖关系复杂:复杂的数据链路,使得部分

京东技术
IT综合
2024-07-24 14:47

广告在线模型系统负载均衡策略实践

一、背景简介1.1、现状•实际生产环境中,复杂业务系统对分布式服务集群架构的依赖。•服务集群异质化节点的容器化部署,机器性能超卖现象不可避免、性能不均情况时有发生。•服务集群各硬件组件出错率不可避免[1],上层业务相关的应用软件系统需考虑容错设计。•大促流量分布变化难以准确预见,系统服务稳定性与机器资源成本之间需进行妥善权衡。1.2、问题•集群内负载不均,整体资源利用率低。•单节点过载容易触

京东技术
IT综合
2024-07-23 14:15

《软件设计哲学》:新“代码整洁之道”

工作三年以来一直对写出设计优雅且可读性较好的代码抱有执念,最初接触到的关于代码整洁和软件设计的书是《代码整洁之道》,这本书大概在我入职半年时读完,并在很长的一段时间内将其中谈到的“每个方法只做一件事”、“方法长度最多不要超过 5 行”和“优秀的代码都是自解释的,很少会有注释”等等观点奉为圭臬,但是由于其成书较早,其中的一些观点显然已经不再使用当前业务开发环境了。就拿前两点来说,看上去能让每

京东技术
IT综合
2024-07-22 12:20

基于 Three.js 的 3D 模型加载优化

作为一个3D的项目,从用户打开页面到最终模型的渲染加载的时间也会比普通的H5项目要更长一些,从而造成大量的用户流失。为了提升首屏加载的转化率,需要尽可能的降低loading的时间。这里就分享一些我们在模型加载优化方面的心得。

vivo互联网技术
Javascript
2024-07-19 11:40

RaftKeeper v2.1.0版本发布,性能大幅提升!

RaftKeeper是一款高新能分布式共识服务,完全兼容Zookeeper但性能更出色,更多关于RaftKeeer参考Github,我们将RaftKeeper大规模应用到ClickHouse场景中,用于解决ZooKeeper的性能瓶颈问题,同时RaftKeeper也可以用于其它大数据组件比如HBase。v2.1.0作为v2.0.0后的重要版本,引入了一系列新特性,包括异步创建snapshot。该版

京东技术
IT综合
2024-07-15 15:11

消息队列,聊聊发送消息的4种姿势~

微服务开发中经常会使用消息队列进行跨服务通信。在一个典型场景中,服务A执行一个业务逻辑,需要保存数据库,然后通知服务B执行相应的业务逻辑。在这种场景下,我们需要考虑如何发送消息。

码农谈IT
Java
2024-07-10 10:26

幂等性:构建稳健分布式系统的关键

幂等性对于构建大规模、数据完整性不受影响的弹性分布式系统至关重要。幂等性的重试策略是分布式事务的一个优秀替代方案,后者更复杂且随着扩展更难以管理。

张哥说技术
IT综合
2024-07-10 10:25