11 2013 档案

摘要:Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。使用建议:在两个或者更多的线程访问的成员变量上使用vola 阅读全文
posted @ 2013-11-29 16:35 欢歌911 阅读(266) 评论(0) 推荐(0)
摘要:一:Java技术体系模块图二:JVM内存区域模型1.方法区 也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。运行时常量池:是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译器生成的各种符号引用,这部分内容将在类加载后放到方法区的运行时常量池中。2.虚拟机栈 描述的是java 方法执行的内存模型:每个方法被执行的时候 都会创建一个“栈帧”用 阅读全文
posted @ 2013-11-25 15:08 欢歌911 阅读(320) 评论(0) 推荐(0)
摘要:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式,先看类图:核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展到Targetable里,看代码:public class Source { public void method1() { System.out.println("this is original method!"); }... 阅读全文
posted @ 2013-11-07 10:55 欢歌911 阅读(259) 评论(0) 推荐(0)
摘要:1、开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基 阅读全文
posted @ 2013-11-07 09:30 欢歌911 阅读(160) 评论(0) 推荐(0)
摘要:function serialize(form){ var part =[]; var field = null; var i; var j; var len; var optLen; var option; var optVal; for(i=0,len=form.elements.length;i元素。7)select元素的值就是选中的元素的value的值,如果option元素没有value属性,则为选中的文本值。 阅读全文
posted @ 2013-11-05 11:45 欢歌911 阅读(450) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-11-04 13:47 欢歌911 阅读(161) 评论(0) 推荐(0)