自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 在分布式系统高并发场景中保证数据一致性——幂等性

幂等性是计算机领域的重要设计原则,指同一操作执行一次或多次结果相同且无副作用。它主要解决重复操作带来的系统异常问题,常见原因包括用户误操作、网络问题和分布式系统特性。幂等性可避免数据重复、业务逻辑异常和资源浪费等问题。常用实现手段包括:唯一Token防重复提交、版本号乐观锁防更新覆盖、数据库唯一约束防重复插入,以及基于状态流转的状态机机制。实际应用中需根据业务场景选择合适方案,必要时可组合使用多种方法,确保系统在重复操作时仍能维持正确状态。

2025-07-08 10:06:28 280

原创 Linux常用命令及Dockerfile的编写

本文整理了Linux系统中50个最常用的命令,dockerfile中常用的命令,已经编写dockerfile时的最佳实践。

2025-07-07 09:38:48 542

原创 Java多线程知识小结: JUC工具类及并发编程相关概念

Java并发编程核心概念包括:1.基础机制如volatile(可见性)、CAS(原子操作)和AQS(同步框架);2.锁工具(ReentrantLock、synchronized)和线程协作(Condition、wait/notify);3.无锁原子类和线程池体系(ThreadPoolExecutor、Future);4.同步工具(CountDownLatch、Semaphore)及并发容器(ConcurrentHashMap、BlockingQueue);5.线程本地存储(ThreadLocal)和分治框架

2025-07-06 14:04:09 409

原创 Java多线程知识小结:Synchronized

Java中的synchronized关键字是实现线程同步的核心工具,通过对象头中的Monitor机制保证共享资源的线程安全。它提供三种使用方式:实例方法锁(对象锁)、静态方法锁(类锁)和代码块锁(灵活锁)。Java 6优化后引入锁升级机制(无锁→偏向锁→轻量级锁→重量级锁),提升了性能。关键特性包括可重入性、原子性与可见性,以及异常自动释放锁。典型应用包括保护共享资源、实现单例模式等。优化建议包括缩小同步范围、使用细粒度锁等。相比其他同步方案,synchronized简洁可靠,是Java并发编程的基础设施。

2025-07-06 09:50:38 486

原创 Java多线程知识小结:ThreadLocal

ThreadLocal是Java中用于线程本地存储的工具类,它为每个线程创建独立的变量副本,避免多线程竞争。主要解决三类问题:1)线程安全(如SimpleDateFormat);2)跨层参数传递(如用户上下文);3)资源隔离(如数据库连接)。使用时需注意内存泄漏风险(必须调用remove())、线程池数据残留问题(需在finally中清理),以及不可替代同步机制的场景。典型案例包括Spring事务管理和数据库连接池。正确使用ThreadLocal能提升多线程性能,但滥用会导致内存问题和调试困难。

2025-07-06 08:43:55 789

原创 Java多线程知识小结:线程池的关键参数

本文深入解析Java线程池的性能优化技术,从核心参数、优化策略到实战案例进行全面剖析。首先详解线程池7个关键参数,包括线程数控制、任务队列和拒绝策略;其次提供CPU/IO密集型任务的参数配置公式,并推荐队列选择和拒绝策略;然后通过电商订单和微服务两个案例展示优化效果;接着介绍监控指标和诊断工具;最后强调避免Executors静态工厂方法的常见误区。全文提供具体代码示例和量化优化指标,帮助开发者实现高效稳定的线程池配置。

2025-07-05 18:27:01 530

原创 Java多线程知识小结:线程的创建和销毁

在JVM中,线程的创建和销毁是资源密集型操作,涉及操作系统内核资源(如内核栈、TCB)、JVM内存(虚拟机栈、线程对象)和CPU时间(上下文切换)等多方面消耗。每个线程默认占用1MB栈空间,大量创建会导致内存压力。销毁线程时也存在资源回收延迟和内存泄漏风险。优化建议包括使用线程池复用线程、合理配置线程数量、调整栈大小以及妥善管理ThreadLocal。通过案例分析可见,合理控制线程资源能显著提升系统性能,避免OOM等问题。

2025-07-05 15:15:54 608

原创 Java IO相关技术小结

