b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

微信java [ 转 ]C++和JAVA的区别(8)

电脑杂谈  发布时间:2018-01-06 03:03:59  来源:网络整理

(16) Java中没有“破坏器”(Destructor)。

变量不存在“作用域”的问题。一个对象的“存在时间”是由对象的存在时间决定的,并非由垃圾收集器决定。有个finalize()方法是每一个类的成员, 它在某种程度上类于C的“破坏器(就是析构函数的使用)”。但finalize()是由垃圾收集器调用的,而且只负责释放“资源”(如打开的文件、 套接字、端口、URL等等)。如需在一个特定的地点做某样事情,必须创建一个特殊的方法,并调用它,不能依赖finalize()。而在另一方面,C 中的所有对象都会(或者说“应该”)破坏,但并非Java中的所有对象都会被当作“垃圾”收集掉。由于Java不支持破坏器的概念,所以在必要的时候,必 须谨慎地创建一个清除方法。而且针对类内的基础类以及成员对象,需要明确调用所有清除方法。

(17) Java具有方法“重载”机制,它的工作原理与C函数的重载载几乎是完全相同的。微信java

(18) Java不支持默认自变量。

(19) Java中没有goto语句。

Java一方面移除了Goto的功能,它采取的无条件跳转机制是“break 标签”或者“continue 标签” ,另一方面同时扩大了break和continue的功能,可以允许多层循环的break或continue。如此一来不但避免了滥用Goto的可能性,同时也保存下Goto的好处。

“可怕”的goto语句是c和c的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句主要用于无 条件转移子程序和多结构分支技术。鉴于以上理由,Java不提供goto语句,也不提供goto关键字和of、const关键字,使程序简洁易读。(注 意:有些书上会说java也提供goto关键字,但是不使用,我不知道以前的说法如何,你只要记住java里边没有goto这个东西就可以了。而且不能用 goto做为对象名字、引用或方法名、类名等。)

在程序语言的发展史上,Goto一直是毁誉参半的一项功能。在很多时候使用Goto可以大幅减少不必要的程序代码,但是也由于Goto可以很自由地改变程 序的流程,如果冒然地使用,更可能造成程序结构混乱的情况。一般来说,正确使用Goto的例子多出现在循环内部,想要提早结束某一层循环。在C语言中,我 们可以使用break 或contine来改变某一层循环的流程,但如果想要改变两层以上的环执行流程,不是使用Goto就是以多余的布尔(boolean)变量,配合上一串 if-then-else的判断来达成。

(20) Java采用了一种单根式的分级结构,因此所有对象都是从根类Object统一继承的。

而在C中,我们可在任何地方启动一个新的继承树,所以最后往往看到包含了大量树的“一片森林”。在Java中,我们无论如何都只有一个分级结构。尽管 这表面上看乎造成了限制,但由于我们知道每个对象肯定至少有一个Object接口,所以往往能获得更强大的能力。C目前乎是唯一没有强制单根结构 的唯一一种OO(面向对象)语言。

(21) Java没有模板或者参数化类型的其他形式。

它提供了一系列集合:Vector(向量),Stack(堆栈)以及Hashtable(散列表),用于容纳Object引用。利用这些集合,我们的一系列要求可得到满足。但这些集合并非是为实现象C“标准模板库”(STL)那样的快速调用而设计的。Java 1.2中的新集合显得更加完整,但仍不具备正宗模板那样的高效率使用手段。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-58491-8.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 郭佳音
      郭佳音

      我们的海军和先进武器在哪

    热点图片
    拼命载入中...