C语言的优缺点
C语言的缺点是什么
C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信
息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形
式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全
结构化。
C语言的缺点:
1、C语言它的最大的缺点就是,如果你的项目很复杂,大量的开发人员互相之间需要更新大段代
码时,C语言可能会使事情变得异常麻烦。因为C是在面向对象方法流行之前开发的,这大大降低了C
语言复杂设计的可能性。(不要以为C语言做不了大项目–世界上有太多的经典都是用C语言完成的,如
果你想了解C语言的能力,不妨看看QUAKE3的源代码——很敬佩ID的无私,这份代码完全是公开的,
任何人都可以使用它与修改它。);
2、输入输出相对很多语言都较为复杂。对于字符串的处理,只能通过字符数组实现。绘图操作较
为复杂;
3、C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是
C和C++的一大区别;
4、C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界
不作检查等。从应用的角度,C语言比其他高级语言较难掌握;
5、指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指
针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面
做了很好的.改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性;
6、类型检查机制相对较弱、缺少支持代码重用的语言结构。
7、指针没有越界检查。
8、内存管理,自己分配空间,自己释放,有些问题编译期间发现不了,只有运行时出错。
9、可移植性,想不同操作系统平台都要用它的标准c函数库,给每个平台都要开发一套,java只要每个平台装jvm,就可以实现一次编译,到处运行
C语言的优点:
1、既有高级语言的结构和编程环境,又有类似于低级语言(如汇编语言)的系统资源操纵能力。目
标代码的执行效率只比汇编低10~20%,比其他高级语言高,适合解决有实时要求的问题;
2、有丰富的运算符、数据类型和表达式,对程序设计有良好的适应性;
3、支持以函数为基础结构化程序设计、多文件构成及文件独立编译,适合大型复杂程序设计;
4、语言简洁、紧凑,使用方便、灵活,书写形式自~由;
5、代码及可执行程序的可移植性好。
6、指针操作内存
java发展
Java之父一般指詹姆斯·高斯林
sun被oracle收购了
oracle : weblogic 中间件 使程序员脱离了事务管理 安全管理 权限管理 只专注于事务管理
Ibm : websphere 中间件 开发了eclipse 用java开发
java特性和优势
- 简单性: ‘c++纯净版’ 没有头文件、指针运算和分配内存 语法基于C
- 面向对象:对象以及对象之间的接口 模拟人的思维写代码,快
- 可移植性:程序运行在jvm(java虚拟机,相当于一个小型cpu,屏蔽底层操作系统的差异) 一次运行,到处运行
- 高性能:即时编译
- 分布式:为网络分布式环境所设计的 能处理很多tcp/ip的都东西 通过url访问资源 就像在本地访问资源一样简单 支持远程方法调用(通过网络调用方法)
- 动态性:通过反射机制使java具有动态性,c++所无法实现的东西 很多框架底层基于反射
- 多线程:交互行为和实时行为,同时看视频,听音乐… 使java成为主流服务器端开发语言的主要原因之一
- 安全性:适合网络的分布式环境 能构建防病毒,防篡改系统。
- 健壮性:吸收c和c++优点,去掉影响程序健壮性的东西(指针和内存管理),java几乎不会对计算机造成崩溃,会对内存进行检查,真出问题,能通过异常机制捕获处理