`
men4661273
  • 浏览: 275615 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
关于一致性hash的讲解有很多,也不难理解,具体可以翻看其他人写的这个文章 【转】http://limitlee.iteye.com/blog/1961385 自己动手写了一个java的实现过程,记录一下。 package com.xjw.consistent.hash; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedMa ...
相关类: Timer : 创建定时任务调度的主类 TimerThread:Timer的一个内部类,继承Thread,负责线程任务的调度 TaskQueue : TImer的一个内部类,调度的任务的队列 TimerTask : 实现Runnable接口的抽象类,负责具体任务的执行逻辑 TimerTask: /* * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use ...
数据库里面的int,decimal等类型的字段值为null, 通过jdbc的ResultSet的getInt("x")或者getDouble("x")取出来之后是null吗,并不是,之前并没有太在意,一直以为取出来应该是null,后来偶然发现居然不是null,是0。。 然后就好奇,查了下为什么会是0。 先翻了下api,看了下ResultSet接口的getInt("x")返回值,一下就明白了,是int 而不是Integer, public abstract int getInt(String paramString)  接口定 ...
有时候我们会需要将正在执行的线程进行打断,可能我们会想到使用Thread类的interrupt()方法去打断这个线程,interrupt()能达到我们的要求吗,试一下。 例1: System.out.println("主线程开始."); TaskD taskD = new TaskD(); try { taskD.start(); Thread.sleep(1000); /* * 虽然taskD进行interrupt,但是并没有真正中断任务执行 * 只是在taskD的run方法sleep时抛出了Interru ...
join是Thread的实例方法,官方解释为:等待该线程终止。 其作用就是将调用join的线程优先执行,当前正在执行的线程阻塞,直到调用join方法的线程执行完毕或者被打断,主要用于线程之间的交互。 还有两个重载的方法: 1、join(long millis),等待该线程终止的时间最长为 millis 毫秒。为 0 意味着要一直等下去。 2、join(long millis, int nanos),等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。 下面以几个例子说明: 例1: System.out.println("主线程开始.&qu ...
定义解释    Runnable:接口,线程任务的接口定义,一个run方法,无返回值,创建的线程无法获取返回值。 Callable<T>:接口,线程任务的接口定义,一个call方法,有返回值,返回值类型为指定的泛型。 Future<T>:接口 ...
本来在开发中尽量不用以is开头的变量名的,但是因为开发中用到了zTree,节点字段中包含isParent字段。前端必须要用到该字段,所以定义子节点类如下: public class ZTreeNode { private String id; private String pId; private String name; private boolean isParent; } 其中的isParent字段以is开头,利用自动生成get set方法后,发现前端接收到json对应字段名为parent。 具体解决方法如下: 1.在get方法上面加入@JsonProperty(va ...
HandlerMapping负责管理Web请求到具体的处理类之间的映射 web请求到达DispacherServlet之后,DispacherServlet根据HandlerMapping的映射关系寻找具体的HandlerMapping实例,以获取当前web请求对应的具体处理类,Controller Controller 具体的求情处理类,业务逻辑处理,数据返回 web请求到达具体的Controller之后,DispacherServlet即可获得HandlerMapping所返回的结果,调用Controller的具体方法,来处理当前请求, ModelAndView 最终C ...
1、变量标记形式,循环层级太多比较麻烦。 boolean breakAll = false; for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ System.out.println("i == " + i + ", j = " + j ); if(j == 5) { breakAll = true; break; ...
           extjs版本:3.3            ext的TextField本身自带长度校验,不过是按照字符的长度进行计算,汉字或者全角符号都只计算一个长度,由于项目需要,需要按照两个长度进行计算,可以通过修改Ext的源码进行修改,在ext源码包的TextField定义的地方,找到getErrors方法,找到长度比较的位置,如下   if (value.length < this.minLength) { errors.push(String.format(this.minLengthText, this.minLength)); } ...
      最近研究了一下Zookeeper这个开源框架,这个框架基本上被大家用来作为可动态的集中配置管理, 分布式锁之类的应用,那么在使用过成功中呢,我们还需要对这个服务进行后台的可视化管理,比如服务器的管理,节点管理等等,网上搜了下没找到什么好用的开源代码,官方提供的感觉特别不好用,然后就自己做了这么一个后台管理的系统功能,目前包含两大块内容:       1、节点管理,通过可视化界面管理持久化节点,       2、配置可用服务器列表,监控服务器的运行状态,服务器停机的情况下,还可以通过配置文件直接启动服务器。       目前系统里面所包含的功能还是比较少的,也比较简单,后续我 ...
         在我们使用Calender的时候,使用过Calendar.getInstance()来获取一个日期类的对象,这种方式跟单例的获取方式一样,那么它到底是不是单例呢,如果是单例的话,一个对象修改内容之后,另外一个线程中的数据不久乱套了吗?从试验以及源码中可以得出,Calendar不是单例。 测试: Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); //输出true System.out.println("c1.equals(c2) is : ...
        无意中看到一个问题,java是值传递还是引用传递,有人说只有值传递,有人说值传递和引用传递都有,我一直认为是值传递和引用传递都有的,原始数据类型以及其封装类型是值传递,如int,Integer,再被别的方法使用的时候,传递的只是值,或者说是复制了一份内容,给新的方法,方法的处理不会影响方法体之外的该对象。复杂数据类型为引用传递,如自定义的一个Dog,传递的是该类的对象的引用,在方法体内修改所传递的对象的属性值,方法体外的对象的相应属性值也会被改变,所以相当于传递的是对象的本身。如果说非要说只有值传递的话,那么针对我理解的引用传递来说,传递的是对象引用的内存地址的值。     ...
         单例模式1,饿汉模式 //饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { //私有的默认构造函数 private Singleton1() {} //已经自行实例化 private static final Singleton1 single = new Singleton1(); //静态工厂方法 public static Singleton1 getInstance() { return single; } }  单例模式2, ...
         之前写的程序,运行正常,后来拿出来复习的时候,发现service和dao使用@Resource无法正常注入,而用@Autowired就可以正常注入,显示log日志,所有对象均能够正常实例化,就是没有inject的过程。后来终于发现原因,tomcat5.5不支持@Resource。。@Autowired是的可以正常注入,而@Resource是JavaEE包下面的,不支持tomcat5.5,换成6就可以了。特此记录,给同样情况的伙计们提供参考。  
Global site tag (gtag.js) - Google Analytics