java与c++区别

看了下java的基本语法发现和c++很多都很像,查阅了很多资料总结了一点基础。

Java是一个纯粹的面向对象的程序设计语言,舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器回收不再被引用的对象所占据的内存空间,不用再为内存管理而担忧。

优点:

1)易学
和C/C++类似的同时还丢弃了C++中很少使用,很难理解的那些特征,同时不使用指针,只用引用,提供自动废料收集,不用为内存管理担忧。
2)健壮性强
java的强类型机制、异常处理、垃圾自动收集等是java程序健壮的重要保证。并且它的安全机制加强了这个特点。
3)可移植性强。
体系结构中立,严格规定各个基本数据结构长度。java系统本身就有很强的移植性,java编译器是用java实现的,运行环境是用ANSI C实现的,java编译一次到处可以运行的特征使它能够提供随处可用的开放结构和多平台之间的传递信息的低成本方式。
4)多重检测
java虚拟机要检测数组是否越界,C++不检测;检测对象的引用是否为空;也会对类型检测
5)新的java中的枚举更强大
6)编写可视化编程和链接数据库比C++简单得多

缺点:

1)速度相对慢

java是解释性语言,运行时类加载器从类路径中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应的字节。而C++编译时把程序编译成本地机器码。一般比C++速度慢10-30倍。java从网络上加载字节也会导致速度慢。java中String是UNICODE,当操作一个ASCII string时,比C++效率低

2)相等性测试

java中测试类对象是否相等很麻烦,不能重载==运算符。用==比较时测试的是两个对象是否在一个内存单元,不是是否有相同的数据。通常定义一个equals方法测试两个对象是否按照我们的要求相等

3)没有结构,联合,全局变量,typedef,没有多重继承


其他:

1)java所有对象创建在堆中,C++有的对象和变量会创建在stack中
2)java的原始数据类型在每个操作系统平台的长度相同,C++数据类型长度随操作系统的不同而不同
3)采用动态链接
4)java添加了byte和boolean类型,但是没有long double类型
5)java的boolean有true和false,不能把两个值转换成数字值
6)java中没有#include指示,用import导入包库来供其使用
7)java类可以有和一个类相同参数的构造器,但是没有特殊地位,和C++中副本构造函数不同。
8) java基本是使用别人写好的类,使用别人的API,实现一些功能只需要调用相对应的类就可以了,但是写底层功能很复杂。
9)最直观的,基础看来,输入输出不同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值