单例模式:运行期间有且仅有一个实例 1.一个类只有一个实例 2.必须自行创建这个实例 3.必须自行向整个系统提供这个实例 懒汉模式: 在类加载时不创建实例,运行调用时创建。类加载快,在运行时获取对象慢。 饿汉模式: 在类加载时创建实例。类加载慢,在运行时获取对象快。 饿汉模式线程安全,但是,懒汉模式 ...
分类:
编程语言 时间:
2016-05-27 14:47:28
阅读次数:
131
1、MapReduce计数器是什么?
计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。
2、MapReduce计数器能做什么?
MapReduce 计数器(Counter)为我们提供一个窗口,用于观察 MapReduce Job 运行期的各种细节数据。对MapReduce性能调优很有帮助,MapRedu...
分类:
其他好文 时间:
2016-05-27 12:42:20
阅读次数:
157
理解重排序
重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。
在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预...
分类:
编程语言 时间:
2016-05-27 12:39:41
阅读次数:
1305
AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统OOP编程的一种补充。 OOP是关注将需求功能划分为不同的并且相对独立,封装良好的类,并让 ...
分类:
其他好文 时间:
2016-05-26 16:03:47
阅读次数:
203
堆, NEW对象栈,局部变量数据段,类变量、常量代码段,方法的定义 按照声明的位置和作用域划分 -局部变量:方法和语句块内部定义的变量,栈空间里面,当方法或语句块一结束,局部变量空间马上释放,-成员变量(属性):方法外部、类的内部定义的变量(堆空间,随对象产生而产生,随对象销毁而销毁)-类变量(静态 ...
分类:
编程语言 时间:
2016-05-25 15:12:14
阅读次数:
148
像上一篇所说的代理模式其实是静态代理,在实际开发中其实应用不大,因为他需要事先知道被代理对象是谁,而且被代理对象和代理对象实现了公共的接口。实际情况往往并不能满足这些条件,我们往往在写代理模式的时候并不知道到时候被代理的对象是谁。解决办法就是——动态代理。以下我们将使用CGLIB实现动态代理。
一、动态代理概述
程序在运行期而不是编译器,生成被代理对象的代理对象,并且被代理对象并不需要和代理对象...
分类:
其他好文 时间:
2016-05-18 18:33:48
阅读次数:
285
以下内容来自维基百科,关于静态类型检查和动态类型检查的解释: 静态类型检查:基于程序的源代码来验证类型安全的过程; 动态类型检查:在程序运行期间验证类型安全的过程; Java使用静态类型检查在编译期间分析程序,确保没有类型错误。基本的思想是不要让类型错误在运行期间发生。 以下代码是一个例子,理解了他 ...
分类:
编程语言 时间:
2016-05-18 10:34:38
阅读次数:
178
什么是Java别名(aliasing) 别名意味着有多个别名指向同一个位置,且这些别名有不同的类型。 在下面的代码例子中,a和b是两个不同的名字,有不同的类型A和B,B继承A 在内存中,它们指向了同一个位置,如下: 内存中的该位置同时被a和b指向,在运行期间,方法的调用由实际存储的对象来决定。 Ja ...
分类:
编程语言 时间:
2016-05-18 01:37:37
阅读次数:
152
来源:深入理解java异常处理机制 2.Java异常 2.Java异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象, ...
分类:
编程语言 时间:
2016-05-17 22:39:31
阅读次数:
276
Javac编译器将*.java文件编译成为*.class文件的过程,这里的Javac编译器称为前端编译器;相对应的还有后端编译器,它在程序运行期间将字节码转变成机器码。...
分类:
编程语言 时间:
2016-05-17 13:37:23
阅读次数:
140