
Java
文章平均质量分 77
Java基础知识、Jvm等
bboyzqh
时刻保持好奇心~
展开
-
2024后端开发面试题总结
上一篇离职贴发布之后仿佛登上了热门,就连曾经阿里的师兄都看到了我的分享,这波流量真是受宠若惊!回到正题,文章火之后,一些同学急切想要让我分享一下面试内容,回忆了几个晚上顺便总结一下,专家岗位面试主要对项目、技术和算法三个方面进行考查,有问题可以留言讨论。原创 2024-07-27 11:42:45 · 677 阅读 · 0 评论 -
Spring容器中scope为prototype类型Bean的回收机制
通过 AutowireCapableBeanFactory 方法 autowireBean 可以将对象装配成 Spring 管理的标准 Bean 对象,主要是用于来填充有注解的属性,这样才可以使用 Spring 的 DI 特性。通过代码 new 出来的对象使用 AutowireCapableBeanFactory 方法 autowireBean 填充属性成为标准 Spring Bean 后不用担心内存溢出的问题,本质上和 Spring prototype Bean 的回收机制一样,使用完就有可能被原创 2023-12-16 15:22:21 · 846 阅读 · 0 评论 -
怎么理解函数式编程思维?
理解函数式编程要注重思维的转变。函数式编程聚焦于简洁的高阶函数,高阶函数注重封装底层运作原理来解决复杂的业务场景。原创 2023-10-21 11:27:42 · 252 阅读 · 0 评论 -
Java9模块化学习总结
2017 年 JDK9 引入了“模块化”的概念后,上述问题都得到了一定的解决。模块化将类和资源封装在模块中,仅导出其他模块需要访问的公共包。从概念上可以看出模块化必须遵循三个核心原则:强封装性:隐藏模块实现内部细节,分离供其他模块访问的公开代码定义良好的接口:模块需要向其他模块公开定义良好且稳定的接口显式依赖:模块间的依赖关系可以产生一个模块图:节点表示模块,边缘表示模原创 2023-07-01 00:13:37 · 792 阅读 · 0 评论 -
流程引擎之compileflow简介
compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎。compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是**专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成 java 代码编译执行,简洁高效**。当前是阿里业务中台交易等多个核心系统的流程引擎。compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。原创 2023-02-19 12:37:23 · 2677 阅读 · 0 评论 -
流程引擎之Flowable简介
Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎,通过 Flowable 流程引擎,我们可以部署遵循 BPMN2.0 协议的流程定义(一般为XML文件)文件,并能创建流程实例,查询和访问流程相关的实例与数据等等。原创 2023-02-19 12:31:22 · 5628 阅读 · 0 评论 -
流程引擎之Camunda简介
Camunda 是支持 BPMN(工作流和流程自动化)、CMMN(案例管理) 和 DMN(业务决策管理) java 框架。Camunda 基于Activiti5 保留了 PVM,其开发团队也是从 activiti 中分裂出来的。Camunda 来自拉丁语动词”capere”(理解)和“munda”(干净),它意味着我们想要深入了解我们周围的世界,并基于这种了解,我们想要以一种既有效又道德正确的方式让世界成为一个更美好的地方,为了我们所有人。原创 2023-02-19 10:17:59 · 7317 阅读 · 0 评论 -
流程引擎之Activiti简介
Activiti 是一个开源架构的工作流引擎,基于 bpmn2.0 标准进行流程定义,其前身是 jBPM,Activiti 相对于 jBPM 更轻量,更易上手,且天然集成了 Spring。2010年 jBPM 创始人 Tom Baeyens 离开 JBoss,随之加入 Alfresco 后很快推出了新的基于 jBPM4 的开源工作流系统 Activiti5。原创 2023-02-19 09:57:59 · 3612 阅读 · 3 评论 -
记一次堆外内存泄漏分析
记一次堆外内存泄漏分析原创 2023-01-01 16:47:37 · 9584 阅读 · 1 评论 -
常见日志框架使用及日志打印规范设计
slf4j 是各种日志框架的 facade 抽象,log4j、logback、java.util.logging 是 slf4j 不同的实现方式,另外 slf4j-simple 是 slf4j 提供的简单实现。commons-logging 和 slf4j 类似,是 apache 最早提供的日志的门面接口,log4j 和 java.util.logging 也提供了相应的实现方式。原创 2022-12-21 20:43:47 · 1691 阅读 · 0 评论 -
责任链模式auto-pipeline工具使用及源码解析
设计模式责任链模式是一种类似于“击鼓传花”的模式,执行者对象拥有下一个对象的引用从而形式一条链,请求在这个链上传递。常见的如审批模式等。这里介绍一下 auto-pipeline 工具,该工具仅使用 @AutoPipeline 便可自动生责任链相关的系统代码,让开发者更专注于业务流程的开发。原创 2022-10-30 15:12:31 · 960 阅读 · 0 评论 -
《营销5.0后互联网时代的企业战略营销》读书笔记
怀着对“营销”继续探索的心情,今年3月份完成了《营销5.0》的阅读,读本书的初衷是希望从书中能学习到关于营销更专业、更细粒度的知识,比如怎么设计一个完善的会员积分系统,积分监控怎么做,积分价值怎么设定等等,然而事与愿违,营销5.0主要围绕着 CIDR 模型来一点点阐述后互联网时代的企业战略营销框架。对于贴地气的互联网营销技术开发人员,命题有点大但读起来不费劲。本书适用于从事营销产品相关的运营、销售和开发人员,读完此书你将会收获:下面结合自己的理解做一下对《营销5.0》的总结。随着国内电商的流量见顶,国内电原创 2022-06-12 17:52:24 · 592 阅读 · 0 评论 -
三方账号授权登录系统设计思路
借技术总结时间梳理一下三方登录授权的一些技术细节实现,假设saas 店铺和商品管理插件中心是两个独立的账号体系(内部分别对应 shopId 和 sellerId),saas 店铺的商品管理模块在商品管理插件中心进行管理,如下图所示:其中saas 店铺首次使用商品管理插件中心时,需要注册商品插件卖家账号,注册完账号再次使用时会自动登录商品插件卖家账号(商家无感跳转)。过程中需要考虑以下技术细节:核心技术实现细节点:下面和业务串联起来使用(看图说话,细节不再详述,有问题直接留言,回复快):场景一:saas 店铺原创 2022-06-05 10:49:06 · 995 阅读 · 0 评论 -
Spring多数据源TransactionManager冲突解决方案
文章目录现象Spring 事务机制报错原因及解决方案现象近期做了一个业务需求,需要增加多数据源,同时对事务也进行了配置,待发布上线后出现使用 @Transactional 注解的方法抛出 NoUniqueBeanDefinitionException 异常:No qualifying bean of type ‘org.springframework.transaction.PlatformTransactionManager’ available: expected single matching b原创 2022-04-10 20:27:20 · 9174 阅读 · 3 评论 -
简析发送手机验证码原理
在一般互联网网站(如淘宝、京东等)注册账号或者找回密码时通常让用户进行手机号码进行**发送验证码验证**,这种方式能有效的保证帐号安全,下面来解析一下它的原理。原创 2022-02-27 23:36:35 · 8339 阅读 · 0 评论 -
常用短链设计方式
短链设计分为短链生成和查询,短链生成分为两种方式:哈希、自增ID方式,短链查询主要应对高并发场景,可采用cdn、缓存、限流等方式原创 2022-01-15 15:16:26 · 557 阅读 · 0 评论 -
如何使用Arthas查看类变量值
如何使用Arthas查看类变量值原创 2022-01-08 15:42:19 · 18057 阅读 · 3 评论 -
单元测试的两种方案
原则单元测试FIRST原则如下快速(fast):单元测试应该是快速运行的,否则将耗费掉很多开发/部署时间。 隔离(isolated):不同的测试用例之间是隔离的。一个测试不会依赖另一个测试。 可重复(repeatable):单元测试是可重复运行的,且在重复运行时,单元测试总能给出相同的结果(系统环境无关)。 自我验证(self-validating):单元测试可以验证它们的结果,当它们全部通过时,给出一个简单的“OK”报告,当它们失败时,需要输出描述简明的细节。 及时(timely):程序员原创 2021-07-25 21:15:30 · 1922 阅读 · 0 评论 -
Java异步非阻塞编程的几种方式
文章目录方式一:同步调用方式二:Future方式异步调用方式三:Callback回调方式方式四:Java9 Reactive Streams今天读到一篇博客,发现对Java异步非阻塞编程概念有些模糊了,趁此整理了一下常用的几种编程方式。方式一:同步调用当主线程发起IO操作时,会被阻塞,一直等到数据返回,此时主线程状态是Runnable状态。产生的问题是:主线程在IO等待的过程中,线程资源没有得到充分的利用,对于大量IO场景的业务吞吐量会有一定限制。如下图:方式二:Future方式异步调用使用fu原创 2021-03-01 23:32:57 · 2169 阅读 · 0 评论 -
升级阿里云RDS(关系型数据库服务)实例报 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException 问题排查
文章目录现象问题分析与结论解决方案现象目前营销数据库使用的是阿里云 MYSQL 数据库,近期需要支持 DBA 对阿里云 RDS 进行升级,升级公告如下:凌晨 5 点 10 分进行升级后开始日志报错,错误信息如下:问题分析与结论一般出现 duridCommunicationsException 原因是由于连接池获取已经失效的连接导致。从 mysql 上来说:Mysql服务器默认的“wait_timeout”是8小时(也就是默认的值默认是28800秒),即一个connection空闲超过8个小原创 2021-02-10 22:17:38 · 483 阅读 · 1 评论 -
2020年12月8号营销mrc应用内存突然上涨并导致系统OOM
文章目录背景解决问题过程事后分析背景12.08号中午营销mrc应用突然出现内存持续上涨,由开始的67%上升到85%左右(监控如下),好在上升过程比较慢,果断地重启解决了问题。解决问题和分析问题的过程如下。解决问题过程mrc是营销的底层应用,主要偏规则计算,共6台机器(2个集群下,且集群流量是相互隔离的,如上层hipc集群的流量不会请求到k8s集群机器),6台机器同时内存持续上升,参考示意图一。因当天中午是大促,考虑到一个集群下只有3台机器,怕重启一台过程中,其他两台承受不住大促的流量,开始不敢原创 2021-02-10 16:30:06 · 193 阅读 · 0 评论 -
《企业IT架构转型之道 (阿里巴巴中台战略思想与架构实战)》读后感
目录读书的收获计划读书的收获 这本书之前大TL(Team Leader)在找我聊中台的建设思路时向我极力推荐的书,在建设营销中台一年后,终于有时间将这本书读完,期间坚持了不到一个月,时常不仅为作者的思路拍案叫绝,有时候甚至超出计划多读几章,其中的内容是非常值得任何一们有思想的coder学习和借鉴的。 切入正题,结合自己建设中台的经验和自己对这本书的理解,画了一张阿里巴巴共享中心的大致技术架构图,如下(自己功力有限且未接触过真正阿里的架构,不再详细分析,更...原创 2021-02-09 23:48:16 · 464 阅读 · 2 评论 -
标准的服务端返回Result封装及使用
public class ServerResult<T> implements Serializable { private T data; private boolean success; private int code; private String message; private ServerResult() {} pri...原创 2019-01-13 00:38:45 · 7425 阅读 · 1 评论 -
两个HashMap里面的内容是否相等?
Map map1 = new HashMap();Map map2 = new HashMap();比较方法一:map1.equals(map2))比较方法二: Iterator> it1 = map1.entrySet().iterator(); while(it1.hasNext()){ Entry entry1 = it1.next(); Integer integ原创 2016-07-21 22:56:59 · 28722 阅读 · 5 评论