为啥不建议用BeanUtils.copyProperties拷贝数据
在实际的业务开发中,我们经常会碰到VO、BO、PO、DTO等对象属性之间的赋值,当属性较多的时候我们使用get,set的方式进行赋值的工作量相对较大,因此很多人会选择使用spring提供的拷贝工具BeanUtils的copyProperties方法完成对象之间属性的拷贝。通过这种方式可以很大程度上降低我们手动编写对象属性赋值代码的工作量,既然它那么方便为什么还不建议使用呢?下面是我整理的BeanUtils.copyProperties数据拷贝一些常见的坑。
我在阿里做开发的高效打工技巧总结
如何高效打工?本文作者站在开发的视角总结了一些打工技巧,包括如何高效开会、如何与人沟通、如何做PM等,希望可以给大家提供一些帮助。
系统架构设计面试指南(01)-微服务和CAP
系统设计是定义满足特定需求的系统的架构、接口和数据的过程。系统设计通过协同和高效的系统满足您的业务或组织需求。一旦业务或组织确定了其需求,就可以开始构建一个将这些需求融入物理系统设计的过程,以满足客户的需求。您设计系统的方式将取决于您是选择自定义开发、商业解决方案还是两者结合。 系统设计需要对构建和工程系统采取系统的方法。良好的系统设计要求您考虑基础设施的方方面面,从硬件和软件,一直到数据及其存储方式。
Java中“100=100”为true,而"1000=1000"为false?
今天跟大家聊一个有趣的话题,在Java中两个Integer对象做比较时,会产生意想不到的结果。我们在判断两个对象是否相等时,一定要多注意: 判断两个对象的引用是否相等,用==号判断。 判断两个对象的值是否相等,调用equals方法判断。
去哪儿如何实现故障率降低65%?技术+管理的数字化度量体系实践
如何全面把握系统现状,以便在关键时刻做出明智的决策?这是很多负责全局稳定性的管理者深感关切的问题。基于这一背景,同时也为了寻求提升研发工作效率提升,去哪儿网构建了一套数字化质量度量体系,以此来更精确地度量、管理并提升系统稳定性。 本文将详细解读这套质量度量体系,阐述如何在100多个指标中筛选出关键的度量标准,并进行有效的优化。同时,也将探讨如何借助这个指标模型理论,衡量系统复杂度并进行系统防腐化治理。这套数字化度量体系让去哪儿网的管理决策更有依据,改进方向更明确,结果也更可控,实现了系统运行状态的可视化。
又老性能又差,为什么好多公司依然选择 RabbitMQ?
RabbitMQ 这个消息队列相信很多程序员都用过,我第一次使用是在 2016 年,确实是一个老牌的消息队列了,但是为什么一直没有被淘汰呢?今天来聊一聊这个话题。
又被夺命连环问了!从一道关于定时任务的面试题说起。
定时任务,大家在开发的过程中肯定都是接触过的。 歪师傅面试的时候关于定时任务一般都会问这样的一个问题:在实际开发的过程中,你们是如何避免定时任务重复执行的呢? 什么意思呢?
给祖传系统做了点 GC调优,暂停时间降低了 90%
公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的Young GC(流量并不大,并且LB下的每个节点都会出现该情况)。 在这次长暂停之后,每一次的年轻代GC暂停时间又都恢复在20-100ms以内。 2秒虽然看起来不算长吧,但规则引擎每次执行也才几毫秒,这谁能忍?而且这玩意一旦超时,出单可能也跟着超时失败!
浅析JAVA日志中的几则性能实践与原理解释
程序记录日志的过程,就是将需要记录的内容写入到磁盘文件中的过程。与生活的物流场景类似,好比是一车货物通过一套运输体系运送至目的地的过程,然而在这套物流体系中,我们往往不需要自己完成整套打包、上车、运输、卸货等全套流程,只需要将包打好之后交由专业的物流公司即可。对于我们今天所要描述的日志场景而言,日志内容是需要运送的货物,日志框架就是物流公司,而目的地就是磁盘上的文件(或其他日志收集服务器)。在 Java 的语言体系中,针对日志处理很早有了很好的日志框架 log4j、 logback以及 jul(Java Util Logging) 等,这些框架替我们隐藏了日志记录的技术细节,程序员只需要使用 Logger这一个工具类,即可高效的完成业务日志的记录,
数字化转型的组成要素,一篇讲明白!
本文将探讨数字化转型的组成要素。尽管技术创新是实现数字化转型的关键,但数字化转型组成要素不止技术,还包括组织的业务、数据和人员,如图1所示。
为了搞懂数字化转型,我连问 ChatGPT 42个问题,通透!
我对数字化转型有很多的疑问,这次向ChatGPT请教,连问42个问题,瞬间觉得通透了很多。 下面是我的问题和ChatGPT的回复,近3万字,估计已经可以汇编成一本名叫《数字化转型问题答疑集》的小册子了,共分为概念篇、方法篇、实践篇和数据篇,希望能带给你新的启示!
Serverless单体架构的崛起
在过去的几十年里,我们见证了应用架构以快速的速度演变。当我还是一个年轻的程序员时,开始编写一个简单的代码库,我们可以称之为单体应用。
把数据库放入Docker是一个好主意吗?
将数据库放入 Docker 容器的决定需要考虑多个因素,其中包括应用的规模、性能需求、环境一致性、团队的技术经验等。以下是对将数据库放入 Docker 的一些优势和潜在缺点的更详细阐述:
手把手教你写设计方案
那今天田螺哥跟大家讲讲设计方案如何写哈。我将基于一个送礼物的接口,为其实现幂等,来写一份模板方案设计。
JDK11升级JDK17最全实践干货来了
如果你仍在使用JDK8,那你是否曾经遇到过OutOfMemoryError的问题?你是否曾经为JVM的调优问题感到困扰?本篇文章将为你介绍一种能够提供百倍性能提升的垃圾回收器,也许能够解决你的问题。
2023软件架构和设计的趋势
2023年即将结束,值得回顾一下过去一年的软件架构和设计流行话题。在本文中,我们将讨论一些常见的软件架构和设计,这些架构和设计被广泛采纳。我们主要关注创新者和早期采用者部分。
去腾讯面试了,我自信满满!
摘除了项目拷打的部分,把比较经典的问题给大家做了个总结,面试范围主要是Java 基础+Java 并发+JVM+MySQL+Redis+操作系统+算法,整体上难度一般,可能是项目拷打的比较多,八股就随便问问了。
MongoDB mongoshake 迁移分片到复制集合
Mongoshake 是阿里云自研的开源工具,实现Mongodb 数据库之间的数据同步,数据灾备,数据多活,分库分表,版本升级无间断。
Java表达式引擎选型调研分析
我们项目组主要负责面向企业客户的业务系统,企业的需求往往是多样化且复杂的,对接不同企业时会有不同的定制化的业务模型和流程。我们在业务系统中使用表达式引擎,集中配置管理业务规则,并实现实时决策和计算,可以提高系统的灵活性和响应能力,从而更好地满足业务的需求。
4 种消息队列,如何选型?
这篇文章,主要讲述 Kafka、RabbitMQ、RocketMQ 和 ActiveMQ 这 4 种消息队列的异同,无论是面试,还是用于技术选型,都有非常强的参考价值。