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

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

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

C++和JAVA之间的最大不同可能是JAVA不再支持指针。指针使C++语言成为功能最强大最重要的一种编程语言。但同时指针在使用不正确的情况下也是C++中最危险的部分。JAVA不支持指针的原因主要有两点:

(1)指针本身就非常不安全。例如,使用C++的状态指针,可以访问程序代码和数据段外的内存地址,一个恶意程序可以利用这个特点破坏系统,完成非法访问(如获取口令等),或者违反安全限制。(2)即使指针可以被限制在JAVA的运行系统中(这在理论上是可行的,因为JAVA程序是解释执行的),JAVA的设计者相信它们仍然是麻烦所在。

注意:既然JAVA中不存在指针,那么也不存在->操作符。这里还有一些非常重要的”省略”:

a)JAVA不再支持操作符重载。

操作符重载在某些情况下造成类C++程序的含糊不清,JAVA的设计人员感觉它带来的麻烦要比它带来的好处多。

b)JAVA不再包含结构或者联合。在可以完全包含它们的类出现后,这些结构成为冗余部分。

c)JAVA不再包括预处理,也不再支持预处理指令。预处理在C++语言中已经不如C中那么重要,JAVA的设计者认为是彻底消除预处理的时候了。

d)JAVA不支持自动的类型转换,因为这种类型转换导致精度降低例如当从长整型转换为整型时,必须显示强制执行类型转换。

e)在JAVA中的代码必须封装在一个或者多个类中。因此JAVA中不再包含所谓的全局变量或者全局函数。

f)JAVA不再允许默认参数。在C++中,当过程调用时存在没有对应的参数时可以使用一个预先指定的。JAVA不再允许这样的操作。

g)JAVA不支持多继承,即不允许一个子类继承多个父类。

h)虽然JAVA支持构造函数,但是不再支持析构函数[/b]。但是,JAVA增加了finalize( )函数。

i)JAVA不再支持typedef.

j)在JAVA中不再可能声明无符号整数。

k)JAVA不再支持goto语句。

l)JAVA不再有delete操作符。

m)JAVA中的<>不再重载I/O操作。

n)JAVA中,对象只能由引用传递,C++中对象可由或引用传递.

2)、JAVA的新特性。

JAVA中的许多特性是C++中没有的。其中最重要的三个方面是多线程、包和接口,还有其他的许多独特之处都丰富了JAVA编程环境。

1)多线程允许两个或者多个相同的线程并发运行。

而且,这是一种在语言级支持的并发机制。C++中没有类的机制,或者说C++采用的是单线程的体系结构。如果需要并发执行一个C++程序,必须利用操作系统的功能手工启动。虽然这两种方法都可以同时执行两个或者多个线程,但是JAVA的方法清楚而且便于使用。

2)C++中没有可以与JAVA包对应的特性。[/b]最近的是用一个公用头文件的一组库函数。然而,在C++中构建和使用库函数与在JAVA中构建包和使用包是完全不同的。

3)JAVA的接口与C++的抽象类相(C++中的抽象类是包括至少一个纯虚函数的类)。[/b]例如,C++的抽象类和JAVA的接口都不能创建实例。两者都用于指定一个子类实现的一致接口。两者之间最大的不同之处在于接口更清晰的表明了这个概念。

4)JAVA提供一个流线型的内存分配机制。

与C++类,JAVA支持new这个关键字。但是,不支持delete关键字。当对象的最后一个引用撤销时,对象本身被自动地删除,并进行内存垃圾回收。

5)JAVA丢弃了C++的标准库,将它替换成自己的API类集合。[/b]它们功能上有相之处,但是名字和参数有显著的不同。同时,因为所有的JAVA API库都是面向对象的,而C++库只有部分是,所以库例程调用的方式不同。


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

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

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