3 单身贵族男

尚未进行身份认证

我要认证

看,再往上爬就到山顶了,现在下山,以后更没有能力爬到顶了。

等级
TA的排名 1k+

码云协同开发

一、协同开发为每一开发者创建一个分支,各自都在各自的分支上写代码,互不影响,完成后再合并dev分支方式1:创建项目合作者方式2:创建项目合作者

2020-07-30 21:30:50

怎么利用数据库做分布式共享锁

一、适用环境1. 数据库集群模式(1主多从)2. 单机数据库3. 数据库必须提供行级锁功能二、原理:cas算法代码 // 更新当前值为newupdateCurrentValue(id new, old);old:通过id 查到的值new:期望的值id:表的主键UPDATE user t SET t.CURRENT_VALUE=:new WHERE t.ID =:id AND t.CURRENT_VALUE=:old...

2020-07-29 22:01:08

数据库某个字段值是逗号分割,不使用函数的情况,怎么查

一、问题查AUTH_DEPT_ID中有20004的记录二、解决方案SELECT "AUTH_DEPT_ID"FROM "OA_DOC_NUMBER_CONFIG"WHERE ID = 23 AND( -- 以20004结尾 AUTH_DEPT_ID LIKE '%,20004' -- 20004在中间 OR AUTH_DEPT_ID LIKE '%,20004,%' -- 20004开头 OR AUTH_DEPT_ID L...

2020-07-29 21:48:45

git操作和命令

git基本流程与基本概念workspace : 工作区,通俗来讲就是你在文件系统,ide中看到的文件,你可以直接修改的文件index : 暂存区 , 一个本地的缓冲区local repository : 本地仓库,里面有远程分支和本地分支, 处于本地,你不可以直接对其经行修改remote repository : 远程仓库,位于git服务器上,有效文件最终要提交到的地方命令一、 git clone从远程主机克隆一个版本库克隆版本库的时候,所使用的远程主机默认为origin。如果想

2020-07-27 16:24:20

visual gc 使用介绍

2020-07-14 19:42:17

设计模式6原则

一、单一职责原则1.1 优点降低类的复杂度,一个类只负责一项职责。提高类的可读性,可维护性降低变更引起的风险。1.2 违背单一职责原则情况只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,才可以在方法级别违反单一职责原则。1.3 什么是单一职责针对类,一个类应该只负责一项职责。假设类T负责两个不同职责:P1,P2,当职责P1需求变更而改变T时,可能造成职责P2发生故障,所以需要将类T的粒度分解为T1,T2。示例如下:package com.e

2020-07-14 15:07:27

责任链模式

一、介绍为请求创建了一个接收者对象的链。 请求的发送者和接收者进行解耦。 每个接收者都有下一个接收者的节点。如果当前节点处理不了,就让下一个节点处理,依此类推。 使用场景 在处理消息的时候可以过滤很多道。 Struts2 的拦截器 优点: 它将请求的发送者和接收者解耦 简化了对象。使得对象不需要知道链的结构 增强给对象指派职责的灵活性 通过改变链内的成员或者调动它们的次序,允许动态地新增或者删除责任 增加新的请求处理类很方便 缺点: 不能保证请求一定被接收.

2020-07-10 21:27:43

建造者模式(Builder Pattern)

一、介绍使用多个简单的对象一步一步构建成一个复杂的对象 一个 Builder 类会一步一步构造最终的对象。 该 Builder 类是独立于其他对象的。 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 建造者:创建和提供实例,导演:管理建造出来的实例的依赖关系。 与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。二、解决问题解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对

2020-07-06 20:39:39

访问者模式

一、介绍有一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。 主要将数据结构与数据操作分离 主要解决稳定的数据结构和易变的操作耦合问题二、何时使用需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。三、如何解决在被访问的类里面加一个对外提供接待访问者的接口。四、应用实例您在朋友家做客,您是访问者,朋友接受您的访问,您通过朋友的描述...

2020-07-05 23:58:34

原型模式

一、介绍用于创建重复的对象,同时又能保证性能。 该模式是实现了一个原型接口,该接口用于创建当前对象的克隆。利用已有的一个原型对象,快速地生成和原型对象一样的实例。 当直接创建对象的代价比较大时,则采用这种模式。案例如下 一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。 解决在运行期建立对象消耗性能的问题。 应用实例: JAVA 中的 Object clone() 方法。 二、做法.

2020-07-05 17:39:23

中介者模式

一、介绍用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。 用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 解决问题 对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂 若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。 多个类相互耦合,形成了网状结构。 使

2020-07-05 17:01:46

解释器模式

一、定义给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 实现了一个表达式接口,该接口解释一个特定的上下文。 二、 何时使用如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。三、如何解决构建语法树,定义终结符与非终结符。四、应用实例编译器、运算表达式计算。SQL 解析、符号处理引擎五、优缺...

2020-07-05 16:35:47

享元模式

一 、介绍(类图)用于减少创建对象的数量,以减少内存占用和提高性能尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。二、何时使用:系统中有大量相似对象, 这些对象消耗大量内存。 这些对象的状态大部分可以外部化。 这些对象可以按照内蕴状态分为很多组,当把外蕴对象从对象中剔除出来时,每一组对象都可以用一个对象来代替。 系统不依赖于这些对象身份,这些对象是不可分辨的。三、应用实例JAVA中的String类型,如果有则返回,如果没有则创建一个字符串保存...

2020-07-05 15:30:19

备忘录模式

一、介绍保存一个对象的某个状态,以便在某个时刻恢复对象的状态。 针对的是对象状态的恢复 使用场景如下 数据库事务的回滚 游戏的存档 撤销或者回退动作 优缺点 优点: 给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。 实现了信息的封装,使得用户不需要关心状态的保存细节。 缺点: 消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。 二、代码//存储备份对...

2020-07-05 15:01:21

jvm 生产项目优化

一 查看基本jvm参数1. 查对应的进程: jps -l2. 查看设置过值的参数:jinfo -flags pid3. 查看初始堆内存:jinfo -flag InitialHeapSize pid4. 查看最大堆内存:jinfo -flag MaxHeapSize pid5. 查看永久代:jinfo -flag PermSize pid6. 查看最大永久代:jinfo -flag MaxPermSize pid7. 查看年轻代初始内存:jinfo -flag NewSize pi

2020-06-30 19:26:49

quartz API 学习demo

api调用demo1package cn.xiniu.quartz;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.impl.StdSchedulerFactory;/** * @ClassName: Demo1 * @Description 请描述下该类是做什么的 * @Author feizhou * @Date 2020/6/7 0007 下午 12:35

2020-06-07 21:59:50

缓存热点 key 重建优化

一、问题当前 key 是一个热点 key( 同一个key,同一个时候有几十万请求),并发量非常 重建缓存不能在短时间完成,可能是一个复杂计算,例如复杂的 SQL、多次 IO、多个依赖等。二、影响在缓存失效的瞬间,有大量线程来重建缓存 ( 如下图),造成后端负载加大,甚至可能会让应用崩溃。三、解决这些问题要实现的目标 减少重建缓存的次数 数据尽可能一致 较少的潜在危险 四、方案4.1 分布式锁只允许一个线程重建缓存,其他线程等待重建缓

2020-05-28 14:38:00

redis架构设计

一、 简介高性能(目前已知性能最快) 读速度:110000 次 /s 写速度:81000 次 /s key-value(单个value的最大限制是1GB)类型的内存数据库 数据库在内存中进行操作 定期异步操作将数据库数据flush到硬盘上 支持string,list,set,sorted set,hash 操作都是原子性 支持事务 对数据的更改要么全部执行,要么全部不执行 事务中任意命令执行失败,其余命令依然被执行(Redis 事务不保证原子性,也不支持回滚) 事务中的多

2020-05-26 12:06:15

Spring的两种动态代理:Jdk和Cglib 的区别和实现

一、原理jdk动态代理: 利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 cglib动态代理: 利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP ,可以强制使用CGLIB实现AOP 如果目标对象没有实现了接口,必须采用...

2020-04-27 08:09:26

Hashmap底层实现原理(JDK1.8)+红黑树

https://segmentfault.com/a/1190000021928659https://baijiahao.baidu.com/s?id=1645429373049393021&wfr=spider&for=pc

2020-04-15 14:44:38

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。