自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (70)
  • 问答 (1)
  • 收藏
  • 关注

原创 设计模式专栏-策略模式

1.模式定义:策略模式(Strategy),定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。2.应用场景1、策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。2、假如系统中有很多

2020-05-19 22:30:02 180

原创 Springboot集成Kafka

POM文件里面的需要的maven依赖信息

2019-12-07 16:10:30 151

原创 java 通过反射破坏单例模式

单例模式真的能够实现实例的唯一性吗?答案是否定的,很多人都知道使用反射可以破坏单例模式,除了反射以外,使用序列化与反序列化也同样会破坏单例。直接上例子这里通过双重校验锁的方式编写一个单例模式public class Singleton implements Serializable { private static volatile Singleton instance...

2019-12-05 16:25:26 593

原创 docker 部署springboot项目

用IDEA生成的项目结构

2019-11-24 16:16:36 148

原创 红黑树左旋和右旋

红黑树的左旋操作假设待左旋的结构中,X为父节点,Y为孩子节点。左旋操作后,Y节点代替X节点的位置,X节点成为Y节点的左孩子,x节点的左孩子成为y节点的右孩子。红黑树的右旋操作。假设待右旋的结构中,y为父节点,x为孩子节点。右旋操作后,x节点代替y节点的位置,y节点成为x节点的右孩子,S节点的右孩子成为P节点的左孩子。...

2019-11-21 09:44:24 521

原创 多线程扫盲篇

java多线程问题扫盲篇

2024-03-10 17:57:59 312 1

原创 每日一面系列之如何优化大表

大数据量的表的查询优化方案有很多,例如:创建索引、优化查询语句、缓存查询结果、提升硬件配置、数据归档和分离,以及数据分片技术(分库分表)等,而这些技术通常是一起配合使用,来共同解决大数据量表的查询速度慢的问题的,其中分库分表的实现最为复杂,所以需要根据自身业务的需要酌情使用。

2023-12-07 13:57:24 123

原创 双十一备战与复盘

在大促期间的稳定性保障一般属于应急策略,因为在前期梳理系统时我详细的梳理了系统的降级预案明确操作手册,系统核心节点也有灾备能力并且在集团组织压测阶段也进行了降级演练,所以在出现问题时我们快速操作降级,在最短时间内解决了接口的性能问题。11.4日13:53分我快速操作系统的灾备开关将系统切换到备链路,在这里我给大家的建议就是一定不要犹豫,不要上来就一直追查原因快速的做出反应和判断,最小化的减少对线上用户的影响。2.在大流量情况下,如何做好系统的流量管控,保障系统的可用。

2023-11-27 13:52:38 131

原创 每日一面系列之@Component和@Configuration区别

Full 模式下,一个 @Bean 方法调用另外一个 @Bean 方法,动态代理方法会先去容器中检查是否存在该 Bean,如果存在,则直接使用容器中的 Bean,否则才会去创建新的对象。Full 模式下,会给配置类生成一个动态代理类,配置类中的所有方法都将被动态代理,因此配置类中的方法不能是 final 或者 private 的。Lite 模式下,配置类中的方法就是普通方法,可以是 final 类型,也可以是 private。Lite 模式下,不需要通过 CGLIB 生成动态代理类,所以启动速度会快一些。

2023-10-10 10:24:07 146

转载 每日一面系列之Java中有for循环为啥还有foreach

嵌套在一个循环中,便会带来更多不必要的内存消耗。会返回一个新的数组,数组的创建和赋值会导致分配内存空间,因此会带来较大的性能开销。:迭代是递归的一种特殊形式,是迭代器提供的一种方法,默认情况下是按照一定顺序。:对于forEach来说,它的函数签名中包含了参数和上下文,所以性能会低于。:for循环没有额外的函数调用栈和上下文,所以它的实现最为简单。:指的对数据结构的每一个成员进行有规律的且为一次访问的行为。是ES5提出的,挂载在可迭代对象原型上的方法,例如。方法,包含他的对象被认为是可迭代的。

2023-10-08 09:22:48 145

原创 每日一面系列之volatile 的理解

volatile。

2023-09-20 10:01:02 119

转载 每日一面系列之美团面试拷打:ConcurrentHashMap 为何不能插入 null?HashMap 为何可以

下面我会以此提供这两个问题的详细答案,希望对你有帮助。

2023-09-19 09:27:42 163

原创 每日一面系列之Spring中@Autowired和@Inject注解的区别?

经常在面试的时候有面试官会对spring中的常用注解解析提问,本次我们针对高频面试题 @Autowired和@Inject注解的区别。

2023-09-18 09:15:57 212

转载 库存预占架构升级方案设计-交易库存中心

伴随物流行业的迅猛发展,一体化供应链模式的落地,对系统吞吐、系统稳定发出巨大挑战,库存作为供应链的重中之重表现更为明显。近三年数据可以看出:接入商家同比增长37.64%、货品种类同比增长53.66%货品数量同比增长46.43%、仓库数量同比增长18.87%通过分析过往大促流量,分钟级流量增长率为75%,大促仓内反馈三方订单下传不及时,库存预占吞吐量和性能是导致订单积压因素之一。

2023-08-30 21:16:40 62

转载 踩坑日记-大报文问题解决方案

根据sku编号查询商品资料,往往伴随着多个sku一起查询的需求,如何设计接口?有的这样:rust复制代码由于批量接口在技术上已经满足了单个查询的功能,有的团队干脆去掉了单个查询接口,造成使用者查询单个sku时:ini复制代码应该这样:java复制代码。

2023-08-28 10:14:39 189

原创 工作中的方法论总结

但目标可实现这一点,通常容易偏高(激进一点,目标自上而下指定,缺乏讨论沟通)或偏低(悲观一点,过于夸大目标实现的难度)。R(Relevant):目标是有相关性的,要求目标是跟实际执行的事情和执行人的角色具有相关性,不能无的放矢;A(Attainable):目标是可实现的,要求目标是实际执行人能够完成实现的,必须经过充分的沟通讨论;T(Time-bound):目标是有时间限制的,要求目标的实现必须有明确的时间节点和里程碑;I(Inform):知情人,项目的进度的知晓方,通常是邮件中的抄送人;

2023-08-11 15:30:10 114

转载 规则引擎liteFlow初步尝试

LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性。利用LiteFlow,你可以将瀑布流式的代码,转变成以组件为核心概念的代码结构,这种结构的好处是可以任意编排,组件与组件之间是解耦的,组件可以用脚本来定义,组件之间的流转全靠规则来驱动。LiteFlow拥有开源规则引擎最为简单的DSL语法。十分钟就可上手。

2023-08-02 20:29:49 224

转载 如何写好一手代码

本文主要从如何快速学习掌握编码技能展开,强调了认知对学习的重要性,提出了选择方向,树立榜样,学以致用等学习路径。同时针对成长过程中遇到的困惑和职业发展方向,做了阐述,借事成长,择时出发,避免进入一些认知误区。以代码阅读案例,直观的展现了如何在代码阅读中学习和思考。最后,介绍了重构的意义和部分原则。总体上,是按照学习成长路线来进行阐述的,希望能够减少我们路上,那些成长的烦恼!

2023-07-27 09:46:47 72

原创 架构重构实践心得

设计集成测试需要减少对其他系统(尤其是和外部第三方交互)的依赖,通过一些 Mock 工具提供稳定的测试数据,让测试结果更稳定可靠,比如使用缓存保证相同的请求能拿到相同的结果,这也能帮助后续新老版本的比对回归验证。全链路上的大规模重构往往都是长期项目,初期制定的计划也肯定会有变化调整,特别是重构过程中会有新的业务需求进入,需要调整优先级,所以计划要分成不同的阶段性里程碑目标。集成测试相比单元测试覆盖率会更大,随着覆盖率越高,覆盖剩余的测试成本也会越大,例如一些异常边界场景,用单元测试覆盖的成本会更低。

2023-07-24 12:53:05 934

原创 工程师常用的6种最佳实践

1、功能模块的启动和结束(完整的系统由多个功能模块组成,每个模块负责不同的功能,因此需要对模块的启动和结束进行监控。你的代码会有未来的观众。该定律指出每一个过程都有其固有的复杂性,存在一个临界点,超过了这个点过程就不能再简化了,你只能将固有的复杂性从一个地方移动到另外一个地方。当然上面这种说话可能触动不了大家的心弦,这么说吧:如果没有很明确的需求,优化了也没有业绩,大家也不知道你做了,那为什么要费这个力气呢。5、关键性方法的进入和退出(一些重要业务处理的方法,在进入和结束的时候需要有日志信息进行输出)

2023-07-24 09:05:29 42

原创 每日一面之JVM参数最佳实践

3)每次GC内存是否下降:应用刚启动时,每次YoungGC内存应该回收到较低水位,随着时间推移老年代逐步增多,内存水位会逐步上涨,直到FullGC/MixedGC(G1),内存会再次回到较低水位,否则可能存在内存泄漏;-XX:ConcGCThreads=n(默认为ParallelGCThreads/4,可视情况调整至ParallelGCThreads/2)4)如果使用ParallelGC,堆内存耗尽才会触发FullGC,所以不用配置堆内存使用率告警,但需关注GC频率;-Xmx(一般为容器内存的50%)

