为什么Java中的函数默认是虚拟函数,而C#的不是?请了解JVM的进来聊聊。 为什么Java中的函数默认是虚拟函数,而C#的不是?我搜到的资料解释是,Java是编译成字节码,函数地址是后绑定的,不存在Virtual Method Table。是这个原因吗?可这和函数地址的绑定有什么关系?为什么一定要后绑定呢?C#的程序也是编译成IL,为什么C#不学Java把所有函数默认为虚拟方法呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 虚拟数定位会影响性能,为什么java还要那么做? 简单。通过jvm的不断改进来提高性能。在jvm层可以优化 照这样说java是有Virtual Method Table的? C++ Java虚函数 -------- 普通函数纯虚函数 -------- 抽象函数抽象类 -------- 抽象类虚基类 -------- 接口 C#的普通实例方法 = Java的final实例方法, 即不可被复写.C#的virtual实例方法 = Java的普通实例方法, 可以被复写.两家公司恶性竞争搞出点不一样的花样而已...如果这也要讨论, 那为什么不讨论一下C#继承用:符号, Java用extends关键字, 有必要吗??? 如何用字符串"2012-4-3 11:35:06"生成DateTime类型对象 Extjs4+asp.net mvc2 返回json有问题 C#如何让生成的文件在执行exe文件夹里 如何提取ACCESS数据库中的表名 c# datatable数据输出报表问题 如何读取sql server其中一个字段中的数据 C#赋值问题 Dev控件 GridControl控件 Excel嵌入form(win)中出现的异常 如何在显示动态时间? 三层结构 请教一个概率的问题
通过jvm的不断改进来提高性能。
在jvm层可以优化
虚函数 -------- 普通函数
纯虚函数 -------- 抽象函数
抽象类 -------- 抽象类
虚基类 -------- 接口