- 浏览: 278286 次
- 性别:
- 来自: 北京
最新评论
-
typ0520:
推荐一个socket编程的异步socket类库,https:/ ...
java之Scoket 客户端和服务器的发送与接收 -
GGGGeek:
处理excel的时候,列太多,已经把pdf设置横向,依然不行, ...
jacob操作office分享 -
men4661273:
小白马 写道能不能发一下源代码啊https://git.osc ...
android自定义popupwindow仿微信 -
贝塔ZQ:
不错不错,总结的挺好的。插件实现也是不错的,PageOffi ...
jacob操作office分享 -
小白马:
能不能发一下源代码啊
android自定义popupwindow仿微信
文章列表
关于一致性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就可以了。特此记录,给同样情况的伙计们提供参考。