Java IO技术分为传统BIO(同步阻塞)、NIO(同步非阻塞)和AIO(异步非阻塞)三大类。BIO基于流操作,适合简单文件或网络通信;NIO引入通道、缓冲区和选择器,支持高并发处理;AIO由操作系统完成IO操作后通知应用。BIO线程开销大,NIO适合短连接高并发场景,AIO适合长连接任务。关键点包括:字节流与字符流的区别、NIO的零拷贝机制、Selector多路复用,以及异步回调模式。注意使用try-with-resources管理资源,结合场景选择合适IO模型。

2025-07-05 11:46:46 880

原创 通用型自动化测试框架架构设计考量

本文提出了一个自动化测试框架的架构设计方案,重点分析了5大核心考虑因素和6种关键设计模式的应用。在架构设计方面,强调可扩展性、可维护性、灵活性、可靠性和安全性,包括支持多种测试类型扩展、插件化设计、环境切换和并行执行等特性。在设计模式应用上,详细阐述了工厂模式、策略模式、单例模式等6种模式的具体实现方式,展示了如何通过代码分层(测试用例管理层和业务逻辑层)构建标准化测试流程。该方案通过清晰的分层设计和模式应用,实现了测试框架的高扩展性、可维护性和稳定性。

2025-07-05 09:17:20 742

原创 敏捷开发在国际化团队管理中的落地

探讨一下敏捷开发在跨四时区(上海、伦敦、浦那、安大略)金融科技团队中的落地实践。

2025-07-04 23:18:18 946

原创 关于Spring的那点事(2)

最小化样板代码:通过和自动配置,减少90%以上的XML配置;标准化最佳实践:内置HikariCP连接池、SLF4J日志框架等默认配置,避免开发者踩坑;开发者生产力优先:热部署(DevTools)、自动重启、LiveReload等特性缩短反馈周期;云原生友好:支持Docker镜像打包、Kubernetes探针(通过Actuator)、外部化配置(Config Server)。这种设计哲学使Spring Boot成为微服务时代的首选框架,推动Java生态在云原生领域持续领先。

2025-07-04 14:52:25 975

原创 金融系统中常用的FIX协议

FIX协议诞生于1992年,由摩根士丹利等金融机构发起,旨在通过标准化电子通信替代传统人工流程,实现直通式处理(STP)。其分层架构将会话层(连接管理)与应用层(业务逻辑)分离,支持多资产类别和全球化交易。核心优势包括高可靠性(序列号/重传机制)、灵活性(自定义字段)和开源生态(如QuickFIX),但存在复杂性高、性能瓶颈等局限。相比SWIFT(支付结算)和ISO 20022(结构化数据),FIX在交易执行领域占据主导地位,覆盖90%以上机构系统。

2025-07-04 13:50:19 843

原创 AI大模型驱动的需求管理革新:场景、价值与演进

传统需求管理存在信息损耗、协同低效和文档滞后三大痛点。AI大模型通过自然语言交互、结构化需求转化和自动化流程,重构了需求管理的全流程。

2025-07-03 15:20:56 391

原创 主流分布式中间件及其选型

在互联网公司的分布式架构中,中间件是支撑系统高可用、高并发、可扩展的核心组件。这些中间件针对分布式环境下的共性问题(如通信、数据一致性、资源调度等)提供标准化解决方案,极大降低了分布式系统的开发复杂度。

2025-07-03 08:39:47 1089

原创 回顾JAVA中的锁机制

Java中的锁机制是实现线程安全的关键技术,主要包括内置锁(synchronized)和显示锁(Lock接口)。内置锁语法简单,自动管理锁释放,适用于简单同步场景;显示锁(如ReentrantLock)提供更灵活的锁控制,支持公平锁、可中断锁等高级特性。读写锁(ReentrantReadWriteLock)适用于读多写少场景,而Java8引入的StampedLock优化了读性能。锁优化技术包括锁粗化、锁消除、偏向锁等。选择锁机制时,简单场景优先内置锁,复杂控制需求则考虑显示锁,需根据具体场景权衡使用。

2025-07-02 21:42:49 1037

原创 快速说一下TDD BDD DDD

简要说说TDD, BDD, DDD在工作中的应用。

2025-07-02 16:12:52 1305

原创 软件质量保障自动化测试开发领域专家

回顾一下软件质量保障自动化测试开发领域专家相关的核心技术与实践。

2025-07-02 09:57:58 1090

原创 Java开发中常用的数据结构

