OpenJDK 源代码阅读之 String
概要
- 类继承关系
|
|
- 定义
|
|
- 要点
一旦创建就不可改变
|
|
|
|
一旦创建就不可改变
|
|
客户端(client):编写mapreduce程序,配置作业,提交作业,这就是程序员完成的工作;
JobTracker:初始化作业,分配作业,与TaskTracker通信,协调整个作业的执行;
TaskTracker:保持与JobTracker的通信,在分配的数据片段上执行Map或Reduce任务,TaskTracker和JobTracker的不同有个很重要的方面,就是在执行任务时候TaskTracker可以有n多个,JobTracker则只会有一个
Hdfs:保存作业的数据、配置信息等等,最后的结果也是保存在hdfs上面
我们通过具体化代码实现上一节所介绍例子的性能监视横切逻辑,并通过动态代理技术对此进行改造。在调用每一个目标类方法时启动方法的性能监视,在目标类方法调用完成时记录方法的花费时间。
代码清单6-2 ForumService:包含性能监视横切代码
代码清单6-2中粗体表示的代码就是具有横切逻辑特征的代码,每个Service类和每个业务方法体的前后都执行相同的代码逻辑:方法调用前启动PerformanceMonitor,方法调用后通知PerformanceMonitor结束性能监视并给记录性能监视结果。
我们将从一个简单例子开始探访Java反射机制的征程,下面的Car类拥有两个构造函数、两个方法以及三个属性,如代码清单3-9所示:
代码清单3-9 Car
一般情况下,我们会使用如下的代码创建Car的实例:
或者:
以上两种方法都采用传统方式的直接调用目标类的方法,下面我们通过Java反射机制以一种更加通用的方式间接地操作目标类: