动态代理 所谓动态,就是在运行期间生成代理类。不然,有100个需要被代理的类,你就得手动写100个代理类,代码膨胀得厉害。 而我现在的目标是弄清楚jdk如何实现动态代理。 阅读Proxy类的源码能够看清大体流程: 1、我们自己提供接口和类加载器,然后jdk去通过Class.forName的方式去加载 ...
分类:
其他好文 时间:
2016-12-13 10:11:39
阅读次数:
173
一、工厂设计模式 index.php $db = IMooc\Factory::createDatabase(); 使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改即可。 IMooc/Factory.php 二、单例设计模式 保证在整个脚本运行期间,只有一个对象的 ...
分类:
Web程序 时间:
2016-12-11 13:02:53
阅读次数:
180
JAVA异常指的是运行期出现的错误. 观察错误的名字和行号最重要. 运用关键字try将可能出错的语句catch出来并添加友好的话 \ 在这句话中的ae代表一个自己命名的对象. 1.要捕获首先需要知道错误的名字. 2.将错误语句try起来. 3.捕获错误方法 4.添加友好语句 处理方法:往往添加语句 ...
分类:
其他好文 时间:
2016-12-11 08:05:35
阅读次数:
188
从设计的角度考虑,别人再引用你的程序时: 枚举可以限定参数的个数,对调用者的行为能更加严格地进行控制。把一些运行期的参数检查放到了编译期,做到这点是一个很大的进步。 从静态变量的角度考虑,自己编写,自己用 直接用 public static final ...来定义变量即可 反编译 枚举类: htt ...
分类:
其他好文 时间:
2016-12-09 18:31:08
阅读次数:
155
在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责。那么我们就可以使用装饰者模式。装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。 装饰者模式能够在不改变对象自身的基础上,在程序运行期间给对象动态地添加职责。 一、模拟传统面向对象语言的装饰 ...
分类:
编程语言 时间:
2016-12-07 16:28:42
阅读次数:
188
本文的目的: 使用者在程序运行期间,可以动态的写Java Class,不需要生成任何.Class文件就可以完全在内存中编译,加载,实例化。 1、需要用到的组件介绍 1)JavaCompiler:用于编译Java Code。 2)CharSequenceJavaFileObject:用于保存Java ...
分类:
编程语言 时间:
2016-12-06 13:57:49
阅读次数:
176
概述 Accumulator即累加器,与Mapreduce counter的应用场景差不多,都能很好地观察task在运行期间的数据变化,Spark中的Accumulator各task可以对Accumulator值进行累加,但是最终的返回值只能在Driver端获取,同时原生支持Int和Double类型 ...
分类:
其他好文 时间:
2016-12-05 23:17:45
阅读次数:
166
1、类型一 类型 适合使用场景(reson理由) module.value 存储简单的值在运行期间可以进行更改。 2、类型二 module.constant 存储简单的值在运行期间不去更改。 3、类型三 module.service 用构造方法(constructor method)来创建服务(se ...
分类:
Web程序 时间:
2016-12-04 23:29:07
阅读次数:
198
单核,多核CPU的原子操作 一. 何谓"原子操作":原子操作就是: 不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch). 二. 为什么关注原子操作?1. 如果确定某个操作是原子的, 就不用为了去保护这个操作而加上会耗费 ...
分类:
其他好文 时间:
2016-12-04 00:20:20
阅读次数:
244
异常的体系 Throwable |--Error 严重问题 |--Exception |--RuntimeException 运行期异常,我们需要修正代码 |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过 try...catch...finallytry{ 可能出 ...
分类:
编程语言 时间:
2016-12-02 02:46:47
阅读次数:
137