Java中的数据结构丰富多样,不同结构在存储方式、访问效率和适用场景上各有优劣。以下从线性结构、集合类、映射类、队列/栈、特殊数据结构五个维度,系统梳理常用数据结构的特性与应用场景。

2025-07-02 06:00:00 452

原创 云原生的本质

云原生(Cloud Native)是一种面向云计算环境的应用架构和技术体系,旨在充分利用云平台的弹性、分布式特性,实现应用的快速交付、高效运行和持续演进。

2025-07-01 14:58:00 1061

原创 关于管理能力的一些思考

管理管理,既要管又要理,管理能力可以应用在自己的日常工作、生活的方方面面。本期的内容就从自我管理、项目管理、团队管理三个方面聊一聊我在管理能力上的一些经验和思考。

2025-07-01 09:45:33 727

原创 微服务架构之基本设计原则

作为系统架构师,在进行架构设计时需要遵循一系列经过实践验证的核心原则,这些原则贯穿于需求分析、模块划分、技术选型和系统演进的全流程。

2025-06-30 21:29:25 1292

原创 关于Spring的那点事(1)

这是本次要探讨的话题,认识Java很久了,用Spring做日常开发也十好几年了,但究竟这几个东东是什么?怎么产生的?解决了什么问题?有哪些利弊?有没有其他可替代的方案?……今天,我需要好好思考一下这些问题。Spring:Java 企业级开发的基础框架Spring Boot:快速构建 Spring 应用的脚手架Spring Cloud:微服务架构的一站式解决方案。

2025-06-30 16:49:05 661

原创 60天职业重启计划

十年金融行业经验是稀缺优势,面试时需突出“金融业务理解+技术落地能力”的复合竞争力,例如:“在XXX自动化测试框架中,我们特别设计了符合PCI-DSS合规要求的用例加密模块,这对金融企业的安全测试至关重要”。保持每日行动节奏感,焦虑会随计划推进逐渐转化为掌控感!

2025-06-30 09:45:26 508

原创 从零开始Coding与复制粘贴的区别

作为一名程序猿,我用不同的语言写过很多代码,从最初的照葫芦画瓢,到复制粘贴改,再到系统重构和优化,以及从零开始设计和实现一些东西,产生的些许想法,现在记录在此。(1)有必要重复造轮子吗?作为最喜欢偷懒的一类人,程序猿喜欢拿来主义,所谓拿来主义就是把别人已经实现过而我们恰好需要的代码搬来变成我们的薪酬,这是一件很开心的事,用最少的时间最低的成本产生价值。这么干的弊端就是,一旦出现问题,可能就不...

2019-07-06 00:05:26 391

原创 OpenShift项目实战(1)管理工具