2023-07-19 13:54:16 198

原创 每日一面系列之为什么JMV需要XMX和XMS设置一样

JVM的动态内存策略不太适合服务使用,因为每次GC需要计算Heap是否需要伸缩,内存抖动需要向系统申请或释放内存,特别是在服务重启的预热阶段,内存抖动会比较频繁。另外,容器中如果有其他进程还在消费内存,JVM内存抖动时可能申请内存失败,导致OOM。

2023-07-11 13:28:35 118

转载 每日一面系列之Mysql索引

由于order by后边没有索引,就看where条件中是否有合适的索引,查询选择器选定rx_status这个单列索引,而rx_status=5这个条件下限制的数据行在索引中是连续,即使需要的rx_id不在索引中,再回主键聚簇索引也来得及,由于order by后边没有索引,所以走磁盘级别的排序filesort,高峰积压的时候处方就1万到2万,跑到了100ms,白天低谷的时候几百单也就20ms。,由于外部的ID有的是数字有的是字符串,因而导致索引一会可以走到,一会走不到,最终导致了性能的不稳定。

2023-07-10 13:54:46 70

转载 一篇搞定向上管理--怎样管理领导

当我们做好了上面大部分内容,对我们的领导有了全面的了解,适应了他的工作模式,自如地展现了我们的专业素养和素质,就会经常发现阳光透过办公室窗户洒在你整洁的桌子边上,你坐在舒适的椅子上,轻轻地调整着你的工作日程。四种领导型态没有优劣之分,一切依情境而定,跟前面的人格特质一样的,每个人都有自己的人格特质,每个人都有自己的行为维度,所以呢,我们只有对领导有这样的一个全面的了解以后呢,我们才能对他们进行合理的管理。尽可能多地与领导进行开放式的交谈,了解他们的思考方式,他们的目标和他们对团队和公司的期望。

