- 浏览: 83822 次
- 性别:
- 来自: 北京
最新评论
-
NeverGiveUpToChange:
好好好好好好好好好好好好好好
合并表格的jquery插件 -
riching:
static int calcMinCoins(in ...
最少硬币数问题 -
hujing101:
程序是错的,楼主好好检查下吧
堆排序java实现 -
gwpking8419:
做成一个完成的demo,发上来
合并表格的jquery插件 -
ww20042005:
看不太懂,有没有原始的js文件啊!
合并表格的jquery插件
文章列表
先说说什么是CAP限制
cap限制是说一个分布式系统不可能同时满足
c:一致性
a:高可用性
p:分区容错性
由于分布式环境下,p是必须满足的,因此分布式系统一般有两种选择,一种是高可用的AP模式,一种是高一致性的CP模式,适用不同的分布式场景。例如Redis Cluster集群就选择了AP模式,采用gossip协议,而zookeeper就选择了AP模式,采用zab协议
那么对于分布式锁系统来说,如果将自己设计成分布式的,那只有一种选择,就是CP模式,这样的话,适用zookeeper实现分布式锁是最好的选择,但是,zookeeper分布式锁有个问题,就是性能不高
有没有性能高一点的办法呢?
也 ...
tcc的预锁资源可以作为saga中的一个事务,这样的话,tcc就变成了saga,也就是说,tcc是saga的一个特例。
tcc要求每一个事务都有预锁资源的操作,saga则可以灵活的决定某一个事务是否需要拆解成2个事务(预锁资源,执行事务)
tcc中,预锁资源对事务发起方透明,然而预锁资源的结果却对发起方可见(如转账的锁定金额),因此tcc模型中的事务是有副作用的。
saga中可以灵活的定义故障处理是向前成功或是向后还原,tcc在try阶段只能向后复原,confirm阶段只能向前成功
tcc牺牲了性能、灵活性,引入副作用,最终目的是希望构建起一套规整的模型,从而可以通过开发框架,隐藏分布式 ...
说明:
1、参考了spring state machine,但是个人感觉spring state machine,使用注入的方式太重了,而且附加的各种特性如监听,条件选择等等都不实用,不适合自己的业务场景,个人期望的是,每一个实体类都可以有一个自己的状态机,状态机用来清晰的展示状态的迁移逻辑,核心作用是可读性、内聚性,同时可以限制未定义的状态迁移。
2、状态机跟状态的关系,根据个人的理解做了区隔。状态机是状态迁移的逻辑定义,本身并不代表一个状态,状态机的作用就是对于给定的输入(状态,事件),告诉你下一个状态是什么,是一个辅助工具。
3、对于迁移条件,条件绝大部分时候具有外部性,将外部性的逻辑纳入 ...
一、Commons BeanUtils
说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。
二、Commons CLI
说明:这是一个处理命令的工具。比如main方法输入的string[]需要解析。你可以预先定义好参数的规则,然后就可以调用CLI来解析。
三、Commons Codec
说明:这个工具是用来编码和解码的,包括Base64,URL,Soundx等等。用这个工具的人应该很清楚这些,我就不多介绍了。
四、Commons Collections
说明:你可以把这个工具看成是java.util的扩展。
五、 ...
求数组的最大差值(maxij问题)
- 博客分类:
- 数据结构&算法
题目:
数组a[0..n-1],找出i和j使得a[j] - a[i]的值最大。
注意j > i。
要求是时间复杂度O(n),空间复杂度O(1)。
思路:
样例数组 11,1,5,8,11,2,3,2,11,5,3
1.先从后到前依次求出相邻2个数的差值,得到 {-2,-6,9,-1,1,-9,3,3,4,-10}
2.问题转化为求差值数组最大和序列,从前至后遍历该数组,保留所有的序列和为正数的和,得到{9,8,9,3,6,10},求最大值为 10
代码:
static int maxIj(int[] arr){
for(int i=arr ...
hadoop客户端提交job的java代码
- 博客分类:
- java
package com.xhb1.test;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapreduce.Job;
i ...
最近为js跨域所困,花费了不少时间和精力,总结一下
浏览器跨域场景分3种情况:
1.希望跨域获取数据
这一类场景可以通过jsonp的方式来获取,jquery本身就提供了很好的支持,这一方案本质还是利用了浏览器不限制js代码的跨域获取,json本身就是合法的js代码.
2.希望跨域集成html页面
直接跨域集成html是不可能的,唯一的办法就是将html代码转化为js代码,利用js代码生成html,然后通过jquery的getscript方法或者直接使用script标签将js代码引入
3.使用iframe集成跨域的html页面
跨域后iframe是不可以读取父窗口的UR ...
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* c1...cn个硬币,面值各不相同,现要用最少的硬币数,使得钱数为k,给出方案
* @author sky
*
* 设dp[i]为k为i时,最少需要的硬币个数
* dp[0]=1
dp[i] = min(dp[i-cons[j]])+1
*/
public class MinIcons {
private List<Integ ...
正确解看此链接
http://www.cnblogs.com/sunyongyue/archive/2010/12/04/1896675.html
这个条件粗看起来不是很靠谱,事实上却很好用
代码实现如下,
import java.util.Arrays;
public class AiEqualsISearcher {
private static int ARR_LENGTH = 100;
private int[] numArr = new int[ARR_LENGTH];
private int stepCount = 0;
private void i ...
一个给javabean列表建立倒排索引的通用类,主要可用于给缓存中的一类对象添加索引便于搜索,对于缓存中的对象实现模糊搜索是一种非常合适的方案
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class InvertedIndexGeneric<T> {
/**
* 索引
*/
private Map<String, ...
/*
* <p> 描述: </p>
*
* <p> Create Date: 12-5-14 下午1:41 <p>
*
* @author madbluesky
* @version 1.0
*/
import org.quartz.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MyTrigger extends SimpleTrig ...
有环链表如何高效的判断是否有环,以及在何处产生环?
采用2个指针不同步数(步数小的每次1步,步数大的每次2步),步数大的如果能够与步数小的相遇则必然存在环。
相遇后的情况如图,假设相遇后步数大的回绕环遍历了n遍,步数小的肯定一遍也没遍历完,假设第一段距离为a,第2段距离为c,第3段距离为b
则有(a+c)*2 = a+n(b+c)+c,转换后得 a = n(b+c) - c,也就是说,从出发点出发,移动a的距离,刚好等于相遇点出发移动n个整圈减c的距离,这个点刚好就是环产生的点,由此可以设置2个指针,分别从根节点与相遇点出发,第一次相遇的地方则是环产生的点。
完成证明后 ...
从今天开始仔细学习学习大数据量处理相关的算法,这是第一个算法,布隆过滤器
适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集
基本原理及要点:
对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,
查找时如果发现所有hash函数对应位都是1说明存在,很明显这个过程并不保证查找的
结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位
会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个
counter数组代替位数组,就可以支持删除了。
还有一个比较重要的问题, ...
jboss下spring的jms配置
- 博客分类:
- java
1。首先配置jboss的jbossmq,启动jboss(启动jboss时会同时启动mq,使用其他mq时类似,需要配置启动mq)
2。在spring中进行消息发送接收者的相关配置(封装了jms发送与接收的模版)
<!-- jndi配置 -->
<bean id="jndiTemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment" ...