自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (51)
  • 收藏
  • 关注

转载 分布式锁的基本原理和实现

欢迎关注作者简书 文章目录一、什么是分布式锁?二、分布式锁的使用场景。三、分布式锁的实现(Redis) 转发:原文来自 传送门 一、什么是分布式锁?   要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。   线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享...

2018-11-27 21:37:41 904

转载 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 欢迎关注作者博客 简书传送门 转载:原文地址   在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 一.CountDownLatch用法   CountDow...

2018-11-25 23:38:58 447

原创 剑指offer之找出数组中出现次数超过一半的数字

找出数组中出现次数超过一半的数字 欢迎关注作者简书 csdn传送门 题目   一个数组中有一个数字的次数超过了数组的一半,求出这个字符。如:int a[] = {2,3,2,2,2,2,2,5,4,1,2,3},求出超过一半的数字是2 分析 解法一   数组中有一个数字出现的次数超过了数组长度的一半,如果把数组排序,排序之后位于数组中间的数字一定是出现次数超过数组长度一半的数字。排序算法可以使用s...

2018-11-24 21:43:27 969

转载 HashMap实现原理分析及简单实现一个HashMap

HashMap实现原理分析及简单实现一个HashMap 欢迎关注作者博客 简书传送门   HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashMap和Hashtable之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实...

2018-11-21 23:46:53 696

原创 剑指offer之二叉搜索树的后序遍历序列

剑指offer之二叉搜索树的后序遍历序列 欢迎关注作者博客 简书传送门 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二叉树三种遍历方式 先序遍历 先序遍历先从二叉树的根开始,然后到左子树,再到右子树 中序遍历 中序遍历先从左子树开始,然后到根,再到右子树 后序遍历 后序遍历先从左子树开始,然后到...

2018-11-19 21:45:49 400

原创 剑指offer之数组最短路径规划

