自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

单车人的博客

求实求真,大气大为

  • 博客(25)
  • 收藏
  • 关注

原创 重写equals()方法

我们知道在 Java 中 Object 是所有类的基类。== 可以比较基本类型的值是否相等,而当比较对象时, == 比较的是对象的引用。Object 类的 equals() 方法的功能和 == 比较对象一样,都是比较的对象的引用。像 String 类重写了该方法,所以使得 String 类的 equals() 和 == 不同,可以比较 String 对象的内容是否相同。这里

2017-05-26 15:19:16 441

原创 Zookeeper的单机模式与伪分布式模式的搭建

一、Zookeeper的搭建方式Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。1.单机模式:Zookeeper只运行在一台服务器上,适合测试环境;2.伪集群模式:就是在一台物理机上运行多个Zookeeper 实例。3.集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)。Zo

2017-05-24 15:28:50 540

原创 Integer中的valueOf方法和parseInt方法

System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));System.out.println(Integer.parseInt("128")==Integer.valueO

2017-05-13 19:35:25 1942

原创 插入排序

插入排序的思想:        每趟将一条待排序的记录,按其关键字值的大小插入到前面已经排好序的记录中的适当位置,直到全部记录插入完成排好序为止。直接插入排序的基本要求是,假设待排序的记录存放在r[0,1....n-1]中,开始时先将第0个记录组成一个有序的子序列,然后依次将后面的记录插入到前面排好序的子序列中,并且一直保持子表的有序性。   假设一组待排序的记录关键字序列为 {39,67

2017-05-11 16:53:10 311

转载 字符串常量池

在理解字符串常量前,我们先熟悉一下如何创建一个字符串,在Java中有两种方法可以创建一个字符串对象:使用new运算符。例如:1String str = newString("Hello");使用字符串常量或者常量表达式。例如:12S

2017-05-10 15:42:54 251

原创 java接口

接口是常量值和方法定义的集合。接口是一种特殊的抽象类。 java类是单继承的。classB Extends classAjava接口可以多继承。Interface3 Extends Interface0, Interface1, interface……  不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定

2017-05-08 16:06:46 334

转载 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字

2017-05-08 15:14:04 871

转载 上传本地代码到GitHub

转载自:http://blog.csdn.net/hanhailong726188/article/details/46738929第一步:建立git仓库 cd到你的本地项目根目录下,执行git命令git init11第二步:将项目的所有文件添加到仓库中git add .11如果想添加某个特定的文件,只需把.换成特定的文件名即可第三步:将

2017-05-07 23:12:00 282

原创 MQ发送定时消息

定时消息可以做到在指定时间戳之后才可被消费者消费,用于解决一些消息生产和消费有时间窗口要求的场景,或者通过消息触发定时任务的场景。代码示例public class ProducerDelayTest { public static void main(String[] args) { Properties properties = new Properties();

2017-05-07 21:47:47 6274

原创 MQ发送延时消息

延时消息用于指定消息发送到MQ服务器端后,延时一段时间才被投递到客户端进行消费(例如3秒后才被消费),适用于解决一些消息生产和消费有时间窗口要求的场景,或者通过消息触发延迟任务的场景,类似于延迟队列。代码示例public class ProducerDelayTest { public static void main(String[] args) { Proper

2017-05-07 21:47:16 5129

原创 MQ集群方式订阅消息

集群订阅即某个消费者集群只消费指定的 Topic,而不是消费所有 Topic。请确保同一个 Consumer ID 下所有 Consumer 实例的订阅关系保持一致,具体请参考订阅关系一致文档。public class ConsumerTest { public static void main(String[] args) { Properties propert

2017-05-07 21:45:09 2005

原创 MQ收发顺序消息

发送和订阅顺序消息,请使用 Java SDK 1.2.7 及以上版本。顺序消息是 MQ 提供的一种按照顺序进行发布消费的消息类型,适用由于需要严格按照先进先出的原则进行消息发布和消费的场景。详情请参考顺序消息文档。全局顺序消息和分区顺序消息的收发方式基本一样,具体请参考以下示例代码。发送消息示例代码:package com.aliyun.openservices.ons

2017-05-07 21:04:26 4398

原创 MQ发送普通消息(三种方式)

MQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、单向(Oneway)发送。本文介绍了每种实现的原理、使用场景以及三种实现的异同,同时提供了代码示例以供参考。可靠同步发送原理:同步发送是指消息发送方发出数据后,会在收到接收方发回响应之后才发下一个数据包的通讯方式。应用场景:此种方式应用场景非常广泛,例如重要通知邮件、报名短信通知、营销短信系统等。

2017-05-07 21:03:14 33176

原创 MQ日志配置

本文档主要介绍 MQ 客户端日志的正常打印方式,MQ 客户端日志格式解析以及如何自定义 MQ 客户端日志配置。打印 MQ 客户端日志MQ 客户端日志在问题定位排查中扮演着非常重要的角色,通过日志记录客户端运行过程中的异常,能够帮助尽可能真实的还原某个时间点的异常场景,最终达到快速定位、修复 Bug 的目的。TCP Java SDK 打印 MQ 客户端日志MQ 的 T

2017-05-07 17:08:49 6618

原创 消费幂等

本文档主要强调 MQ 消费者在接收到消息以后根据业务上的唯一 Key 对消息做幂等处理的必要性。消费幂等的必要性在互联网应用中,尤其在网络不稳定的情况下,MQ 的消息有可能会出现重复,这个重复简单可以概括为以下两种情况:发送时消息重复【消息 Message ID 不同】:MQ Producer 发送消息场景下,消息已成功发送到服务端并完成持久化,此时网络闪断或者

2017-05-07 13:48:10 1163 1

原创 消息重试

MQ 消息重试本文档主要介绍 MQ 消费者的消费逻辑失败时,通过设置返回状态可达到消息重试的结果。MQ 消息重试只针对集群消费方式生效;广播方式不提供失败重试特性,即消费失败后,失败消息不再重试,继续消费新的消息。重试次数MQ 默认允许每条消息最多重试 16 次,每次重试的间隔时间如下:第几次重试每次重试间隔时间第几次重试

2017-05-07 13:46:20 3276

原创 订阅关系一致

MQ 里的一个 Consumer ID 代表一个 Consumer 实例群组。对于大多数分布式应用来说,一个 Consumer ID 下通常会挂载多个 Consumer 实例。订阅关系一致指的是同一个 Consumer ID 下所有 Consumer 实例的处理逻辑必须完全一致。一旦订阅关系不一致,消息消费的逻辑就会混乱,甚至导致消息丢失。由于 MQ 的订阅关系主要由 Topic+Tag

2017-05-07 13:44:54 1408

原创 消息过滤

消息过滤本文描述MQ消费者如何根据Tag在MQ服务端完成消息过滤。Tag,即消息标签、消息类型,用来区分某个MQ的Topic下的消息分类。MQ允许消费者按照Tag对消息进行过滤,确保消费者最终只消费到他关心的消息类型。以下图所示电商交易场景为例,从客户下单到收到商品这一过程会生产一系列消息,比如订单创建消息(order)、支付消息(pay)、物流消息(logistics)。

2017-05-07 13:39:03 540

原创 集群消费和广播消费

基本概念MQ 是基于发布订阅模型的消息系统。在 MQ 消息系统中消息的订阅方订阅关注的 Topic,以获取并消费消息。由于订阅方应用一般是分布式系统,以集群方式部署有多台机器。因此 MQ 约定以下概念。集群:MQ 约定使用相同 Consumer ID 的订阅者属于同一个集群,同一个集群下的订阅者消费逻辑必须完全一致(包括 Tag 的使用),这些订阅者在逻辑上可以认为是一个消费节点。

2017-05-07 13:36:30 3585

原创 消息队列普通消息的发送

本 Demo 主要目的在于帮助初次接触 Aliware MQ 的工程师,一步一步搭建 MQ 测试工程。Demo 程序以 Java 为例,包括普通消息、事务消息、定时消息的测试代码,以及相关 Spring 的配置示例。安装 IDE您可以使用 IDEA 或者 Eclipse。本文以 IDEA 为例。请在 https://www.jetbrains.com/idea/ 下

2017-05-06 13:23:35 1820

原创 MQ发送事务消息

MQ事务消息交互流程如下:发送事务消息包含以下两个步骤:发送半消息及执行本地事务package com.alibaba.webx.TryHsf.app1;import com.aliyun.openservices.ons.api.Message;import com.aliyun.openservices.ons.api.PropertyKeyConst;im

2017-05-05 17:27:41 4821 2

转载 java随机数的产生

java中存在着两种Random函数:一、java.lang.Math.Random;  调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:package IO;import java.util.Rando

2017-05-05 10:24:09 475

转载 比较器Comparator 和 Comparable的简单区别

例如现在有一个自定义的类,[java] view plain copy class Score{    public int score;    public int time;          public int getScore() {      return score;  }    public voi

2017-05-05 10:12:00 448

原创 52:构建乘积数组

题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。思路:    此题可以根据B的表达式将其分割成两部分,即 B[i] = C[i] * D[i],其中C[i] = A[0]*A[1]*...*A[i-1],D[i]

2017-05-04 21:03:35 255

原创 51:数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。思路:此题有三种方法来解。第一种是常规思路,即将数组进行排序,然后再遍历数组找出重复的数字,时间复杂度

2017-05-04 20:13:15 593

空空如也

空空如也

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

TA关注的人

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