多态:相同的行为,不同的实现。 1、静态多态:编译时,系统就能决定调用哪个方法 2、动态多态:编译期未知,运行时已知。运行系统才能确定方法所指的对象、 父类向子类转型,自动转换。 子类向父类转,强制转换,风险是运行失败。 instanceof 关键字:判断对象是否是某种数据类型。
分类:
其他好文 时间:
2016-02-26 00:32:29
阅读次数:
128
程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定 静态绑定(早绑定 编译器绑定): 在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C 。针对java可以理解为程序编译期的绑定;特别
分类:
编程语言 时间:
2016-02-23 18:55:06
阅读次数:
146
1.Block本身是一个数据类型,并且是一个自定义的数据类型 2.Block的标志是^(托字符) 3.Block是匿名函数,TA与函数最主要的区别在于 函数在编译期就已经知道封装了什么功能。但是Block只有在你执行的时候才知道内部封装的功能,所有说Block更加灵活多变 4.Block的作用也是封
分类:
其他好文 时间:
2016-02-20 00:26:07
阅读次数:
126
Item 44: Factor parameter-independent code out of templates.
模板是个好东西,你可以在实现类型安全的同时少写很多代码。但模板提供的是编译期的多态, 即使你的代码看起来非常简洁短小,生成的二进制文件也可能包含大量的冗余代码。 因为模板每次实例化都会生成一个完整的副本,所以其中与模板参数无关的部分会造成代码膨胀(code bloat)。...
分类:
其他好文 时间:
2016-02-19 12:45:09
阅读次数:
186
Item 47: Use traits classes for information about types.
C++中的 Traits 类可以在编译期提供类型信息,它是用Traits模板及其特化来实现的。 通过方法的重载,可以在编译期对类型进行”if…else”判断。我们通过STL中的一个例子来介绍Traits的实现和使用。
本文以iterator_traits为例介绍了如何实...
分类:
其他好文 时间:
2016-02-19 12:44:52
阅读次数:
203
什么是Runtime? Runtime顾名思义即为运行时。就是系统运行时候的一些机制,它提供了一些使得对象之间能够传递消息的重要函数,其中最主要的就是消息机制了。相较于C语言而言,C语言使用的是“静态绑定”,函数的调用在编译期就能知道运行期所需要调用的函数了,编译完成之后就按照顺序执行(面向过程就是
分类:
其他好文 时间:
2016-02-17 20:41:11
阅读次数:
167
class反射机制: 指的是可以于运行时加载,探知和使用编译期间完全未知的类. 程序在运行状态中, 可以动态加载一个只有名称的类, 对于任意一个已经加载的类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能调用他的任意一个方法和属性; 加载完类之后, 在堆内存中会产生一个Class类型的对
分类:
编程语言 时间:
2016-02-17 09:28:34
阅读次数:
243
String类两种不同的创建方式 String s1 = "zheng"; //第一种创建方式 String s2 = new String("junxiang"); //第二种创建方式 第一种创建方式是编译期在常量池中创建对象,如果常量池中已经存在"zheng"这个String对象,就将地址赋给s
分类:
编程语言 时间:
2016-02-13 19:30:37
阅读次数:
241
说明:本文主要参考自《分布式Java应用:基础与实践》 1、Java代码执行流程 第一步:*.java-->*.class(编译期) 第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期) 第三步:执行代码(运行期) 2、代码编译 javac命令将源码文件编译为*.class文件。
分类:
编程语言 时间:
2016-02-09 12:47:31
阅读次数:
255
每个实例都有一个指向Class 对象的指针,用以表明其类型,而这些 Class 对象则构成了类的继承体系。 如果对象类型无法在编译期确定,那么就应该使用类型信息查询方法来探知。 尽量使用类型信息查询方法来确定对象类型,而不要直接比较类对象,因为某些对象可能实现了消息转发功能。 类型 id 能指代任意
分类:
其他好文 时间:
2016-02-04 12:26:00
阅读次数:
151