自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Actor建模解决方案时,设想一群人并为他们分配子任务,将他们的功能安排到一个组织结构,并思考如何处理失败。ActorSystem是一个重量级结构,它将分配1 ... N个线程,因此每个逻辑程序...

2018-11-13 23:51:27 190

原创 Java接口default方法思考钻石问题

在多种编程语言中,都会有父类子类的继承关系,但是多继承会存在如下的钻石问题。来看看钻石:假如A有一个接口,B,C都有自己的实现,那么继承B和C的D,D的实例赋值给A的引用调用这个接口该返回什么?由于这种情况下类继承图的形状,它被称为“钻石问题”。在这种情况下,A类位于顶部,B和C分别位于其下方,D将两者连接在一起形成菱形。对于Java类不支持多继承,所以不存在这样的问题,至...

2018-11-08 21:30:20 610

原创 摩尔投票算法

摩尔投票算法(Moore majority vote algorithm)这个在wiki的介绍在https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_majority_vote_algorithm,摩尔投票算法是一种使用线性时间和常数空间查找大部分元素序列的算法。它以1981年出版的Robert S. Boyer和J Strother Moore的...

2018-11-07 19:57:30 576

原创 看看DelayQueue源码

这里可以看到DelayQueue类的层次结构。这是一个Delayed元素的无界阻塞队列,其中只有在延迟过期时才能获取元素。队列的头部的元素是根据继承的接口方法compareTo比较最小的。当元素的getDelay(TimeUnit.NANOSECONDS)方法返回小于或等于零的值时,会发生到期。即使使用take或poll无法删除未到期的元素,例如,size方法返回已过期和未过期元素的计数。...

2018-10-30 21:46:17 271

原创 Akka相关术语 译《fifteen》

在本章中,我们尝试建立一个通用术语,以便为Akka所针对的并发分布式系统进行通信奠定坚实的基础。请注意,对于其中许多条款,没有单一的商定定义。我们寻求提供将在Akka文档范围内使用的工作定义。并发与并行并发和并行是相关的概念,但存在细微差别。并发意味着两个或多个任务正在取得进展,即使它们可能没有同时执行。这可以例如通过时间切片来实现,其中任务的各部分被顺序执行并且与其他任务的部分混合。另一...

2018-10-26 21:25:18 136

原创 RxJava操作符serialize 笔记-二十六

如果您不能保证您的operator将遵守 Rx 协议,例如因为您从多个源异步推送,则可以使用serialize运算符。serialize运算符会将不可靠的可观察量转换为合法的,顺序的可观察量。让我们首先创建一个违反协议的observable并订阅它。日志输出:尽管我们的observable试图释放,但最终结果却遵守了Rx规格。之所以发生这种情况,是因为订阅(非常合理地)认为...

2018-10-26 20:45:11 385

转载 响应式宣言词汇表

原文:https://www.reactivemanifesto.org/glossaryTable of Contents 异步 回压 批量处理 组件 委托 弹性(与“可伸缩性”对照) 失败(和“错误”相对照) 隔离(和“遏制”相对照) 位置透明性消息驱动(与“事件驱动”对照) 非阻塞的 协议 复制 资源 可伸缩性 系统 用户异步牛津词典把“asyn...

2018-10-25 22:25:54 182

原创 从已排序数组中求两数和等于输入值TwoSumII167 -leetcode

Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers ...

2018-10-25 11:34:12 152

转载 The Reactive Manifesto(响应式宣言)

版本 2.0,2014 年 9 月 16 日发布本文转载自:https://www.reactivemanifesto.org/在不同领域中深耕的组织都在不约而同地尝试发现相似的软件构建模式。 希望这些系统会更健壮、更具回弹性 、更灵活,也能更好地满足现代化的需求。近年来,应用程序的需求已经发生了戏剧性的更改,模式变化也随之而来。仅在几年前, 一个大型应用程序通常拥有数十台服务器、 秒...

2018-10-25 00:04:15 723

原创 使用UUID的劣势