2023-07-06 13:48:42 86

转载 工作中常见的沟通协作原则与方法

针对工作中的沟通方式进行总结

2023-07-03 13:51:10 212

原创 每日一面系列-spring中@Autowired 和 @Resource 区别?

了解spring中autorwirted和resource区别

2023-07-03 09:14:21 953

原创 Spring的设计理念

了解spring的设计原则

2023-06-11 17:43:03 71

原创 如何做架构设计

通过对架构设计的理解,在实际应用中懂得如何做概要设计、详细设计、好的架构原则是什么

2023-06-10 15:59:27 783

原创 架构师基础篇之如何画架构图C4模型

通过C4模型指定我们如何画架构图能清晰的展现软件的架构

2023-06-10 15:53:41 3385

原创 Mybatis架构总结

SimpleExecutor是一种常规执行器,每次执行都会创建一个statement,用完后关闭。ReuseExecutor是可重用执行器,将statement存入map中,操作map中的statement而不会重复创建statement。BatchExecutor是批处理型执行器,doUpdate预处理存储过程或批处理操作,commit提交事务并执行过程。StatementHandler是四大组件最重要的一个对象,负责操作Statement对象与数据库进行交流,在工作时还会使用ParameterHan

2022-12-05 22:11:30 305 1

原创 JVM参数设置

JVM常用参数设置

2022-07-24 15:10:38 158

原创 Java 对象toString()之后转化成json对象

Java toSting()对象转成json对象

2022-06-28 22:05:45 5643

原创 互联网面试第三讲聊聊线程池

1.什么是线程池?线程池的基本思想是一种对象池,在程序启动时就开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。2.为什么要使用线程池?Thread pools address two different problems: they usually provide improved performance when executing larg

