C、C++、java的区别
经常听到有人在抱怨这个语言哪里哪里 不好,那个语言又是如何的优秀。对于这样 的牢骚,我只是一笑而过。 就我而言,语言只是工具,没有好坏之 分。只要你采用相应的语言,完成对应的工 作,那你的目标就完成了。我们无需抱怨这 种语言的缺点,而是应该抱有接受的态度。 任何语言的存在都有它的合理性,如果不合 理是不会经受住时间的考验的。世间之物都 具有双面性,只是看利多还是弊大。如果一 个东西是十全十美的,那我毫不犹豫的告诉 你,一种情况是它不存在,另一种情况是你 还没发现它的缺点。 每种语言都有自己得天独厚的优势,当 然缺点同时伴存。
C语言是计算机界的常青 藤。C语言执行效率高,用于写底层的驱动 那是再适合不过。指针是C语言的精华。而 C++是很强大的,只要你是个高手,你几乎 可以利用C++完成任何事情。当然虚函数是 C++的精华。Java取消了指针,这是应该喜 还是忧。喜的是,没有C或者C++那种对内 存繁琐的操作,而且也降低了很多致命性的 错误发生的概率。忧的是,效率大打折扣, 采用虚拟机的方式使得Java有跨平台的特 性,必然会使得效率降低。另外一个方面, 你借别人的东西使用(内存),是不是应该 还回去呢?从这一方面考虑,C或者C++的 设计思想更有意义。经常关注TIOBE世界编 程语言排行榜,Java已经有很久排名第 一,我觉得这样的排名只是看看而已,无需 过多的信奉。
下面看看几种主要语言的优缺点。
C语言
C语言的优点:
1.简洁紧凑、灵活方便
2.运算符丰富
3.数据结构丰富
4. C是结构式语言
5. C语法限制不太严格,程序设计自由度大
6. C语言允许直接访问物理地址,可以直接 对硬件进行操作
7. C语言程序生成代码质量高,程序执行效 率高
8. C语言适用范围大,可移植性好
9. C语言有一个突出的优点就是适合于多种 操作系统,如DOS、UNIX,也适用于多种机型
10.有效地将一个较复杂的程序系统设计任 务分解成许多易于控制和处理的子任务,便 于开发和维护
C语言的缺点:
1. C语言的缺点主要是表现在数据的封装性 上,这一点使得C在数据的安全性上做的有 很大缺陷,这也是C和C++的一大区别。
2. C语言的语法限制不太严格,对变量的类 型约束不严格,影响程序的安全性,对数组 下标越界不作检查等。从应用的角度,C语 言比其他高级语言较难掌握。
3.可重用性差
4.数据安全性差
5.难以开发大型软件和图形界面的应用软件
6.把数据和处理数据的过程分离为相互独立 的实体
7.当数据结构改变时,所有相关的处理过程 都要进行相应的修改
8.每一种相对于老问题的新方法都要带来额 外的开销
9.图形用户界面的应用程序,很难用过程来 描述和实现,开发和维护也都很困难
C++
C++优点:
1.可扩展性强
2.高效 简洁 快速
3.可移植性
4.面向对象的特性
5.强大而灵活的表达能力和不输于C的效率
6.支持硬件开发
7.程序模块间的关系更为简单,程序模块的 独立性、数据的安全性就有了良好的保障
8.通过继承与多态性,可以大大提高程序的 可重用性,使得软件的开发和维护都更为方便
C++缺点:
1.比较底层,易用性不是很好
2.多重继承和友元机制
3.标准库涵盖范围不足
4.开发周期长
5.非并行
6.掌握有难度
7.粒度封装不够
Java
Java的优点:
1.简单性
2.面向对象性(面向对象的程度可以达到 95%)
3.健壮性
4.跨平台性
5.高性能(自动垃圾回收机制)
6.多线程
7.动态性
8.安全性
Java的缺点:
1.效率低(毋庸置疑)
2.跨平台是它最大的优点也是最大的缺点
3.复杂性(做一个项目需要很多的知识,涉 及面广)
很多时候,一种语言的优点很可能是它 的缺点,缺点又可能是它的优点。这主要看 你是从哪方面去考虑。这就印证了那句话, 凡事没有必然。 不管是哪种语言,就像文章开头所言, 只要你采用他达到你想要的,那就成功了。 无需过多在意它的缺点,更无需赞扬它的优 点。所以网上那些关于哪种语言更好的口水 仗,我只能说这样的争斗毫无意义。 语言只是工具,没有好坏之分。
C、C++、java的区别的更多相关文章
- java版本区别
java版本区别 点我,点我,Eclipse几个版本号的区别(part1) 点我,点我,Eclipse几个版本号的区别(part2) 点我,点我,Eclipse几个版本号的区别(part3)
- JavaScript与Java的区别
关于java和javascript的关系,我曾在一个论坛上看过这样一句话,java和javascript的关系,就好比雷锋和雷峰塔的关系,实在是经典! 因为名字的关系,总是有人误以为Javascrip ...
- 我来谈谈PHP和JAVA的区别
这里的标题写的是谈谈PHP和JAVA的区别,其实是委婉的说法,其实别人是想听PHP好还是JAVA好!!! 从而从中找到存在感!!! 因为由于我是从多年的php开发转到java开发的.所以最,不时的有好 ...
- [转载][Groovy] Groovy与Java的区别(一)
原文地址:[Groovy] Groovy与Java的区别(一)作者:langyizhao 因为Groovy可以用Java的所有功能(虽然JVM不同的时候可能会比较麻烦,比如在Android上),所以G ...
- php和java的区别
php和java的区别 前几天有个大学的同学给我来电话,他是在培训java的,然后我们就讨论了一下关于php和java的优劣区别(我们的是初学者,所以下面发表的内容可能不会很精准到位,望体谅): 我们 ...
- JavaScript与java语法区别
网页中各种技术的作用 感谢大佬:https://blog.csdn.net/RookiexiaoMu_a/article/details/89052768 HTML 制作网页的结构 CSS 美化网页 ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
- C++ substr() 和 Java substring() 区别
Java和C++中都有关于子字符串的操作,C++中是substr(),Java中是substring(),两者的用法上稍有些区别,首先针对只有一个参数的情况: s.substr(start) 和 s. ...
- C++和java的区别
Java区别于C++ 表面看来两者最大的不同在于Java没有指针,或者说,Java满地都是指针.对于编程者而言Java的这种设计是安全且更易用的.说Java满地是指针的原因在于它把指针的功能隐藏了,其 ...
随机推荐
- 《高性能Javascript》读书笔记-2
第二章 数据存取 字面量: 代表自身 不存特定位置 :字符串 数字 bool 对象 array 函数 正则表达 本地变量: var 数组: 存储在js数组对象内部,以数字做索引 对象成员 存储在 ...
- 一行一行分析JQ源码学习笔记-04
jquery添加方法和属性 jquery.fn=jquery.prototype ={ jquery版本 } construtor 指向修正 js源码中 fun aaa(){} 会自动生成一句 ...
- JavaEE 配置文件 应用首选项存储
JavaEE 配置文件 应用首选项存储 @author ixenos 什么是首选项? 首选项Preferences 指配置信息 首选项存储就是指对配置信息的存储 有什么方式存储? 有两种,一种存于 ...
- MySQL的NULL值处理
我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,MySQL提供了 ...
- Matlab - 矩阵基本操作
1. 矩阵的输入 右值是用方括号表示: , 逗号或空格分隔元素 ; 分号分隔行 >> A = [-, ; , ] A = - 2. 矩阵的加减 >> C = A + B ...
- jq 进度条插件
/***进度条*/var ProgressScrollBar = function (model) { this.defaults = { isCanMove: true,//是否启用拖动 conta ...
- ubuntu 12.04添加桌面启动器
Ubuntu 12.04版本上,无法通过桌面右键菜单建立应用程序启动器:这里参考一个网上方法进行了建立: ubuntu 12.04中,每个应用程序启动器都对应 /user/share/applicat ...
- redis的适应场景
redis应用场景: 1.对数据高并发读写 2.对海量数据的高效存储和访问 3.对数据的高可扩展性和高可用性 做分布式扩展很简单,因为没有固定的表结构 redis介绍: redis是一个key-val ...
- SpringMVC利用Hibernate validator做字段验证
1.添加Hiberbate validator相关的jar包 2.字需要验证的formbean 上添加验证的注解,内置注解有: dBean Validation 中内置的 constraint @Nu ...
- 通过Maven配置测试环境和开发环境连接不同的数据库
通过Maven配置测试环境和开发环境连接不同的数据库 作者及来源: 通灵宝玉 - 博客园 收藏到→_→: 此文来自: 马开东博客 网址:http://www.makaidong.com ...