垃圾回收与效率和灵活性

如果这么做完美无瑕,那为什么 C++没有采用呢?因为你必须要为编程的方便付出代价,这
个代价就是运行时刻的开销。就像前面提到的,在 C++中,你在堆栈中创建对象,在这种情
况下,它们可以自动被清除(但是你无法得到在运行时刻你想要得到的灵活性)。在堆栈上
创建对象是为对象分配和释放存储空间最有效的途径。在堆上创建对象可能代价就要高昂得
多。总是从某个基类继承以及所有的方法调用都是多态的也需要较小的开销。但是垃圾回收
器是一个特殊的问题,因为你从来都不确切了解它将于何时启动并将持续多久。这意味着一
个 Java 程序的执行速度会有前后不一致的情况,因此你在某些场合不能使用它,例如强调
程序的执行速度要一致的场合。(此类程序通常被称为实时程序,尽管不是所有的实时编程
问题都是如此严苛。)


C++语言的设计者努力争取 C 程序员的支持,(他们几乎已经成功,但是)却不想添加任何
影响速度的功能,也不想添加任何能够使程序员在选择使用 C 的场合转而选择 C++的新功

能。这个目标是实现了,但是付出的代价是在用 C++编程时复杂性极高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值