原标题:java和C/C++的差异是什么

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。下面由学码思www.njxms.com.cn小编为大家带来java和C/C++的差异是什么。

一、java和C/C++的差异是什么

和C/C++的差异。熟悉C语言和C++语言的读者一定想搞清楚这个问题,实际上,Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和C语言,C++语言完全相同.尽管如此,Java和C语言,C++语言又有许多差别。

二、主要表现在如下几个方面

1.Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变。程序运行中Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了由于内存管理方面的差错而导致系统出问题。而C语言通过malloc()和free()这两个库函数来分别实现分配内存和释放内存空间的,C++语言中则通过运算符new和delete来分配和释放内存。

2.在C和C++这种机制中,程序员必须非常仔细地处理内存的使用问题。一方面,如果对己释放的内存再作释放或者对未曾分配的内存作释放,都会造成死机;而另一方面,如果对长期不用的或不再使用的内存不释放,则会浪费系统资源,甚至因此造成资源枯竭。Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量完成全局变量的功能。Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能。Java不支持头文件,而C和C++语言中都用头文件来定义类的原型,全局变量,库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂。Java不支持宏定义,而是使用关键字final来定义常量,在C++中则采用宏定义来实现常量定义,这不利于程序的可读性。

3.Java对每种数据类型都分配固定长度。如,在Java中,int类型总是32位的,而在C和C++中,对于不同的平台,同一个数据类型分配不同的字节数,同样是int类型,在PC机中为二字节即16位,而在VAX-11中,则为32位.这使得C语言造成不可移植性,而Java则具有跨平台性(平台无关性)。类型转换不同。在C和C++中,可通过指针进行任意的类型转换,常常带来不安全性,而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。结构和联合的处理。在C和C++中,结构和联合的所有成员均为公有,这就带来了安全性问题,而在Java中根本就不包含结构和联合,所有的内容都封装在类里面。

4.Java不再使用指针。指针是C和C++中最灵活,也最容易产生错误的数据类型.由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性。而Java对指针进行完全地控制,程序员不能直接进行任何指针操作。避免平台依赖。Java语言编写的类库可以在其它平台的Java应用程序中使用,而不像C++语言必须依赖于Windows平台。在B/S开发方面,Java要远远优于C++。返回搜狐,查看更多

责任编辑:

c 和 java 差异_java和C/C++的差异是什么相关推荐

  1. Java状态和策略设计模式之间的差异

    为了在Core Java应用程序中正确使用状态和策略设计模式,对于Java开发人员清楚地了解它们之间的区别很重要. 尽管状态和策略设计模式的结构相似,并且都基于开放式封闭设计原则,从SOLID设计原则 ...

  2. 核心技术java基础_JAVA核心技术I---JAVA基础知识(集合set)

    一:集合了解 (一)确定性,互异性,无序性 确定性:对任意对象都能判定其是否属于某一个集合 互异性:集合内每个元素都是无差异的,注意是内容差异 无序性:集合内的顺序无关 (二)集合接口HashSet, ...

  3. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  4. java对比俩个word文件内容差异

    java对比俩个word文件内容差异 添加依赖: <dependency><groupId>e-iceblue</groupId><artifactId> ...

  5. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  6. P值(P-value),“差异具有显著性”和“具有显著差异”

    郑冰刚提到P值,说P值的定义(着重号是笔者加的,英文是从WikiPedia摘来的): P值就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率. The P-value is the pr ...

  7. 基于GC - MS的代谢组学研究揭示:SD大鼠和Wistar大鼠之间存在系统的代谢差异及乙醇灌胃反应差异

    Author: Xianfu Gao,Aihua Zhao,Mingmei Zhou,Jingchao Lin,Yunping Qiu,Mingming Su,Wei Jia 写在前面: 大鼠被誉为精 ...

  8. 转载:P值(P-value),“差异具有显著性”和“具有显著差异”

    郑冰刚提到P值,说P值的定义(着重号是笔者加的,英文是从WikiPedia摘来的): P值就是当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率. The P-value is the pr ...

  9. java 全局变量_Java语言与C语言、C++语言有何差异以及优劣势

    差异 熟悉C语言和C++语言的读者一定想搞清楚这个问题,实际上,Java确实是从C语言和C++语言继承了许多成分,甚至可以将Java看成是类C语言发展和衍生的产物.比如Java语言的变量声明.操作符的 ...

最新文章

  1. 2017西南计算机数学基础,[0838]《计算机数学基础》西南大学 2017 秋学期 计算机专业 作业题目及参考答案资料讲解.docx...
  2. wireshark抓取https并解密方法一
  3. 2019年备受关注的5个IT系统灾难恢复技术趋势
  4. 装饰者设计模式,简单代码实现
  5. OllyDbg捕捉MFC程序按钮事件
  6. MS SQL 不常用但却十分有用的一些语法
  7. 计算机模块的概念,用户定义类模块概念-计算机二级-Access
  8. 转:WaitForSingleObject()函数、WaitForMultipleObject()函数
  9. 云南省工信厅洪正华一行莅临红谷滩区·高通中国·影创联合创新中心考察调研
  10. STM32精英板连接wifi,通过指令控制继电器
  11. python高德地图可视化_【可视化】python地图可视化_Folium
  12. 通过OpenCV实现虚拟键盘
  13. java实现冒泡排序 (2012-05-23 10:18:22)
  14. 【APIO2016】烟火表演(可并堆)(折线DP)
  15. 特效笔记1----特效设计的概念和基础原则
  16. 即时通讯开发时Https的安全性原理
  17. Centos7.5-文件的基本管理和XFS文件系统备份恢复
  18. 机器学习_深度学习毕设题目汇总——车辆车牌
  19. 人工智能:定义、历史与未来展望
  20. linux下运行htk,HTK在linux下的例子.rar

热门文章

  1. Python-opencv在线帮助
  2. 几款不错的VisualStudio2010插件
  3. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的I2C驱动架构分析
  4. 初学者学习Python,掌握这些实用小技巧能快速入门!
  5. 【AI超级美发师】深度学习算法打造染发特效(附代码)
  6. css文件的MIME错误引发的Jquery Mobile绘制错误
  7. Java 流程控制与数组
  8. node js 部署相关
  9. Linux环境进程间通信---信号(下)
  10. PHP正则表达式——匹配多行