java与c++区别
来源:互联网 发布:百科知识竞赛网络宣传 编辑:程序博客网 时间:2024/06/06 05:39
看了下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
- java与C区别
- C语言与JAVA区别
- java与C的区别
- C与java的区别
- C与Java的区别
- 初学java java与C的区别
- C++与C的区别, C++ 与Java区别
- C、C++、C#、JAVA的区别与联系
- JAVA与C++,C与C++的区别
- C语言与C++、C++与JAVA 的区别总结
- Java与C及C++的区别
- Java与C/C++的区别
- java与c中数组的区别
- java与c,c++的区别
- Java与C/C++的区别
- C#与C++、JAVA的区别
- C/C++与Java函数重载区别!
- [zt] Java与C/C++的区别
- Maven资源库的使用
- 进程状态和CPU调度算法***
- Maven之(五)Maven仓库
- caffe学习(三):caffe视觉层参数
- 39. Combination Sum
- java与c++区别
- 【数据结构】中缀表达式转后缀表达式
- [BZOJ1008][HNOI2008]越狱(数学相关)
- 构造函数
- 一个类搞定Android适配!!
- 边框应用图片border-image
- 第11课:Spark Streaming 源码解读之Driver中ReceiverTracker架构设计及具体实现彻底研究
- 软考总结篇
- PE--重定位表