由于在项目开发过程中需要使用微服务架构,将应用部署到云开发平台以实现CD(continuous delivery),项目主要采用的管理工具如下:(1) GitHub (Source Code Management) (2) JIRA (Requirement & Task Management) (3) TeamCity/Jenkins (Building & Test ...

2018-07-18 11:34:49 846

原创 IntelliJ IDEA 2017激活的正确姿势

IntelliJ

2017-08-06 18:49:25 343

原创 关于重载和覆盖

重载(overload)和覆盖(override)是Java多态性的不同表现方式重载是指在一个类中定义了多个同名但参数列表不同的方法,这些方法通过参数来区分>不同的参数个数>不同的参数类型>不同的参数顺序 注意: 不能通过方法的访问权限、返回值类型或抛出的异常类型来进行重载; 在Java中,子类和超类之间的方法也可构成重载,但是,如果超类中方法的访问权限为private,那么子类中即便定义了同

2017-06-13 23:38:09 320

转载 How to config Eclipse with Cucumber

To configure Eclipse with Cucumber

2017-03-05 17:28:41 295

原创 2017年1月21日学习笔记 Spring是什么?

Spring – Java developer的春天Spring是什么?Spring是一个容器框架,用于配置bean,并维护bean之间关系。Spring的功能就是让对象与对象之间的关系没有通过代买来关联,而是通过配置类的说明来进行管理,Spring根据配置和反射去动态组装对象。Spring是一个容器,只有在容器里的对象才能使用Spring提高的服务和方法。Spring中对经典的一个设计模式就是模

2017-01-23 23:12:06 350 1

原创 2017年,一个新的开端

古人有云:期乎其上,方能及其中;期乎其中,方能及其下;期乎起下;则不及矣。但凡人事,预则立,不预则废。有一个能力上可以接近的目标,有一个行得通的计划,对于实现期望目标是很有必要的。在确立目标和指定计划之前,先对过去的一些情况做一个概括性的总结。二零一六年,对于我来说,很多事情开始慢慢变好。还记得刚毕业的时候,整个人都是异常紧张的,经历了很多。从找工作时的迷茫,初为人父时的无措,家庭带来的各种压力,第

2017-01-21 23:52:00 637

转载 C#使用异步实现 IO 操作

使用异步特性实现 IO 操作的意义异步特性有利于增强应用程序的响应能力。因为一个操作的 UI 线程可以执行其他工作。如果 UI 线程需要执行较长时间的代码(如,> 50ms),UI 会阻塞到 I/O 完成,这时用户界面线程才可以重新处理键盘、鼠标输入和其他操作。 文件访问操作的延迟在本地也许非常低,但是,我们可以考虑一下文件在非本地时进行的操作。例如,文件可能会存放位于远程的服务器。 使用异步额

2016-12-07 00:03:47 4710

转载 About Delegate and Anonymous methods

This article—C# Delegates and Events— by Jeff Suddeth explains delegates and their applications in anonymous methods, asynchonous method calls, events, multicast delegates, threads, and Win32 callbacks

2016-12-04 22:57:11 314

原创 关于代码重构Refactoring

所谓代码重构,就是在不改变软件的功能和外部可见性的情况下,为了改善软件结构、提高代码可读性、可扩展性、可重用性等进行的改造,对代码内部的机构进行优化。重构与设计是互补的,程序应该是先设计,而在开始编码后,设计上的不足可以用重构来弥补。设计应该是适度的设计,而不必过度的设计。如果能很容易的通过重构来适应需求的变化,那么就不必过度的设计,当需求改变时再重构代码 。在代码重构的过程中,更多的其实是为了去除

2016-11-29 23:34:19 346

原创 关于.net程序集

在.NET Framework框架中,程序集是重用、安全性以及版本控制的最小单元。程序集的定义为:程序集是一个或多个类型定义文件及资源文件的集合。程序集主要包含:PE/COFF,CLR头,元数据,清单,CIL代码,元数据。PE/COFF文件是由工具生成的,表示文件的逻辑分组。PE文件包含“清单”数据块,清单是由元数据表构成的另一种集合,这些表描述了构成程序集的文件,由程序集中的文件实现的公开导出的类

2016-11-23 22:35:45 497

原创 Visual Studio代码重构扩展--ReSharper

虽然用过不少IDE,但是,作为一个喜欢偷懒的开发者,我还是最喜欢Visual Studio,简单、省事、功能强大,一个字,赞……虽然Visual Studio自带了代码重构的功能,但是,ReSharper这一扩展工具,使得Visual Studio的代码重构功能更加强大。

2016-11-23 00:11:35 2327

原创 关于自动化测试的一点心得

在软件开发的过程中,测试的重要性逐渐被重视,unit testing/ regression testing/ui testing etc.因为,软件从requirement analysis到release,主要工作虽然是development,但是,测试却是保证软件系统能够正常工作的关键步骤。随着软件系统越来越大,系统的功能测试、UI测试如果只是依赖人工手动测试,也就需要话费越来越多的时间和人力

2016-11-21 21:11:37 1438

原创 略读中国软件开发者白皮书

《2016年中国软件白皮书》

2016-11-21 20:34:13 1121

转载 MVC设计模式

MVC,设计模式

2016-11-20 21:38:49 442

原创 正则表达式的学习

正则表达式在各种程序中都有着难以置信的作用,可以将其看作一种有特定功能的小型编程语言。主要功能:在一大串字符串中定位一个子字符串。正则表达式是一种专门用于处理字符串的语言。主要包含两个功能:1 一组用于标识字符串类型的转义代码2 一个字符串搜索系统使用正则表达式可以对字符串进行复杂而高级的操作:1 区分(标记或删除)字符串中所有重复的单词2 把所

2016-11-19 17:50:21 222

原创 String和string,string和StringBuilder

string, String, StringBuilder

2016-11-18 00:01:55 702

空空如也

空空如也

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

TA关注的人

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