自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘本龙的专栏

个人邮箱:3089008201@qq.com. 技术交流群:684457529

  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 java最长重复子串

例如:例如字符串 s =“abcdeabc”输出:abcpublic class Test { public static void main(String[] args) { System.out.println(maxString("ckabcabck")); System.out.println(maxString("abdcdyedhjhyed")); System.out.println(maxString("abcdeabc"));

2020-11-29 19:19:01 1148

原创 java 最长不重复子串,最长无重复字符子串

问题描述:输入:abdca 返回:abdc方法一:使用双指针(滑动窗口)来实现。该方法需要配合map保存已经出现过的字符。public static int maxLength(String nums, int begin, int end, int maxStr){ if (null == nums || nums.length() == 0) return 0; if (end>=nums.length()) return maxStr; Ma

2020-11-29 16:38:29 1302

原创 java异常处理规范

文章目录java 异常简介异常处理规范前面介绍了 日志打印规范, 如果想打印出合格的日志,还需要了解Java对异常处理的一些知识。java 异常简介先来看一下Java中异常的类图,该类图只是把常见的异常列了一下。更详细的请读者去看jdk源码。先看一下Throwable ,它是所有errors和exceptions的超类。 * The {@code Throwable} class is the superclass of all errors and * exceptions in the J

2020-11-28 17:41:28 1784

原创 稳定性可靠性设计--源码篇

文章目录概述日志空指针异常入参校验线程安全ThreadLocal注意有些类不是线程安全的volatile 不能保证原子性正确的try-cache-finally事务bigdecimal资源释放概述稳定性可靠性设计计划写4篇文章:源码篇网络篇流程篇架构篇存储篇大数据计算(本期不提供)本文是第一篇,源码篇。从源码角度来看如何写出稳定性高的系统。我这里把可靠性的内容也一起讲了,稳定性和可靠性也没必要分的太清,相辅相成的。其实目前已经有很多很优秀的代码规范可以很好的约束程序员写出可靠的,健

2020-11-28 13:35:16 775

原创 日志打印规范

文章目录打印日志的目的日志级别ERRORWARNINFODEBUG如何打印日志打印日志的位置打印输出哪些内容告警告警分级谁来处理告警拾遗空指针异常入参校验分布式链路追踪灵魂之问:撸了那么多年代码,你真的会打日志吗?打印日志的目的不仅是初学者,很多老码农也不能很好的打印日志(大牛除外,如果你是大牛,就不需要看本文了),本质的原因是没有意识到为什么要打印日志,打印日志的目的是什么,这里我就为大家介绍一下。最重要的原则:在确保日志数量有限的情况下,可以快速定位问题。你仔细想想,在你遇到问题的时候,尤

2020-11-28 13:31:55 3283

原创 LRU算法在MySQL/hbase/Caffeine 中的优化

在上一篇文章中介绍了LRU的原理及实现,但是实际企业级应用中不会直接使用如此简单的LRU算法。本文看看各个优秀的中间件是如何优化LRU算法的。mysql对LRU的优化大家思考一个问题,在我前面讲到的算法实现中,每次访问的数据都会立刻移动到链表的尾端,这样是否是稳定可靠的?答案显然是否定的。实际的应用场景是比较复杂的,大家考虑这样一个场景,你的系统运行了一段时间,缓存都根据LRU算法正常运行,此时,有一个大的查询,数据量比较大,新查询出来的数据根据LRU算法会插入到队尾,此时缓存的数据超出了容量限制,将队

2020-11-27 17:11:40 1098 1

转载 zookeeper与etcd的对比

背景最近在看到Pachyderm的介绍时,看到作者拿YARN和Kubernetes做类比,拿Zookeeper和etcd做对比。YARN和Kubernetes的类比还相对比较好理解,毕竟他们都有资源管理和调度的职能,只不过YARN上运行的对象是JVM,而Kubernetes上运行的是容器。但是拿Zookeeper和etcd来类比我就有些不懂了,在我之前的概念里zookeeper并不是一个存储组件啊,因此有了本文的过程。Zookeeper和etcd可以做类比吗?etcd的官网介绍是一个分布式的K/V存储

2020-11-25 12:04:14 1857

转载 手撸一致性hash算法(java实现)

一、一致性Hash(Consistent Hashing)原理剖析引入一致性哈希算法是分布式系统中常用的算法。一致性哈希算法解决了普通余数Hash算法伸缩性差的问题,可以保证在上线、下线服务器的情况下尽量有多的请求命中原来路由到的服务器。在业务开发中,我们常把数据持久化到数据库中。如果需要读取这些数据,除了直接从数据库中读取外,为了减轻数据库的访问压力以及提高访问速度,我们更多地引入缓存来对数据进行存取。读取数据的过程一般为:图1:加入缓存的数据读取过程对于分布式缓存,不同机器上存储不同对象的数

2020-11-24 16:57:02 1120

原创 手撸LRU算法(java实现)

使用javaAPIjava 的LinkedHashMap可以实现LRU算法,LinkedHashMap 本身内部有一个触发条件则自动执行的方法:删除最老元素(最近最少使用的元素)。我们只需要通过参数控制数据排序逻辑和数据删除规则就行了。LinkedHashMap源码中有这么一个注释:<p>The {@link #removeEldestEntry(Map.Entry)} method may be overridden to * impose a policy for removing

2020-11-24 16:15:36 1264

转载 LVS介绍及工作原理图解

一、LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.4内核心之后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。使用LVS技术要达到的目标是:通过LVS提供

2020-11-23 11:33:13 856

原创 spring3升级到spring4.3

项目中有一个外购的老的系统,使用的spring3,太老了,也不符合公司安全要求,固将其升级为spring4。这里就记录一下修改内容。升级spring版本<spring.version>3.2.18.RELEASE</spring.version>升级到<spring.version>4.3.29.RELEASE</spring.version>升级xml文件中的xsd版本如http://www.springframework.org/schem

2020-11-17 14:14:43 2749

jquery右键菜单

jquery右键菜单 支持原著

2013-06-02

空空如也

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

TA关注的人

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