自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

挖坑埋你

我违反了保密协议,正在被通缉,我觉得我很快就会被抓走,这个秘密我不得不说了,其实人类已经在2012年12月25日世界末日灭绝的差不多了,仅存了一批科学家和不到一百个幸存者,开启了拯救毁灭计划,用了五年

原创 博客文章目录

JDK 8 新特性 文章索引

2018-07-31 15:09:17 1200 1

转载 如何提高工作效率

1、时间常有,时间在于优先。 2、时间总会有的:每天只计划4~5小时真正的工作。 3、当你在状态时,就多干点;不然就好好休息:有时候会连着几天不是工作状态,有时在工作状态时却又能天天忙活12小时,这都很正常的。 4、重视你的时间,并使其值得重视:你的时间值1000美元/小时,你得动起来。 5、不要多任务,这只会消耗注意力;保持专注,一心一用。 6、养成工作习惯,并持之以恒,你的身体会适应

2018-01-06 12:46:02 2685

转载 JDK | Java利用MessageFormat实现短信模板的匹配

这篇文章主要介绍了 Java 利用MessageFormat实现短信模板的匹配,觉得挺不错的,现在分享给大家,也给大家做个参考。其实没什么技术含量,因为老是想不起来,所以在此文做下记录。通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着相同的共性,比如只是用户名换了下。像下面这条,除了红色字体外,其余都是相同的。尊敬的客户:您的支付宝账户110****1...

2019-06-18 17:04:21 1083

原创 加密系列 | SHA加密和解密算法详解&代码示例