使用UUID虽然可以保证ID的唯一性,但是长得丑,很难满足业务系统的很多其他特性吧。1.比如UUID是无序的,但是业务系统很多时候希望生成的ID是有序的,或者叫粗略有序。2.UUID携带的信息少,比如没有时间的反解,我们就会很依赖这条数据的时间戳字段,在看到ID的时候,就没有那么直观的可以知道什么时候产生和什么地方生成的,在机器比较多的时候比较难查。3.上次一个同事告诉我,他的服务频繁...

2018-10-24 22:00:11 1816

原创 shell学习之创建函数

函数是一个脚本代码块,你可以为其命名并在代码中任何位置重用。在bash shell脚本中创建函数基本使用如下两种方式,第二种格式更接近于其他编程语言中定义函数的方式。function name {commands} 或者name() { commands }简单写一个demo输出:当然我们在使用函数的时候希望有返回值,在之前的学习中,已经知道,函数执行完会返回默认的值,...

2018-10-21 18:36:23 506

原创 RxJava操作符lift笔记25

在内部,每个Rx operator都做3件事:它订阅源并观察值。 它根据操作员的目的转换观察到的序列。 它通过调用onNext,onError和onCompleted将修改后的序列推送到自己的订阅者。compose运算符使用一种方法,使一个可观察的方法脱离另一个方法。这样做可以省去手动执行上述3个步骤的麻烦:中间订阅和推送隐含在Rx链中。这假设您可以使用现有运算符进行转换。如果运算符尚不...

2018-10-18 22:49:36 237

原创 SingleNumber136 leetCode

Given a non-empty array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without us...

2018-10-17 23:37:04 98

原创 Akka查询设备组《fourteen》译

加入以下依赖到项目中:介绍:到目前为止,我们看到的会话模式很简单,因为它们要求Actor保持很少或没有状态。特别:设备actor返回一个读数,不需要更改状态。 记录温度,更新单个字段。 设备组Actors通过在map中添加或删除条目来维护组成员资格。在这一部分中,我们将使用一个更复杂的例子。由于房主会对他们家中的温度感兴趣,我们的目标是能够查询一组中的所有设备Actors...

2018-10-17 21:07:04 184

原创 Character的static方法