2022-05-08 14:42:28 401

原创 互联网面试第二讲--聊聊Java异常

1.首先讲一下Java异常体系Java中异常中常遇到的哪些坑1.第一个坑 在finally中进行返回,此时的返回值会覆盖正常的返回值具体代码如下 public static int getReturn() { int a = 2; int b = 10; try { return ++a; } finally { return ++b; } }

2022-05-01 18:34:58 434

原创 互联网面试专栏---第一章git reset与git revert区别

互联网面试专栏之git reset与git revert

2022-04-29 22:46:07 284

原创 java源码解析之HashMap篇

一.JDK1.7和1.8中HashMap的数据结构各是什么样的1.在jdk 1.7中hashMap的数据结构是数组+链表结构 如下图2.在jdk1.8中hashMao的数据结构是数组+链表+红黑树 如下图二.hashMap中关键常量 有啥意义//hashMap的默认大小 默认是16 注意hashMap的长度必须是2的幂static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16//最大容量static fin

2022-03-05 16:07:56 558

转载 自定义Starter详细教程

什么是StarterStarter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块并设置默认值,做到开箱即用为什么使用Starter在我们的日常开发工作中,经常会有一些独立于业务之外的配置模块,我们经常将其放到一个特定的包下,然后如果另一个工程需要复用这块功能的时候,需要将

2022-01-13 10:12:55 8116

原创 记一次线上fullgc排查历程

在公司一次重大项目中,生产环境突然发生频繁fullgc问题,通过cat发出警告。很不幸,这次项目非常重要,领导很看重,所以得赶紧解决问题,下面就是排查的艰苦历程22:10 线上可以报警,出现fullgc问题,初步判断是服务器少了,于是申请堆线上服务器进行扩容,扩容之后,还是有fullgc问题22:30 初步通过代码判断是自己查询了大对象导致老年代内存快速增长,目前业务中只有一个地方老年待,于是盲目改代码:一次查询修改成分页查询修改完代码 进行发布 还是依然fullgc23:30 突然

2021-12-07 22:25:49 709 3

转载 JVM内存分析工具MAT入门篇

一基本概念MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具。其通过展现 JVM 异常时所记录的运行时堆转储快照(Heap dump)状态(正常运行时也可以做堆转储分析),帮助定位内存泄漏问题或优化大内存消耗逻辑。二应用场景场景一:内存溢出,JVM堆区或方法区放不下存活及待申请的对象。如:高峰期系统出现 OOM(Out of Memory)异常,需定位内存瓶颈点来指导优化。场景二:内存泄漏,不会再使用的对象无法被垃圾回收器回收

2021-12-07 21:55:28 1710

原创 DDD领域驱动心得体会

最近在学习DDD领域驱动设计,下面是自己的一点心得体会

2021-11-28 18:07:17 224

阿里最新手册-嵩山版.rar

最新版嵩山版阿里巴巴手册 新增和修改了很多JAVA规约 有兴趣 可以看看 学习一下,对之前的规约进行了更加严谨的说明和修改 适应现在的软件开发

2020-08-05

springboot基础netty和websocket

基于springboot+netty+webscoket实现的及时通讯,封装netty相关接口

2018-07-02

springboot多数据源整合

springboot整合多数据源 实现多库读写的例子 包含源码

2018-06-03

webRtc例子

基于webrtc的java客户端demo 实现与服务端音视频交,项目基于springboot 适合对webrtc初学者的研究

2018-06-02

springBoot合集

springboot整合的例子 包括基础的 整合数据库 多数据源 日志 redis mybatis等详细的demo 适合初学者学习

2018-06-02

mysql数据性能调优

详细的配置myslq数据的show-log的信息 可以通过此进行性能调优操作

2018-06-02

springboot整合mybatis

springboot通过注解形式整合mybatis 提供一个基础的demo

2018-05-27

fastdfs分布式文件上传

基于分布式fastdfs写得一个demo 前端用ajaxfileupload后台基于java 可以参考一下

2018-04-15

兼容IE7的滑块插件

基于jqueyruI封装的滑块插件 类似于音量调节的插件一下 可以进行多样化的配置

2018-04-15

dubbo项目源码

完整版淘淘商城项目 该项目基于ssm+dubbo+sorl分布式架构用了很多新东西 值得学习和研究

