1、zookeeper的相关博客
1)、分布式锁实现:http://chenjingbo.iteye.com/blog/2039641
2)、官网的代码地址:https://svn.apache.org/repos/asf/zookeeper/trunk/src/recipes/lock/
3)、牛人博客:http://www.cnblogs.com/yuyijq/p/4116365.html http://nileader.blog.51cto.com/1381108/795525
2、flash跨域访问 (粗点)
flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。位于www.a.com域中的SWF文件要访问www.b.com的文件时,SWF首先会检查www.b.com服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.a.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。
3、javassist的入门小示例
package com.javassist;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtField;
import javassist.CtMethod;
import javassist.CtNewMethod;
import javassist.NotFoundException;
public class Test {
public static void main(String[] args) throws CannotCompileException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException, NotFoundException {
ClassPool pool = ClassPool.getDefault();
// 创建一个名叫Foo的类
CtClass cc = pool.makeClass("Hello");
// 获取指定的类型
CtClass ctClass = pool.get("java.lang.String");
// 创建一个名叫i的属性,它的类型是‘int’
CtField f = new CtField(ctClass, "name", cc);
cc.addField(f);
// 创建一个名叫‘getName’的方法
CtMethod mthd = CtNewMethod.make("public String getName() { return name ; }", cc);
cc.addMethod(mthd);
//创建一个赋值的方法
CtMethod setMethod = CtNewMethod.make("public void setName( String name) { this.name=name ; }", cc);
cc.addMethod(setMethod);
// 实例化这个类
Class clazz = cc.toClass();
Object instance = clazz.newInstance();
Method getmethod=clazz.getMethod("getName");
Method setmethod=clazz.getMethod("setName", String.class);
System.out.println(setmethod.invoke(instance, "hello wrold2"));
System.out.println(getmethod.invoke(instance, null));
}
}
运行之后打印:<p>null
hello wrold2 </p>
4、ExecutorService中submit和execute的区别:
1)、参数不一样
2)、submit可以获取返回值(比较有用),execute不可以。
3)、submit方便Exception处理
5、ExecutorService的shutdown方法的作用:
当线程池调用该方法时,线程池的状态则立刻变成SHUTDOWN状态,以后不能再往线程池中添加任何任务,否则将会抛出RejectedExecutionException异常。但是,此时线程池不会立刻退出, 直到添加到线程池中的任务都已经处理完成,才会退出。 与它相似的还有一个shutdownNow(),它通过调用Thread.interrupt来实现线程的立即退出。
6、有多个过滤器时,过滤器的执行顺序:
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>filter2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
执行结果是:
filter1..............begin
filter2..............begin
filter2..............end
filter1..............end
<filter-mapping>
<filter-name>filter2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
执行结果是:
filter2..............begin
filter1..............begin
filter1..............end
filter2..............end
总结: 多个过滤器之间按照配置的顺序来执行,过滤器的执行是一个栈操作:先进后出。
6、类名.this的用处,借用别处的代码做个示例:
public class WebxContextLoaderListener extends ContextLoaderListener {
protected final ContextLoader createContextLoader() {
return new WebxComponentsLoader() {
protected Class<? extends WebxComponentsContext> getDefaultContextClass() {
Class defaultContextClass = <span style="color:#FF0000;"><strong>WebxContextLoaderListener.this.getDefaultContextClass();</strong></span>
if (defaultContextClass == null) {
defaultContextClass = super.getDefaultContextClass();
}
return defaultContextClass;
}
};
}
protected Class<? extends WebxComponentsContext> <strong><span style="color:#FF0000;">getDefaultContextClass</span></strong>() {
return null;
}
}
在这里用到的 类名.this.method调用方法,不用new一个新的示例就可以,但是这种只限用于内部类或者类的内部使用,特别是内部类的方法同外部的方法名字一致时,也只能通过这种方法调用。
7、设置iframe里的面尾固定显示,需要CSS+JS合作实现
<script type="text/javascript">
$(document).ready(function() {
$(parent.window).scroll(function(){
$("#footerDiv").css("bottom",$(window).height()-$(parent.window).scrollTop()-$(parent.window).height()+80);
});
});
</script>
<style type="text/css">
.jump-top-foot {
text-align: center;
bottom: 30px;
position: fixed;
height: 80px;
z-index: 999;
background-color: #e6e6e6;
width:99%
}
</style>
8、java.util.Collections.singletonMap(K key,V value)
参数:
key-- 唯一的键被存储在返回的映射。
value--唯一的键对应的值
返回值:在方法调用返回一个只包含指定键 - 值映射的不可变映射。
9、不能通过继承来改变父类中的静态方法