您现在的位置是:群英 > 开发技术 > 编程语言
C++和Java的区别在哪,你了解多少?
Admin发表于 2022-01-18 17:59:51939 次浏览

    这篇文章我们来了解C++和Java的区别,其实C++和Java的区别还是很明显的,而且有很多,例如C++有goto,Java没有goto;C++中有多继承,Java中只有单一继承等等这些下文总结了很多C++和Java使用的不同点,有需要的朋友可以了解看看,接下来就跟随小编来一起学习一下吧!

    本教程操作环境:windows7系统、C++17&&java8版本、Dell G3电脑。

    C++和Java的区别:

    尽管Java是基于C++的的,但是相比之下,Java是一种更纯粹的面向对象程序设计语言。在Java中,一切都被视为对象。

    1、C++创建对象之后,需要再使用完将其调用delete方法将其销毁;Java有垃圾回收机制,用来监视new出来的所有对象,辨别不会再被引用的对象,然后释放内存空间。

    2、作用域(C、C++、Java的作用域由花括号的位置决定):
    但是以下代码在C和C++中是合法的,在Java中编译器会报告变量已定义。因为C和C++会将较大作用域的变量隐藏起来,但是Java不允许。

{
    int x = 12;
    {
        int x = 96;
    }
}

    3、基本成员的默认值

    当变量作为类的成员使用时,Java才给定默认值,以确保那些基本类型的成员变量得到初始化,但是C++没有此功能。而对于局部变量,C++编译器会对其予以警告,Java则会视为错误。

    4、Java不可以将一个非布尔值当做布尔值在逻辑表达式中使用,C++却可以。

    在C++中表达式的值为0则为假,非0则为真。

    例如:

if(1){
}

    5、移位操作符

    Java中新增了一种“无符号”右移位操作符(>>>),它使用“零扩展”,无论正负,都在高位插入0。这是C、C++中所没有的。

    6、C++引入了操作符重载机制,Java不支持,但是C#中可以实现自己的重载操作符。

    7、Java允许我们把任何基本数据类型转换成别的基本数据类型,除了布尔类型外。【相关视频教程推荐:Java视频教程】

    8、Java没有Sizeof()。在C\C++中,sizeof()操作符可以告诉我们为数据项分配的字节数,因为C++中不同的数据类型在不同的机器上可能有不同的大小。但是Java中所有数据类型在所有机器中大小都是相同的。(例如,C++的int在16位机器上为16位,在32及以上为32位,long在32位及以下为32位,在64位上为64位)

    9、C++有goto,Java没有goto。

    Java提供了一种类似的跳转机制:标签。用法 label:

label1:
outer-iteration{
        inner-iteration{
    break;(1)
    continue;(2)
    continue label1;(3)
break label1;(4)

}
}
  • (1)中,break中断内部迭代,回到外部迭代

  • (2)中,continue使执行点移回到内部迭代的起始处。

  • (3)中,continue label1同时终端内部迭代以及外部迭代,直接转到label1处;随后继续迭代,从外部迭代开始。

  • (4)break label1 也会中断所有迭代,并回到label1处,但是不重新进入迭代。即完全终止两个迭代。

    10、C++中析构函数是提供一个在对象删除前可以释放这个对象所占用的资源的机会,但是Java并未提供“析构函数”或者类似的概念。 

    在C++中,对象一定会被销毁(程序没有缺陷的情况下);

    在Java里,对象却并非总是被垃圾回收。(垃圾回收并不等于“析构”)

    11、名称屏蔽

    如果Java的基类拥有某个已被多次重载的方法名称,那么在导出类中重新定义该方法名称并不会屏蔽其在基类中的任何版本。而C++若要在子类中引入一个新的重载方法,则需要屏蔽基类方法。

    12、C++中有多继承,Java中只有单一继承。Java可以通过接口实现多继承。

    13、Java是半解释和半编译的,运行速度比C++慢。

    14、Java没有Struct或者Union

    15、Java的泛型不允许使用基本数据类型。

    16、数组

  • 在c++中,数组定义时,已经分配存储空间,并可以使用。 (定义时指定数组大小)

  • 在java中,数组定义时,int arr[],只字义了数组变量,数组是不可以使用的。 只有数组new以后,才会创建数组,分配存储空间,并可以使用。 (定义时指定数组大小是非法的,创建时指定数组大小)

    17、C++有指针,Java没有。

    18、附上C++在32位和64位系统的主要长度对比:

    现在大家对于C++和Java的区别在哪应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多C++和Java的内容,大家可以关注群英网络其它相关文章。

文本转载自PHP中文网

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: c 和java的区别
相关信息推荐
2022-06-23 17:03:00 
摘要:绘制动画虽然canvas的API并未直接提供支持动画的方法,但就其本身而言,在canvas中实现动画效果也很简单:只需要持续的更新并重绘画布就行了。这种持续的更新并重绘就叫做动画循环,它是所有动画的核心逻辑。在canvas中实现动画,首先需要初始化画布上的对象。然后,启动一个动画循环来更新画布、清除画布、重绘画布,再请求下一个新的动画帧。Canvas动画的基本原理如图 4‑36 所示:图4-36 ...
2022-07-22 17:32:52 
摘要:在python中可以使用“open()”函数创建file对象,该函数用于打开一个文件,创建一个file对象,其语法是“open(name[, mode[, buffering]])”,其参数name表示包含了你要访问的文件名称的字符串值。
2022-10-08 17:52:23 
摘要:环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是 Docker 将开发环境和生产环境以轻量级方式打包,提供了一致的环境。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部