剑指offer之数组最短路径规划 欢迎关注作者博客 简书传送门 题目   寻找一条从左上角(arr[0][0])到右下角(arr[m-1][n-1])的路线,使得沿途经过的数组中的整数和最小。 思路 递归法   倒着来分析:最后一步到达arr[m-1][n-1]只有两条路,即通往arr[m-2][n-1]到达或者通往arr[m-1][n-2]到达,最后一步选择的路线为min{f(m-2,n-1),...

2018-11-18 23:07:22 849

原创 剑指offer之复杂链表的复制

剑指offer之复杂链表的复制 欢迎关注作者博客 简书传送门 题目   请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复制一个复杂链表。   在复杂链表中,每个结点除了有一个pNext指针指向下一个结点之外,还有一个pSibling指向链表中的任意结点或者NULL。   结点的定义如下: public static class Comple...

2018-11-17 20:34:56 454

原创 通过锁顺序来避免动态的锁顺序死锁

通过锁顺序来避免动态的锁顺序死锁 前言   两个线程试图通过不同的顺序获取多个相同的锁。如果请求的顺序不相同,那么会出现循环的锁依赖现象,产生死锁。但是如果保证同时请求锁L和锁M的每一个线程,都是按照从 L 到 M 的顺序,那么就不会发生死锁了。   比如:银行账户转账问题,两个用户转账的话,如果采用一般的synchronized嵌套的话,容易造成死锁。 思想   我们可以制定锁的顺序,并在整个应...

2018-11-16 20:59:25 2009

原创 剑指offer之二叉搜索树的后序遍历序列

剑指offer之二叉搜索树的后序遍历序列 欢迎关注作者博客 简书传送门 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二叉树三种遍历方式 先序遍历 先序遍历先从二叉树的根开始,然后到左子树,再到右子树 中序遍历 中序遍历先从左子树开始,然后到根,再到右子树 后序遍历 后序遍历先从左子树开始,然后到...

2018-11-15 20:25:43 566

原创 带日志和计时等功能的线程池

带日志和计时等功能的线程池 欢迎关注作者博客 简书传送门 前言   我们先来聊聊ThreadPoolExecutor的拓展。 扩展ThreadPoolExecutor   在执行任务的线程中将调用beforeExecute和afterExecute等方法,在这些方法中还可以添加日志、计时、监视或者统计信息收集的功能。无论任务是从run中正常返回,还是抛出一个异常而返回,afterExecute都会...

2018-11-14 21:22:18 1366

原创 使用Semaphore控制线程池任务提交的速率

使用Semaphore控制线程池任务提交的速率 欢迎关注作者博客 简书传送门 介绍   当线程池的工作队列被填满后,如果没有预定义的饱和策略来阻塞任务的执行,则可以通过信号量Semaphore来限制任务的到达率。Semaphore是一个同步工具类,用来控制同时访问某个特定资源的操作数量。它的acquire方法返回一个虚拟的许可,如果没有可用的许可,则阻塞该方法的调用线程直到有可用许可为止。如果线程...

2018-11-13 21:44:53 2539

原创 剑指offer之二叉树的镜像

二叉树的镜像 欢迎关注作者博客 简书传送门 题目   请完成一个函数,输入一个二叉树,该函数输出它的镜像。 思路   树的镜像不是我们所熟知的内容,通常在课本上所熟悉的就是树的遍历等基本的操作。但是我们可以通过图像来把镜像的过程给描述出来。比如像下面的两个二叉树就是互为镜像   下面我们来分析,镜像发生的过程是怎么样的。   这两个树根结点都是1,那么先交换根结点的左右结点,得到图2。交换后,我...

2018-11-11 22:15:49 1016

原创 剑指offer之树的子结构

树的子结构 欢迎关注作者博客 简书传送门 题目   输入两颗二叉树A和B,判断B是不是A的子结构 思想   要查找树A中是否存在和树B结构一样的子树,我们可以分为两步:第一步在树A中找到和B的根结点的值一样的结点N,第二步再判断树A中以N为根结点的子树是不是包括和树B一样的结构。   第一步在树A中查找与根结点的值一样的结点。这实际上就是树的遍历。   第二步判断以树A中以N为根结点的子树是不是和...

2018-11-10 13:26:16 982

原创 剑指offer之合并两个排序的列表

合并两个排序的列表 欢迎关注作者博客 简书传送门 题目   输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的,并返回合并后的头结点。 思路   假如List1中的头节点是小于List2中的,那么新的链表的头节点必将是List1的头节点,同理对List2也一样,那么在比较完头节点之后,再将List1中的下一个节点再与List2中的头节点比较,同样谁小谁进入新链表,然后再比...

2018-11-09 21:57:27 1046

原创 剑指offer之旋转数组的最小数字

剑指offer之旋转数组的最小数字 欢迎关注作者博客 简书传送门 题目   把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。   输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。   例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。   如果直接遍历数组,时间复杂度为O(...

2018-11-08 21:24:14 1036

原创 多线程异步任务处理

@(多线程&&并发) 多线程异步任务处理 欢迎关注作者博客 简书传送门 文章目录多线程异步任务处理线程池线程池的优缺点常用的线程池技术@Async注解源码   我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,那我们怎么去使用它呢?我们先来了解下什么是线程池? 线程池   线程池是指在初始化一个多线程应用程序过程中创建一个...

2018-11-07 21:29:31 10309

原创 剑指offer之二分查找

@(算法) 二分查找 欢迎关注作者博客 简书传送门 思想:   又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。 代码: /** * @program: * @description: 二分查找 ...

2018-11-06 20:23:58 1087

原创 剑指offer之数值的整数次方

数值的整数次方 欢迎关注作者博客 简书传送门 /** * @program: * @description: 数值的整数次方 * @author: zhouzhixiang * @create: 2018-10-31 20:48 */ public class Pow { public static void main(String[] args) throws Excepti...

2018-11-03 21:49:17 1131

原创 剑指offer之冒泡排序

冒泡排序 欢迎关注作者博客 简书传送门   冒泡排序(Bubble Sort),它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。   这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,所以叫“冒泡排序”。 原理   冒泡排序算法的原理如下:   比较相邻的元素。如果第一个比...

2018-11-02 22:52:15 1995

原创 剑指offer之Fibonacci青蛙跳台阶

Fibonacci青蛙跳台阶 欢迎关注作者博客 简书传送门 /** * @program: * @description: * @author: zhouzhixiang * @create: 2018-10-31 19:38 */ public class Fibonacci { public static void main(String[] args) throws Ex...

2018-11-01 21:07:41 1876

原创 剑指offer之给定链表的头指针和一个结点指针,在O(1)时间删除该结点

给定链表的头指针和一个结点指针,在O(1)时间删除该结点 欢迎关注作者博客 简书传送门 函数的声明如下:void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted); 分析:   这是一道广为流传的Google面试题,能有效考察我们的编程基本功,还能考察我们的反应速度,更重要的是,还能考察我们对时间复杂度的理解。  在链表中删除一个结点,...

2018-11-01 21:05:13 3498

原创 剑指offer之快速排序

快速排序 欢迎关注作者博客 简书传送门   今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。 思想   快速排序采用的思想是分治思想。   快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后...

2018-11-01 20:59:18 2899

2018美团点评技术文档-后台&前端&运维&测试&工程师成长篇&系统篇

2018美团点评技术文档-后台&前端&运维&测试&工程师成长篇&系统篇

2019-01-25

李云华-从零开始学架构完整版(带书签)

李云华-从零开始学架构完整版(带书签)

2019-01-16

JAVA基础编程练习题50题及经典算法90题【含源码及答案】-史上最全

JAVA基础编程练习题50题及经典算法90题【含源码及答案】-史上最全

2018-11-24

JAVA经典算法90题【含源码】-史上最全

JAVA经典算法90题【含源码】-史上最全

2018-11-24

易用仓库管理系统2017破解版—好用到爆

易用仓库管理系统2017破解版—好用到爆——再也不用花冤枉钱啦

2018-11-18

2018年第三方支付代码全套整合

2018年第三方支付代码全套整合 集成了支付宝、微信、银联等第三方平台的支付源码 希望可以帮助到大家

2018-11-18

贵州人大规范性文件备案审查信息平台用户手册(普通用户)

贵州人大规范性文件备案审查信息平台用户手册(普通用户)

2018-10-16

智慧人大漏洞扫描报告

智慧人大漏洞扫描报告

2018-10-16

政府软件项目--C01﹣17《系统测试报告》

政府软件项目--C01﹣17《系统测试报告》

2018-10-16

政府软件项目--C01-12《项目变更联系单》

政府软件项目--C01-12《项目变更联系单》

2018-10-16

政府软件项目--C01﹣05《项目施工进度计划报审表》

政府软件项目--C01﹣05《项目施工进度计划报审表》

2018-10-16

政务软件项目--C01﹣01《项目开工报审表》

政务软件项目--C01﹣01《项目开工报审表》、

2018-10-16

关于Apache Struts 2软件存在高危漏洞的紧急通报003

关于Apache Struts 2软件存在高危漏洞的紧急通报003

2018-10-16

国家标准软件开发规范所有规范文档

所有文档如下: 操作手册编写规范 测试分析报告编写规范 测试计划文档编写规范 概要设计说明书编写规范 开发进度月报编写规范 模块开发卷宗编写规范 软件配置管理计划编写规范 软件需求说明书编写规范 软件质量保证计划编写规范 数据库设计说明书编写规范 数据要求说明书编写规范 详细设计说明书编写规范 项目开发总结报告编写规范 用户手册编写规范

2018-10-16

智能访客平台信息化工作汇报

智能访客平台信息化工作汇报

2018-10-16

县级海域动态能力监管系统演示ppt

县级海域动态能力监管系统演示ppt

2018-10-16

县级海域动态监管系统--桌面端和移动端培训考试题

县级海域动态监管系统--桌面端和移动端培训考试题

2018-10-16

福建省用海项目审批系统数据集成交互方案

福建省用海项目审批系统数据集成交互方案

2018-10-16

详细设计说明书【国家海域动态监视监测管理系统-接口】

详细设计说明书【国家海域动态监视监测管理系统-接口】

2018-10-16

蓝图动态海域系统数据结构设计.pdm

蓝图动态海域系统数据结构设计.pdm

2018-10-16

项目周报模板--县级海域动态监管能力建设项目(第1期)

项目周报模板--县级海域动态监管能力建设项目(第1期) 项目周报模板--县级海域动态监管能力建设项目(第1期) 项目周报模板--县级海域动态监管能力建设项目(第1期)

2018-10-16

数据采集移动终端操作手册

数据采集移动终端操作手册

2018-10-16

Oracle--创建表空间+用户+授权

Oracle--创建表空间+用户+授权

2018-10-16

atom--教程文档&&windows;-64bit最新安装包&&常用插件包

atom--教程文档&&windows;-64bit安装包&&常用插件包

2018-09-17

Atom使用教程资源大全全套.pdf

Atom使用教程资源大全全套.pdf---涵盖常用的配置,使用教程,教您快速的使用atom,进入atom世界

2018-09-17

springboot-shiro认证系统框架--成型框架

springboot-shiro认证系统框架--成型框架,认证中心服务,分布式框架,可以直接使用,配置多元化,组件化,只需修改配置文件,达到相应需求,适合生产开发,开发学习

2018-09-17

freemarker_lastest最新最全--文档+安装包+操作手册

freemarker_lastest最新最全--文档+安装包+操作手册,freemarker_lastest最新最全--文档+安装包+操作手册

2018-08-17

fiddler4_4.6.2.0

fiddler4_4.6.2.0稳定版本,fiddler4_4.6.2.0稳定版本,fiddler4_4.6.2.0稳定版本,fiddler4_4.6.2.0稳定版本

2018-08-17

HttpClient--最全--安装包+官方文档(中文)

HttpClient--最全--安装包+官方文档(中文),HttpClient--最全--安装包+官方文档(中文)

2018-05-06

Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0.pdf

Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0.pdf,Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0.pdf

2018-05-06

GRPC调用全程示例加详细步骤+包含所有安装包+程序文件+操作文档(项目中记载下来的资料)

GRPC调用全程示例加详细步骤(protobuf3.5)+包含所有安装包+程序文件+操作文档(项目中记载下来的资料)

2018-05-06

GitHubSetup.exe+msysgit.zip+GitHub最新官方版

GitHubSetup.exe+msysgit.zip+GitHub最新官方版,GitHubSetup.exe+msysgit.zip+GitHub最新官方版

2018-05-06

Git最全--Git安装包+TortoiseGit64+TortoiseGit语言包+Git所有命令文档+Windows下安装git操作步骤文档

Git最全--Git安装包+TortoiseGit64+TortoiseGit语言包+Git所有命令文档+Windows下安装git操作步骤文档

2018-05-06

windows下git客户端安装--最全

windows下git客户端安装.docx,windows下git客户端安装.docx,windows下git客户端安装.docx

2018-05-06

ELK(Elastic+Logstash+Kibana)部署+配置操作文档.docx

ELK(Elastic+Logstash+Kibana)部署操作文档.docx ,项目中应用到的技术,记录下来的部署和配置操作过程,非常实用

2018-05-06

EditPlus_3.50.241_SC.exe破解版

EditPlus_3.50.241_SC.exe破解版,EditPlus_3.50.241_SC.exe破解版,EditPlus_3.50.241_SC.exe破解版

2018-05-06

eclipse-mars-2.zip安装包

eclipse-mars-2.zip安装包,非常好用的IDE工具没有之一

2018-05-06

dubbo所有文档英文+中文.rar

dubbo所有文档英文+中文,非常适合想要学习dubbo的程序猿,这里面包含基本所有的文档,中文和英文文档 Administrator Guide-zh.pdf,Developer Guide-zh.pdf,Dubbo_Framework_Extensions.pdf,Dubbo_RPC_Features.pdf,DubboInternals.doc,Framework_Design_Principles.pdf,Roadmap-zh.pdf,Service_Framework_Practices.pdf,User Guide-zh.pdf

2018-05-06

BB FlashBack Pro录屏软件

BB FlashBack Pro录屏软件,非常好用的录屏软件,没有之一

2018-05-06

allavsoft视频下载神器

allavsoft视频下载神器,想下载什么视频就下载什么视频

2018-05-06

空空如也

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

TA关注的人

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