import java.security.MessageDigest;/** * 采用SHA加密 * * @author peipei3514 * @datetime 2017-8-11 12:00:34 */public class SHAUtil { /*** * SHA加密 生成40位SHA码 */ public static String shaEncode(...

2019-04-30 17:52:22 1258

原创 加密系列 | MD5加密和解密算法详解&代码示例

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5算法特点压缩性:任意长度的数据,算出的MD5值长度都是固定的;容易计算:从原数据计算...

2019-04-30 17:50:19 831

原创 加密系列 | 3DES加密和解密算法详解&代码示例

3DES的在Java的实现与DES类似,如下代码为3DES加密算法、CBC模式、PKCS5Padding填充方式的加密解密结果,参考代码如下所示:import java.security.Key;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;im...

2019-04-30 17:40:16 576

原创 加密系列 | DES加密和解密算法详解&代码示例

算法简介对称加密也就是密钥加密。对称加密和解密使用同一个密钥:加密时,我们用这个密钥初始化密码算法,密码算法对经过它的数据进行加密;解密时,密码算法用同一个密钥初始化,密码算法对经过它的数据进行解密。加密的强度依赖于密钥的长度。一般的对称密钥长度在40-128位之间,有些算法可能更长。建议使用128位以上的对称加密算法,如:DESede(TripleDES)、Blowfish、AE...

2019-04-30 17:25:05 1005

转载 加密系列 | Java中常用的加密方法(JDK)

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密 ,而双向加密又分为对称加密和非对称加密 (有些资料将加密直接分为对称加密和非对称加密)。双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是...

2019-04-30 17:00:40 376

转载 Linux 内存知识 | 理解 buffer 和 cached

这篇文章写得非常好,但是已经找不到原文出处了。经常遇到一些刚接触 Linux 的新手会问:内存占用怎么那么多?在 Linux 中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是 Linux 内存管理的一个优秀特性,在这方面,区别于 Windows 的内存管理。主要特点是,==无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据...

2019-03-31 09:09:58 644

转载 Linux 磁盘不足问题 | 如何解决服务器日志过多导致的磁盘空间不足?(实践)

背景上一篇文章讲解了如何处理服务器日志文件过大导致的磁盘空间不足,链接为:Linux 磁盘不足问题 | 如何解决服务器日志过多导致的磁盘空间不足?(理论)。由于篇幅的原因,并没有给出实际的操作,所以有了本实践篇。其实,解决服务器日志文件过大导致的磁盘空间不足有许多种方法,不再赘述。本文及前文的重点在于,在文中所述的特殊场景下,所体现出来的Linux知识点及解决方案。实例承接上文,我们只...

2019-03-30 14:32:39 381

转载 Linux 磁盘不足问题 | 如何解决服务器日志过多导致的磁盘空间不足?(理论)

情景有天看到有开发同事A在讨论群里说,一测试环境中某服务打印了大量的日志,把磁盘打满了。这位同事把日志清理了,并请群里的相关人员看下是否需要重启各自的服务。过一会儿,同事B说其中一服务虽然重新启动了,但并未正常启动,因为启动日志中依然显示着… No space left on device …。前有同事A说磁盘满并把日志清了,后有同事说磁盘还是没有剩余空间。这前后矛盾的现象,激起了我的兴趣,...

2019-03-30 14:08:29 1385

转载 Linux 配置 Java 环境变量(详细)

一、解压安装 JDK在 shell 终端下进入 jdk-6u14-linux-i586.bin 文件所在目录,执行命令 ./jdk-6u14-linux-i586.bin,这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个 jdk1.6.0_14 目录,你可以将它复制到 任何一个目录下。二、需要配置的环境变量PATH 环境变量:作用是指定命令...

2019-03-29 10:15:26 3778 2

原创 工作注意事项

沟通问题如果不能坐在一起沟通,尽量现在一方把问题问清楚,再去另一方沟通,避免来回跑发送邮件新需求的邮件:具体需求开发所需时间提测时间上线时间查找问题的邮件:现象或问题定位或原因解决方案解决结果查找问题一定要自己确认数据是否有问题在查找代码问题看数据从多个纬度观察数据取值范围:时间范围、数值范围数据量数据状态:枚举值整理出简洁报告...

2019-02-18 09:18:14 274

原创 Spring Cloud 探索 | Eureka 高可用部署及 unavailable-replicas 问题

Eureka Server除了单点运行之外,还可以通过运行多个实例,并进行互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。...

2018-12-27 21:59:16 8616

原创 Spring Boot 探索 | Actuator 端点详细说明

先在这里声明一下:这一系列的文章都是自己查询网上资料学习而来,不可避免有些内容从其他地方copy过来,如有侵犯请联系我删除,谢谢!(引用部分都会添加注脚)本系列文章的写作环境为:Spring Boot 1.5.18.RELEASE、JDK 1.8.0_131、IntelliJ IDEA ULTIMATE 2018.1。并没有使用最新版本的Spring Boot进行学习,新版本还不稳定,存在...

2018-12-25 15:22:37 3165

原创 Spring Boot 探索 | 服务监控与管理 Actuator

先在这里声明一下:这一系列的文章都是自己查询网上资料学习而来,不可避免有些内容从其他地方copy过来,如有侵犯请联系我删除,谢谢!(引用部分都会添加注脚)本系列文章的写作环境为:Spring Boot 1.5.18.RELEASE、JDK 1.8.0_131、IntelliJ IDEA ULTIMATE 2018.1。并没有使用最新版本的Spring Boot进行学习,新版本还不稳定,存在...

2018-12-23 15:27:03 2426 1

原创 Spring Cloud 探索 | 服务注册与发现 Eureka(下)

接上文 Spring Cloud 探索 | Spring Cloud Eureka(上) 继续来看一下 Eureka Client 的配置使用。

2018-12-21 16:51:29 318

原创 Spring Cloud 探索 | 服务注册与发现 Eureka(上)

先在这里声明一下:这一系列的文章都是自己查询网上资料学习而来,不可避免有些内容从其他地方copy过来,如有侵犯请联系我删除,谢谢!本系列文章的写作环境为:Spring Boot 1.5.18.RELEASE、Spring Cloud Edgware.SR5、JDK 1.8.0_131、IntelliJ IDEA ULTIMATE 2018.1。并没有使用最新版本的Spring Cloud进...

2018-12-21 10:38:49 305

原创 Spring Cloud 探索 | 整体架构介绍

Spring Cloud 探索 | 整体架构介绍(待完成)

2018-11-30 14:35:08 239

转载 Netflix | 【翻译】Hystrix文档-如何使用

“Hello World”下面的列子展示了 HystrixCommand 的一个基本实现:import com.netflix.hystrix.HystrixCommand;import com.netflix.hystrix.HystrixCommandGroupKey;public class CommandHelloWorld extends HystrixCommand<...

2018-11-30 10:13:13 237 1

转载 Netflix | 【翻译】Hystrix文档-实现原理

流程图下图展示了当你使用 Hystrix 来包装你请求依赖服务时的流程:接下来将详细介绍如下问题:构建 HystrixCommand 或者 HystrixObservableCommand 对象执行命令(即上述 Command 对象包装的逻辑)结果是否有缓存请求线路(类似电路)是否是开路线程池/请求队列/信号量占满时会发生什么使用 HystrixObservableCom...

2018-11-29 16:46:17 495

转载 Netflix | 【翻译】Hystrix文档-首页

Hystrix是什么?在分布式环境下,系统不可避免地会遇到依赖服务失效的问题,这些问题可能是依赖服务的高延迟,或者依赖服务抛出异常。使用 Hystrix 增加延迟/失败容忍逻辑,能帮助你解决这些服务之间交互的问题。Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。H...

2018-11-29 15:36:48 192

转载 下班后两小时,决定你将会成为怎样的人—— 时间管理篇

我叫特立独行的猫,2008年毕业开始上班,至今七年。七年前我看到过一句话:“下班后两小时,决定你将会成为一个怎样的人。”因为各种原因,我决定试试看。这七年来,上班时是某国际公关公司的在职员工,下班后我是一个坚持写作的人,期间写了四本书,《当你的才华还撑不起你的梦想时》《不要让未来的你,讨厌现在的自己》等等,同时结婚生子倒也什么都没耽误~ 虽然这七年坚持非常辛苦,但收获也会非常大,甚至下班后的成就...

2018-11-29 14:49:52 385

转载 快来学Redis | Redis分布式锁的正确实现方式

一、前言分布式锁一般有以下三种实现方式:数据库乐观锁;基于Redis的分布式锁;基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。二、可靠性首先,为了确保分布式锁可用,我们至少要确保...

2018-11-25 17:25:46 222

转载 图 | 深度优先生成树和广度优先生成树

本章的第一节中,介绍了有关生成树和生成森林的有关知识,本节来解决对于给定的无向图,如何构建它们相对应的生成树或者生成森林。其实在对无向图进行遍历的时候,遍历过程中所经历过的图中的顶点和边的组合,就是图的生成树或者生成森林。图 1 无向图例如,图 1 中的无向图是由 V1~V7 的顶点和编号分别为 a~i 的边组成。当使用深度优先搜索算法时,假设 V1 作为遍历的起始点,涉及到的顶点和...

2018-11-07 17:52:40 16044

转载 图 | 两种遍历方式:深度优先搜索(DFS、深搜)和广度优先搜索(BFS、广搜)

前边介绍了有关图的 4 种存储方式,本节介绍如何对存储的图中的顶点进行遍历。常用的遍历方式有两种:深度优先搜索和广度优先搜索。深度优先搜索(简称“深搜”或DFS)图 1 无向图深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图 1 是一个无向图,采用深度优先算法遍历这个图的过程为:首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过...

2018-11-07 10:52:54 1250

转载 图 | 存储结构:邻接表、邻接多重表、十字链表及C语言实现

上一节介绍了如何使用顺序存储结构存储图,而在实际应用中最常用的是本节所介绍的链式存储结构:图中每个顶点作为链表中的结点,结点的构成分为数据域和指针域,数据域存储图中各顶点中存储的数据,而指针域负责表示顶点之间的关联。使用链式存储结构表示图的常用方法有 3 种:邻接表、邻接多重表和十字链表。邻接的意思是顶点之间有边或者弧存在,通过当前顶点,可以直接找到下一个顶点。邻接表使用邻接表存...

2018-11-06 17:24:45 846

原创 图 | 存储结构:邻接矩阵及C语言实现

使用图结构表示的数据元素之间虽然具有“多对多”的关系,但是同样可以采用顺序存储,也就是使用数组有效地存储图。邻接矩阵邻接矩阵(Adjacency Matrix),又称 数组表示法,存储方式是用两个数组来表示图:一个一维数组存储图中顶点本身信息;一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。存储图中各顶点本身信息,使用一维数组就足够了;存储顶点之间的关系(边或弧)时,要记...

2018-11-05 17:37:48 3763

原创 查找算法 | 静态树表(次优查找树)详细分析

前面章节所介绍的有关在静态查找表中对特定关键字进行顺序查找、折半查找或者分块查找,都是在查找表中各关键字被查找概率相同的前提下进行的。例如查找表中有 n 个关键字,表中每个关键字被查找的概率都是 1/n。在等概率的情况,使用折半查找算法的性能最优。而在某些情况下,查找表中各关键字被查找的概率是不同的。例如水果商店中有很多种水果,对于不同的顾客来说,由于口味不同,各种水果可能被选择的概率是不...

2018-11-04 11:36:05 1870 2

原创 查找算法 | 平衡二叉树(AVL树)详细分析

AVL:完全平衡的二叉查找树二叉查找树可以表示动态的数据集合,对于给定的数据集合,在建立一颗二叉查找树时,二叉查找树的结构形态与关键字的插入顺序有关。如果全部或者部分地按照关键字的递增或者递减顺序插入二叉查找树的结点,则所建立的二叉查找树全部或者在局部形成退化的单分支结构。在最坏的情况下,二叉查找树可能完全偏斜,高度为n,其平均与最坏的情况下查找时间都是O(n);而最好的情况下,二叉查找树的结...

2018-11-01 11:35:54 1671

原创 查找算法 | 键树详细分析

键树,又称数字查找树(Digital Search Trees),是一棵度>=2的树,它的某个节点不是包含一个或多个关键字,而是只包含组成关键字的一部分(字符或数字)。如果关键字本身是字符串,则键树中的一个结点只包含有一个字符;如果关键字本身是数字,则键树中的一个结点只包含一个数位。每个关键字都是从键树的根结点到叶子结点中经过的所有结点中存储的组合。根结点不代表任何字符,根以下第一层...

2018-10-31 16:57:56 559

原创 查找算法 | B+树详细分析

在阅读本篇博客前请先阅读《数据结构和算法 | B-树详细分析》B+树是由B树变来的,B+树和B树有这样的区别:B+树的非叶子节点不记录数据本身,只记录引用的连接,并且结点中仅含有其子树中的最大(或最小)关键字。基于此特点,B+树在非叶子节点的文件会非常小;B+树的所有的叶子结点中包含了全部关键字的信息;B+树的每个叶子节点都有指向相邻的下一个兄弟叶子节点的指针且叶子结点本身依关键字的...

2018-10-30 20:59:05 1132

原创 查找算法 | B-树详细分析

什么是B-树?1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树(或多路查找树),称为 B树。B树,有时又写为B-树或B_树(其中的“-”或者“_”只是连字符,并不读作“B减树”),一颗 m 阶的 B树是一棵平衡的 m 路搜索树。它或者是空树,或者是满足下列性质的树:若根结点不是叶子结点(那种情况只能是整个树就一个根节点),则至少有两棵子树...

2018-10-30 16:17:02 613

转载 查找算法 | 红黑树详细分析

1 红黑树简介红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1978年发明,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树。红黑树具有良好的效率,它可在 O(logN) 时间内完成查找、增加、删除等操作。因此,红黑...

2018-10-30 09:57:18 374 1

转载 排序算法 | 基数排序算法原理及实现和优化

基数排序不同于之前所介绍的各类排序,前边介绍到的排序方法或多或少的是通过使用比较和移动记录来实现排序,而基数排序的实现不需要进行对关键字的比较,只需要对关键字进行“分配”与“收集”两种操作即可完成。基数排序的原理例如对无序表 {50,123,543,187,49,30,0,2,11,100} 进行基数排序,由于每个关键字都是整数数值,且其中的最大值由个位、十位和百位构成,每个数位上的数字从 ...

2018-10-26 11:19:11 661

原创 排序算法 | 桶排序算法原理及实现和优化

排序充斥着我们的生活,比如站队、排队买票、考试排名、公司业绩排名、将电子邮件按时间排序、QQ 好友列表中的会员红名靠前,等等。这里先举个例子,通过这个例子让我们接触第 1 个算法。在某个期末考试中,老师要把大家的分数排序,比如有 5 个学生,分别考 5、9、5、1、6 分(满分 10 分),从大到小排序应该是 9、6、5、5、1,大家有没有办法写一段程序随机读取 5 个数,然后对它们排序呢?...

2018-10-26 09:58:52 1774

原创 排序算法 | 堆排序算法原理及实现和优化

在学习堆排序之前,首先需要了解堆的含义:在含有 n 个元素的序列中,如果序列中的元素满足下面其中一种关系时,此序列可以称之为堆。ki ≤ k2i 且 ki ≤ k2i+1(在 n 个记录的范围内,第 i 个关键字的值小于第 2i 个关键字,同时也小于第 2i+1 个关键字)ki ≥ k2i 且 ki ≥ k2i+1(在 n 个记录的范围内,第 i 个关键字的值大于第 2i 个关键字,同时也大...

2018-10-25 10:10:58 159

原创 排序算法 | 快速排序算法原理及实现和优化(二)

接上文《数据结构和算法 | 快速排序算法原理及实现和优化(一)》,我们来讲讲快速排序的五种优化方案。1、优化选取基准点三数取中法:先找出三个关键字,然后排序,取中间的关键字(至少不会是两个极端)。在代码示例中我们选取相应区间的开始元素、中间元素和末尾元素。按照所选取的基准点的顺序可以构造一颗顺序二叉树。二叉树的深度就是递归的深度。二叉树的平衡性越好,算法的性能越好。2、优化不必要的交...

2018-10-23 18:03:53 190

转载 排序算法 | 快速排序算法原理及实现和优化(一)

快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出。快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分的所有数据要小,再按这种方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,使整个数据变成有序序列。快速排序的原理排序算法的思想非常...

2018-10-23 15:45:24 913

转载 排序算法 | 归并排序算法原理及实现和优化

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。归并排序的原理归并排序的实现思想是:先将所有的记录完全分开,然后两两合并,在合并的过程中将其排好序并且将已有序的子序列合并,最终能够得到一个完整的有序表。例...

2018-10-23 13:25:22 223

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