基本类型char的包装类是Character,使用的比较多,大家是比较熟悉的。我只是觉得里面有很多static方法,平时不怎么用,学习一下怎么实现的,或许日后就用到了。static int  compare​(char x, char y):以数字方式比较两个char值。返回结果是正数就是第一个大,0表示相等,负数就是第二个参数大。static boolean  isDigit​(...

2018-10-17 10:44:56 416

原创 Valid Palindrome leetcode125

这道题的回文字符串比较特殊的就是还有标点符号和空格等其他字符不在判断范围之内如果用上java自带的那些类,其实有很多的判断方法:还有我们可以从头尾开始遍历,如果不匹配就返回false源码:https://github.com/woshiyexinjie/leetcode-xin/tree/master/src/main/java/com/helloxin/leetcode/...

2018-10-11 15:30:57 142

原创 Best Time to Buy and Sell Stock II

题目解题:一.这道题,我想着那个股价图,有高有低,找到低的地方,找到高的就行了吧!二.看了别人的写法,发现自己想多了,不就是高了买高了买吗,这样写就简单多了!下节再续!原题:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/有什么讨论的内容,可以加我公...

2018-10-10 21:57:50 232

原创 什么是Reactive Streams in Java 译

数式编程对于Reactive Programming很重要,但我不会在这篇文章中深入探讨函数式编程。在这篇文章中,我想看看Java中的整体Reactive发展环境。Reactive Programming vs. Reactive Streams有了这些新的流行语,就很容易对它们的含义感到困惑。反应式编程是一种编程范式,但我不会称之为新的。它实际上已经存在了一段时间。就像面向对...

2018-10-10 16:48:27 1208

原创 学习PriorityQueue源码

本来想先看看DelayQueue,结果里面用到了PriorityQueue,所以先学习一下PriorityQueue的编码逻辑。基于优先级堆的无界优先级队列。优先级队列的元素根据其自然顺序排序,或者由队列构造时提供的比较器排序,具体取决于使用的构造函数。优先级队列不允许null元素。依赖于自然排序的优先级队列也不允许插入不可比较的对象(这样做可能导致ClassCastException)。...

2018-10-10 11:12:12 101

原创 compose RxJava笔记

Rx通过链接它们而不是嵌套它们,具有应用运算符的特定样式。此样式并不罕见,这对于不可变对象更有意义,甚至可以在标准Java特性中找到它,例如字符串:String s = new String(“Hi”).toLowerCase().replace('a','c');此样式允许您按照应用顺序查看修改,并且在使用大量运算符时它也看起来更整洁。理想情况下,您希望您的Rx运算符与其他运算符一样适合链:...

2018-10-08 21:59:08 660

原创 Akka向设备组添加Actor注册《thirteen》译

我们已经完成了设备级别的注册支持,现在我们必须在组级别实现它。在注册时,小组成员还有更多工作要做,包括:通过将注册请求转发给现有设备actor或通过创建新actor并转发消息来处理注册请求。 跟踪组中存在哪些设备Actor,并在组停止时从组中删除它们。处理注册请求设备组Actor必须将请求转发给现有子项,或者应创建一个。要通过设备ID查找子actor,我们将使用Map <Stri...

2018-10-05 20:59:29 285

原创 初试SpringStateMachine框架实现状态机

官网:https://projects.spring.io/spring-statemachine/官网这里列出了很多特性,说的就是易于使用的状态机,帮助开发者简化状态机的开发过程,让状态机结构更加层次化。状态机有限状态机(FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 状态存储关于过去的信息,就是说:它反映从系统开始到现在时刻的输入变化...

2018-10-05 16:41:54 1994

原创 shell学习之定时运行作业

当你开始使用脚本时,可能会想要在某个预设时间运行脚本。 Linux系统提供了多个在预选时间运行脚本的方法:at命令和cron表,来安排脚本的运行时间和频率。一.用at命令来计划执行作业at命令允许指定Linux系统何时运行脚本。at命令会将作业提交到队列中,指定shell何时运 行该作业。at的守护进程会以后台模式运行,检查作业队列来运行作业。at命令的基本格式非常简单:at [-f ...

2018-10-04 22:14:54 464

原创 试用阿里开源的Arthas小记

Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,是我今天看到开源中国的这片文章才了解的(https://www.oschina.net/p/arthas)当然这个文章里写的这个工具能为我们做的事情很多:然后我觉得安装还是很方便的,根据官方的指示就好了!(curl -L https://alibaba.github.io/arthas/install.sh | sh)不...

2018-09-28 16:40:23 6763

原创 fork/join框架Java

Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join使用两个类:ForkJoinTask:我们要使用ForkJoin框架,必须首先创建一个ForkJoin任务。它提供在任务中执行fork()和join()操作的机制,ork/Join框架提供了以下两个子类: Recursi...

2018-09-20 14:42:24 162

原创 shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。read命令从标准输入(键盘)或另一个文件描述符中接受输入。在收到输入后,read命令会将数据放进一个变量,下面是read命令的最简单用法。echo的 -n参数是为了换行输出:如果不是用...

2018-09-19 00:16:18 957

原创 看看ConcurrentLinkedQueue源码 in Java 9

看ConcurrentLinkedQueue这个名字,应该叫并发链表队列哈。ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部,当我们获取一个元素时,它会返回队列头部的元素。ConcurrentLinkedQueue由head节点和tair节点组成,每个节点(Node)由节点...

2018-09-18 13:32:18 205

翻译 Akka与设备组一起工作《twelve》译

Dependency在项目中添加以下依赖项:介绍:让我们仔细看看我们的用例所需的主要功能,在用于监控家庭温度的完整物联网系统中,将设备传感器连接到我们系统的步骤可能如下所示:家中的传感器设备通过某种协议连接。 管理网络连接的组件接受连接。 传感器提供其组和设备ID以向我们系统的设备管理器组件注册。 设备管理器组件通过查找或创建负责保持传感器状态的actor来处理注册。 ...

2018-09-17 20:37:50 126

原创 初试Jboot

叫什么boot的大家自然而然都会先想到spring boot,下面我们看看主页的介绍,主页的介绍总是很牛逼的。Jboot是一个基于jfinal 和 undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、swagger api自动生成、Opentracing数据追踪、metrics数据监控、分布式session、代码生成器、shiro安全控制等功...

2018-09-17 20:36:53 3332

翻译 Akka增加消息的灵活性《eleven》译

我们的第一个查询协议是正确的,但没有考虑分布式应用程序执行。如果我们想在查询设备Actor中实现重发(由于超时请求),或者如果我们想查询多个Actor,我们需要能够关联请求和响应。因此,我们在消息中再添加一个字段,以便请求者可以提供ID(我们将在稍后的步骤中将此代码添加到我们的应用程序中):Full source at GitHub定义设备actor及其读取协议正如我们在Hello...

2018-09-05 20:15:43 168

翻译 Akka和Actor一起工作的消息《ten》译

Dependency在项目中添加以下依赖项:Introduction    在前面的主题解说中,我们解释了如何构建大型的Actor系统,即如何表示组件,如何在层次结构中排列Actor。在这一部分中,我们将通过实现设备Actor来查看。    如果我们使用对象,我们通常会将API设计为接口,这是由实际实现填充的抽象方法的集合。在Actor的世界中,协议取代了接口。虽然不可能在编程...

2018-09-05 20:13:59 143

翻译 Akka创建第一个Actor《nine》译

 在项目中添加以下依赖项:    通过了解actor的层次结构和行为,剩下的问题是如何将IoT系统的顶层组件映射到actor。将代表设备和仪表板的Actor放在最顶层可能很诱人。相反,我们建议创建一个代表整个应用程序的显式组件。换句话说,我们将在物联网系统中拥有一名顶级Actor。创建和管理设备和仪表板的组件将是此Actor的子组件。这允许我们将示例用例体系结构图重构为Actor的树:...

2018-09-05 20:12:48 227

翻译 Akka的Actor生命周期《Eight》译

  Actor在创建时出现,然后在用户请求时停止。每当一个Actor停止时,它的所有孩子也会被递归停止。此行为极大地简化了资源清理,并有助于避免资源泄漏,例如由打开的套接字和文件引起的资源泄漏。事实上,处理低级多线程代码时常常被忽视的困难是各种并发资源的生命周期管理。    要停止一个Actor,推荐的模式是在Actor内部调用getContext().stop(getSelf())来自行停止...

2018-09-05 20:11:39 148

原创 zookeeper入门学习之java api会话建立《四》

 在上一篇zk中简单玩了下api的连接创建会话,也总是留下了很多坑,就是那些引申开来,搞不明白的问题。有时候想追究起来,问题总是那么无穷无尽,有时候问题比答案更有力度吧,到最后都是些哲学问题吗?存在的这一切,还是一切归于虚无,小时候总是被教育要讲科学,但是感觉科学怎么那么没有温度,不如哲学问题那么温暖人心。    瞎逼逼好了,这里还是写点java api的使用吧,不如写点代码文档地...

2018-09-05 20:07:26 155

原创 zookeeper入门学习《一》

  Zookeeper的安装就不介绍了,mac上用 brew install zookeeper就行了,可以看到已经启动着。下面是   zoo.cfg的主要配置tickTime=2000    zookeeper中使用的基本时间单位, 毫秒值initLimit=5    follower和leader之间的最长心跳时间  syncLimit=2    该参数配置leader和f...

2018-09-05 20:05:01 875

原创 springboot之@Async实现异步

据说springboot有个注解@Async可以实现异步调用,然后我来用用看!增加一个maven新模块:增加如下依赖,不增加配置:然后我们写一个异步调用的服务:这里需要实现异步的功能,还需要在Application加上注解@EnableAsync,类似于Spring的<task:*> XML命名空间中的功能。然后我们写一个测试用例日志输出:...

2018-09-05 13:32:43 1426

原创 shell学习之命令行参数

我们在使用脚本的过程中,还得能够与使用者进行交互。其中一个方法就是可以使用命令行参数。shell会将一些称为位置参数的特殊变量分配给输入到命令行中的 所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$1是第 一个参数,$2是第二个参数,以此类推。参数之间用空格隔开。但是在第9个变量之后,你必须在变量数字周围加上花括号,比如${10}。下面的shell从...

2018-09-03 20:58:14 15957

翻译 Akka的Actor层级结构《seven》译

示例简介     在写散文时,最难的部分往往是编写前几句话。在开始构建Akka系统时,有一种类似的“空白画布”的感觉。你可能想知道:哪个应该是第一个Actor?它应该住在哪里?它该怎么办?幸运的是 - 与散文不同,已建立的最佳实践可以指导我们完成这些初步步骤。在本指南的其余部分,我们将研究一个简单的Akka应用程序的核心逻辑,向您介绍Actor并向您展示如何使用它们制定解决方案。该示例演示了可...

2018-09-03 00:36:09 474

翻译 Akka的类库和模块《six》译

在深入研究编写Actor的一些最佳实践之前,先预览一下最常用的Akka库会很有帮助。这将帮助您开始考虑要在系统中使用的功能。所有核心Akka功能都可以作为开源软件(OSS)使用。Lightbend赞助了Akka开发,但也可以为您提供培训,咨询,支持和Enterprise Suite 等商业产品,这是一套管理Akka系统的综合工具。    Akka OSS包含以下功能,将在本页后面介绍:Ac...

2018-09-03 00:34:40 388

原创 shell学习之跳出循环

有两个命令能帮我们控制循环内部的情况:break命令 continue命令break命令是退出循环的一个简单方法。可以用break命令来退出任意类型的循环,包括for,while和until循环。输出:其中while和until循环也是类似的跳出内部循环,在处理多个循环时,break命令会自动终止你所在的最内层的循环。有时你在内部循环,但需要停止外部循环。break...

2018-09-01 22:47:55 4937

模板方法模式.pdf

设计模式中的模板方法模式,定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方 法使子类可以不改变算法的结构即可定义该算法的某些特定步骤

2019-11-05

Asynchronous_programming_in_Java8.pdf

CompletableFuture类实现了CompletionStage和Future接口。future但是这个get()方法会阻塞住调用线程,这种阻塞的方式显然和我们的异步编程的初衷相违背。 为了解决这个问题,JDK吸收了guava的设计思想,加入了Future的诸多扩展功能形成了CompletableFuture。

2017-12-13

dubbo官网学习资料

dubbo用户使用 开发 和维护教程 其实要 可以看看

2017-11-28

visjs使用小记

Vis.js 是一个动态的、基于浏览器的可视化库,可处理大量的动态数据并能与这些数据进行交互操作。该项目是由Almende B.V公司开发的,包含 DataSet、Timeline和Graph组件。

2015-01-22

jenkins学习小结

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。

2015-01-22

elasticsearch翻译的入门手册

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

2015-01-22

java死锁问题

死锁问题是个写代码过程中可能遇到的问题,这是我学习中看到的例子

2014-11-06

java火车售票

火车售票这应该是个比较经典的学习多线程安全的问题吧,我学习到的这里例子还是挺容易看懂的

2014-11-06

java线程通信

线程通信,这里主要是线程的一些问题,用来对初学者来说看看还是不错的

2014-11-06

java生产者与消费者问题

生产者与消费者问题,用java实现线程

2014-11-06

模拟做饭问题

使用join方法,是A线程完成才可以执行B进程的代码

2014-11-06

学生并发接水问题

学生并发接水问题,排队,不排队,接完水一起回去

2014-11-06

JAVA_JXL.JAR

JAVA_JXL.JAR

2014-03-21

android例子身高体重指数

从android开发入门指南(第二版)中的第一个例子,测量身高与体重的指数,来给出建议,值得学习

2014-03-13

javaDB驱动

DB(英文全称data base,数据库)是依照某种数据模型组织起来并存放二级存储器中的数据集合。

2014-02-27

struts的拦截器与输入校验

struts的拦截器与输入校验

2014-02-27

struts2.0中文教程

struts2.0中文教程!

2014-01-16

spring学习笔记

spring学习笔记!

2014-01-16

spring入门学

spring入门学习笔记!

2014-01-16

spring入门

spring入门!

2014-01-16

shell编程练习

shell编程四道题目,学习linux下的编程!

2014-01-16

画爱心的代码

画一个爱心,有时候还是听偶意思的,所以没事干,自己写个玩玩,屌丝的一天就是这么过的

2013-04-12

空空如也

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

TA关注的人

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