每日学习:2011.3.3 闭包 动态代理 Map的key

1、闭包:是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。
个人理解:闭包思想主要是函数可以作为一级参数,是一种函数是对象的思想。函数可以作为参数或者返回值使用。
 
function a(){
var i=0;
function b(){
var j=i; //只要是引用了 i 的。
alert(j);
}
return b;
}

var c=a();
c();


2、动态代理:为了提供额外的或不同的操作,而插入的用来代替实际对象的对象(中间人的作用)
通常代理类和被代理类实现了相同的借口,在面向借口的调用中隐藏了具体的类型信息。
java的动态代理实现:实现InvocationHandler接口,通过Proxy.newInstance()来实例化。

3、Map的key必须同时覆盖Object的equals()和hashCode()方法
new LinkedHashMap(16,0.75f,true) =>使用最近最少使用(LRU)算法,最近最少使用的排在前面
Object默认的hashCode()使用对象的地址生成散列码,equals()也是比较对象的地址
hashCode()最重要的因素:无论何时,对同一个对象调用都应该生成相同的值

4、如果将自定的类型对象放入HashSet、HashMap、Hashtable、LinkedHashSet、LinkedHashMap这此散列集合时,一定需要重写equals与hashCode方法,这样在放入进去之后还能查找出来。如果放入其他非散列类型的集合时,其实只需要
重写equals就可以了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值