- 博客(452)
- 资源 (22)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 如何提高工作效率
1、时间常有,时间在于优先。 2、时间总会有的:每天只计划4~5小时真正的工作。 3、当你在状态时,就多干点;不然就好好休息:有时候会连着几天不是工作状态,有时在工作状态时却又能天天忙活12小时,这都很正常的。 4、重视你的时间,并使其值得重视:你的时间值1000美元/小时,你得动起来。 5、不要多任务,这只会消耗注意力;保持专注,一心一用。 6、养成工作习惯,并持之以恒,你的身体会适应
2018-01-06 12:46:02
3861
原创 消息队列协议
XMPP协议协议介绍XMPP的前身是Jabber,一个开源形式组织制定的网络即时通信协议。XMPP基于XML,用于IM系统的开发。国内比较流行的XMPP实现叫做Openfire,它使用MINA作为下层的网络IO框架;国外用的比较多的XMPP实现叫做Tigase。当然如果读者所在公司需要开发IM系统,除了使用现成的XMPP服务器以外,还需要实现了XMPP协议的客户端或者开发包(以便进行扩展开发)。您可以在XMPP官网查看到XMPP官方推荐的开发包,各种语言的支持基本上都有。协议通讯过程示例为了对
2020-12-17 21:45:59
975
原创 底层原理 | IO模型
1 UNIX的五种IO模型IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。在本教程中,我们所说的IO指的都是网络IO。《UNIX网络编程:卷一》第六章——I/O复用。书中向我们提及了5种类UNIX下可用的I/O模型:阻塞式I/O:blocking IO非阻塞式I/O: nonblocking IOI/O复用(select,poll,epoll…):IO multiplexing信号驱动式I/O(SIGIO):
2020-12-17 15:29:06
896
原创 底层原理 | 零拷贝
1 术语1.1 零拷贝"零拷贝"中的"拷贝"是操作系统在I/O操作中,将数据从一个内存区域复制到另外一个内存区域。而"零"并不是指0次复制,更多的是指在用户态和内核态之间的复制是0次。1.2 CPU COPY通过计算机的组成原理我们知道,内存的读写操作是需要CPU的协调数据总线、地址总线和控制总线来完成的。因此在"拷贝"发生的时候,往往需要CPU暂停现有的处理逻辑,来协助内存的读写,这种我们称为CPU COPY。CPU COPY不但占用了CPU资源,还占用了总线的带宽。1.3 DMA COPY
2020-12-17 14:45:40
1798
3
原创 基础理论 | CAP理论
CAP理论1 CAP 定理的含义2 C、 A、P的含义2.1 一致性2.2 可用性2.3 分区容忍性3 权衡 C、A4 总结分布式系统的最大难点,就是各个节点的状态如何保持一致。CAP理论是在设计分布式系统的过程中,处理数据一致性问题时必须考虑的理论。1 CAP 定理的含义CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:一致性(Consistency)可用性(Availability)分区容错性(Partition tolerance)最多满足其中的两个特性
2020-12-17 14:05:37
535
转载 JDK | Java利用MessageFormat实现短信模板的匹配
这篇文章主要介绍了 Java 利用MessageFormat实现短信模板的匹配,觉得挺不错的,现在分享给大家,也给大家做个参考。其实没什么技术含量,因为老是想不起来,所以在此文做下记录。通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着相同的共性,比如只是用户名换了下。像下面这条,除了红色字体外,其余都是相同的。尊敬的客户:您的支付宝账户110****1...
2019-06-18 17:04:21
3902
原创 加密系列 | 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
7887
原创 加密系列 | MD5加密和解密算法详解&代码示例
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。MD5算法特点压缩性:任意长度的数据,算出的MD5值长度都是固定的;容易计算:从原数据计算...
2019-04-30 17:50:19
3996
原创 加密系列 | 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
1823
原创 加密系列 | DES加密和解密算法详解&代码示例
算法简介对称加密也就是密钥加密。对称加密和解密使用同一个密钥:加密时,我们用这个密钥初始化密码算法,密码算法对经过它的数据进行加密;解密时,密码算法用同一个密钥初始化,密码算法对经过它的数据进行解密。加密的强度依赖于密钥的长度。一般的对称密钥长度在40-128位之间,有些算法可能更长。建议使用128位以上的对称加密算法,如:DESede(TripleDES)、Blowfish、AE...
2019-04-30 17:25:05
4778
转载 加密系列 | Java中常用的加密方法(JDK)
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密 ,而双向加密又分为对称加密和非对称加密 (有些资料将加密直接分为对称加密和非对称加密)。双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是...
2019-04-30 17:00:40
1149
转载 Linux 内存知识 | 理解 buffer 和 cached
这篇文章写得非常好,但是已经找不到原文出处了。经常遇到一些刚接触 Linux 的新手会问:内存占用怎么那么多?在 Linux 中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是 Linux 内存管理的一个优秀特性,在这方面,区别于 Windows 的内存管理。主要特点是,==无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据...
2019-03-31 09:09:58
1635
转载 Linux 磁盘不足问题 | 如何解决服务器日志过多导致的磁盘空间不足?(实践)
背景上一篇文章讲解了如何处理服务器日志文件过大导致的磁盘空间不足,链接为:Linux 磁盘不足问题 | 如何解决服务器日志过多导致的磁盘空间不足?(理论)。由于篇幅的原因,并没有给出实际的操作,所以有了本实践篇。其实,解决服务器日志文件过大导致的磁盘空间不足有许多种方法,不再赘述。本文及前文的重点在于,在文中所述的特殊场景下,所体现出来的Linux知识点及解决方案。实例承接上文,我们只...
2019-03-30 14:32:39
1092
转载 Linux 磁盘不足问题 | 如何解决服务器日志过多导致的磁盘空间不足?(理论)
情景有天看到有开发同事A在讨论群里说,一测试环境中某服务打印了大量的日志,把磁盘打满了。这位同事把日志清理了,并请群里的相关人员看下是否需要重启各自的服务。过一会儿,同事B说其中一服务虽然重新启动了,但并未正常启动,因为启动日志中依然显示着… No space left on device …。前有同事A说磁盘满并把日志清了,后有同事说磁盘还是没有剩余空间。这前后矛盾的现象,激起了我的兴趣,...
2019-03-30 14:08:29
4806
转载 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
13982
2
原创 工作注意事项
沟通问题如果不能坐在一起沟通,尽量现在一方把问题问清楚,再去另一方沟通,避免来回跑发送邮件新需求的邮件:具体需求开发所需时间提测时间上线时间查找问题的邮件:现象或问题定位或原因解决方案解决结果查找问题一定要自己确认数据是否有问题在查找代码问题看数据从多个纬度观察数据取值范围:时间范围、数值范围数据量数据状态:枚举值整理出简洁报告...
2019-02-18 09:18:14
555
原创 Spring Cloud 探索 | Eureka 高可用部署及 unavailable-replicas 问题
Eureka Server除了单点运行之外,还可以通过运行多个实例,并进行互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。...
2018-12-27 21:59:16
13888
原创 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
11059
原创 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
12665
1
原创 Spring Cloud 探索 | 服务注册与发现 Eureka(下)
接上文 Spring Cloud 探索 | Spring Cloud Eureka(上) 继续来看一下 Eureka Client 的配置使用。
2018-12-21 16:51:29
620
原创 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
458
转载 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
443
1
转载 Netflix | 【翻译】Hystrix文档-实现原理
流程图下图展示了当你使用 Hystrix 来包装你请求依赖服务时的流程:接下来将详细介绍如下问题:构建 HystrixCommand 或者 HystrixObservableCommand 对象执行命令(即上述 Command 对象包装的逻辑)结果是否有缓存请求线路(类似电路)是否是开路线程池/请求队列/信号量占满时会发生什么使用 HystrixObservableCom...
2018-11-29 16:46:17
780
转载 Netflix | 【翻译】Hystrix文档-首页
Hystrix是什么?在分布式环境下,系统不可避免地会遇到依赖服务失效的问题,这些问题可能是依赖服务的高延迟,或者依赖服务抛出异常。使用 Hystrix 增加延迟/失败容忍逻辑,能帮助你解决这些服务之间交互的问题。Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。H...
2018-11-29 15:36:48
349
转载 下班后两小时,决定你将会成为怎样的人—— 时间管理篇
我叫特立独行的猫,2008年毕业开始上班,至今七年。七年前我看到过一句话:“下班后两小时,决定你将会成为一个怎样的人。”因为各种原因,我决定试试看。这七年来,上班时是某国际公关公司的在职员工,下班后我是一个坚持写作的人,期间写了四本书,《当你的才华还撑不起你的梦想时》《不要让未来的你,讨厌现在的自己》等等,同时结婚生子倒也什么都没耽误~ 虽然这七年坚持非常辛苦,但收获也会非常大,甚至下班后的成就...
2018-11-29 14:49:52
868
转载 快来学Redis | Redis分布式锁的正确实现方式
一、前言分布式锁一般有以下三种实现方式:数据库乐观锁;基于Redis的分布式锁;基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。二、可靠性首先,为了确保分布式锁可用,我们至少要确保...
2018-11-25 17:25:46
368
转载 图 | 深度优先生成树和广度优先生成树
本章的第一节中,介绍了有关生成树和生成森林的有关知识,本节来解决对于给定的无向图,如何构建它们相对应的生成树或者生成森林。其实在对无向图进行遍历的时候,遍历过程中所经历过的图中的顶点和边的组合,就是图的生成树或者生成森林。图 1 无向图例如,图 1 中的无向图是由 V1~V7 的顶点和编号分别为 a~i 的边组成。当使用深度优先搜索算法时,假设 V1 作为遍历的起始点,涉及到的顶点和...
2018-11-07 17:52:40
47213
转载 图 | 两种遍历方式:深度优先搜索(DFS、深搜)和广度优先搜索(BFS、广搜)
前边介绍了有关图的 4 种存储方式,本节介绍如何对存储的图中的顶点进行遍历。常用的遍历方式有两种:深度优先搜索和广度优先搜索。深度优先搜索(简称“深搜”或DFS)图 1 无向图深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图 1 是一个无向图,采用深度优先算法遍历这个图的过程为:首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过...
2018-11-07 10:52:54
3551
转载 图 | 存储结构:邻接表、邻接多重表、十字链表及C语言实现
上一节介绍了如何使用顺序存储结构存储图,而在实际应用中最常用的是本节所介绍的链式存储结构:图中每个顶点作为链表中的结点,结点的构成分为数据域和指针域,数据域存储图中各顶点中存储的数据,而指针域负责表示顶点之间的关联。使用链式存储结构表示图的常用方法有 3 种:邻接表、邻接多重表和十字链表。邻接的意思是顶点之间有边或者弧存在,通过当前顶点,可以直接找到下一个顶点。邻接表使用邻接表存...
2018-11-06 17:24:45
1750
原创 图 | 存储结构:邻接矩阵及C语言实现
使用图结构表示的数据元素之间虽然具有“多对多”的关系,但是同样可以采用顺序存储,也就是使用数组有效地存储图。邻接矩阵邻接矩阵(Adjacency Matrix),又称 数组表示法,存储方式是用两个数组来表示图:一个一维数组存储图中顶点本身信息;一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。存储图中各顶点本身信息,使用一维数组就足够了;存储顶点之间的关系(边或弧)时,要记...
2018-11-05 17:37:48
7970
原创 查找算法 | 静态树表(次优查找树)详细分析
前面章节所介绍的有关在静态查找表中对特定关键字进行顺序查找、折半查找或者分块查找,都是在查找表中各关键字被查找概率相同的前提下进行的。例如查找表中有 n 个关键字,表中每个关键字被查找的概率都是 1/n。在等概率的情况,使用折半查找算法的性能最优。而在某些情况下,查找表中各关键字被查找的概率是不同的。例如水果商店中有很多种水果,对于不同的顾客来说,由于口味不同,各种水果可能被选择的概率是不...
2018-11-04 11:36:05
9460
2
原创 查找算法 | 平衡二叉树(AVL树)详细分析
AVL:完全平衡的二叉查找树二叉查找树可以表示动态的数据集合,对于给定的数据集合,在建立一颗二叉查找树时,二叉查找树的结构形态与关键字的插入顺序有关。如果全部或者部分地按照关键字的递增或者递减顺序插入二叉查找树的结点,则所建立的二叉查找树全部或者在局部形成退化的单分支结构。在最坏的情况下,二叉查找树可能完全偏斜,高度为n,其平均与最坏的情况下查找时间都是O(n);而最好的情况下,二叉查找树的结...
2018-11-01 11:35:54
5561
原创 查找算法 | 键树详细分析
键树,又称数字查找树(Digital Search Trees),是一棵度>=2的树,它的某个节点不是包含一个或多个关键字,而是只包含组成关键字的一部分(字符或数字)。如果关键字本身是字符串,则键树中的一个结点只包含有一个字符;如果关键字本身是数字,则键树中的一个结点只包含一个数位。每个关键字都是从键树的根结点到叶子结点中经过的所有结点中存储的组合。根结点不代表任何字符,根以下第一层...
2018-10-31 16:57:56
1335
原创 查找算法 | B+树详细分析
在阅读本篇博客前请先阅读《数据结构和算法 | B-树详细分析》B+树是由B树变来的,B+树和B树有这样的区别:B+树的非叶子节点不记录数据本身,只记录引用的连接,并且结点中仅含有其子树中的最大(或最小)关键字。基于此特点,B+树在非叶子节点的文件会非常小;B+树的所有的叶子结点中包含了全部关键字的信息;B+树的每个叶子节点都有指向相邻的下一个兄弟叶子节点的指针且叶子结点本身依关键字的...
2018-10-30 20:59:05
2506
原创 查找算法 | B-树详细分析
什么是B-树?1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树(或多路查找树),称为 B树。B树,有时又写为B-树或B_树(其中的“-”或者“_”只是连字符,并不读作“B减树”),一颗 m 阶的 B树是一棵平衡的 m 路搜索树。它或者是空树,或者是满足下列性质的树:若根结点不是叶子结点(那种情况只能是整个树就一个根节点),则至少有两棵子树...
2018-10-30 16:17:02
2521
转载 查找算法 | 红黑树详细分析
1 红黑树简介红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1978年发明,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树。红黑树具有良好的效率,它可在 O(logN) 时间内完成查找、增加、删除等操作。因此,红黑...
2018-10-30 09:57:18
1294
1
转载 排序算法 | 基数排序算法原理及实现和优化
基数排序不同于之前所介绍的各类排序,前边介绍到的排序方法或多或少的是通过使用比较和移动记录来实现排序,而基数排序的实现不需要进行对关键字的比较,只需要对关键字进行“分配”与“收集”两种操作即可完成。基数排序的原理例如对无序表 {50,123,543,187,49,30,0,2,11,100} 进行基数排序,由于每个关键字都是整数数值,且其中的最大值由个位、十位和百位构成,每个数位上的数字从 ...
2018-10-26 11:19:11
1528
原创 排序算法 | 桶排序算法原理及实现和优化
排序充斥着我们的生活,比如站队、排队买票、考试排名、公司业绩排名、将电子邮件按时间排序、QQ 好友列表中的会员红名靠前,等等。这里先举个例子,通过这个例子让我们接触第 1 个算法。在某个期末考试中,老师要把大家的分数排序,比如有 5 个学生,分别考 5、9、5、1、6 分(满分 10 分),从大到小排序应该是 9、6、5、5、1,大家有没有办法写一段程序随机读取 5 个数,然后对它们排序呢?...
2018-10-26 09:58:52
5238
小甲鱼小甲鱼数据结构课件与源码
2018-09-30
True Color 设置屏幕颜色 亲测 Windows 10 可以使用哦
2018-07-13
True Color 设置屏幕颜色 亲测 Windows 10 可以使用
2018-07-13
Effective Java(高效java )(中文第2版)+英文原版+随书源码
2018-01-12
jdk1.7.0_17.zip
2018-01-08
国家电力设备资源管理系统设计与实现_毕业论文全部资料 包含源码.zip
2018-01-06
国家电力设备资源管理系统设计与实现_毕业论文全部资料.zip
2018-01-06
Java 并发编程实战 高清完整版 带标签目录+随书源码.zip
2018-01-06
重构-改善既有代码的设计.chm
2018-01-06
大型网站技术架构 核心原理与案例分析 高清完整版 李智慧.pdf
2018-01-05
深入理解Java虚拟机 JVM高级特性与最佳实践 第2版 高清完整版 .pdf
2018-01-05
重构-改善既有代码的设计[高清完整版.完整书签].pdf
2018-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人