2018-04-11

springboot例子

springboot demo详细的例子 说明了springboot的运行过程和简单的配置原理 适合入门的参考一下

2018-02-26

jeecms系统

JEECMSV8 CMS系统,包括很多开源模块,文件模块、权限模块、用户模块 、消息模块

2018-01-29

red5流媒体服务器

基于red5流媒体服务器代码 实现在线直播和点播,可以点rtsp流和文件流

2018-01-29

xlight中文破解版

安装后按照替换exe文件 然后输入找到文本注册信息没输入对应的用户名 注册码

2017-10-26

java调用JNI

用java的JNI调用C++的dll包容详细的步骤和例子 附带源码 一步步的教你搭建,有兴趣的可以下载看看,包括源码、文档哟

2017-08-31

https的配置

详细的介绍tomcat配置https的细节

2017-08-20

web即时通讯(HTML5和java模仿QQ 实现即时通讯)

HTML5和java模仿QQ 实现即时通讯

2017-07-16

java 即时通讯

用HTML5的websocket和java做即时通讯

2017-07-16

spring-redis jar

spring 4.2集成redis的所有jar

2017-03-29

fastdfs-client-java-1.25.jar

fastdfs-client-java-1.25.jar

2017-03-01

FreePic2Pdf-pdf书签制作.rar

制作PDF书签

2021-08-15

Aibaba泰山版.rar

最新一期的阿里巴巴java开发规约,新增了部分规约,对java开发中各种场景做出了规范,提高了代码的质量

2020-05-31

〈Java开发手册(泰山版)〉灵魂13问.rar

java灵魂十三问是阿里巴巴针对java开发规范做出了更加详细的解释,让我对阿里规约的原因有了更深入的了解

2020-05-31

myproject.zip

springboot集成ES 带有例子和测试用例,注意此版本的配置文件对于的是6.3.2版本 其他的版本的配置可能有的差别 有兴趣的可以参考一下

2020-01-16

springboot集成kafka

springboot集成kafka的例子 是一个maven项目 测试前需要修改kafka服务器的地址

2019-12-07

mysql官方文档.zip

mysql官方文档 是学习mysql的最好的途径 可以通过翻译软件进行学习,里面涵盖很多mysql知识

2019-11-21

xshell+xftp.zip

企业内部购买的注册码 分享出来给大家使用 自带有xshell和xftp 有需要的可以自行下载

2019-07-07

《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》.zip

阿里中台战略思想 详细讲解了什么是中台项目 为什么要做分割 对架构进行了详细的解析 写的蛮不错的

2019-07-06

springdatajap.rar

springdatajpa demo 包含级联更新 级联删除 一对多 单项 和双向例子

2019-06-09

PremiumSoft.zip

最新免费版本的Premium 支持永久使用 无需密匙 欢迎下载使用

2019-05-17

spring集成oauth2

springboot集成oauth对权限进行统一处理 采用密码模式进行校验采用redis进行集中存储

2019-04-25

springCloud集成kafak

spingcloud集成kafka实现消息中间件通讯 基于发布订阅模式 和一对一消息

2019-03-17

企业微服务快速搭建平台

基于springCloud+zipkin+zull网关搭建的一套企业级微服务框架 集成很多基础功能,适合有一定微服务基础的同学参考和研究

2019-03-17

VUE和ElementUI源码学习

这个是vue和elementui打造的element-Admin模板,适合web前端直接引用和学习

2019-01-24

java架构师之路

结合java高级和架构师能力要求 下载了多本适合高级开发人员阅读的书籍,祝你通往架构师之路

2018-12-27

springcloud+vue实战项目

基于springcloud+vu构建的项目 用maven多模块的方式,下载下来安装maven环境 即可运行

2018-12-25

VUE页面demo

vue+elementUi构建的40个页面demo 适合新手参考和学习,里面有源码

2018-12-25

tableediter

bootstrap-table表格插件编辑功能 包含详细的demo和所有的js文件可以参考

2018-09-08

单例模式详解

本代码详细介绍了java单例模式的5中实现方式包括详细的源代码和注释吗 帮助大家理解单例模式

2018-08-19

spring集合hibernate多数据切换

spring 集成hibernate实现多数据的动态切换功能,有详细的代码 可以参考 基于maven工程

2018-07-14

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

TA关注的人

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