软件构造 C 与 JAVA 的对比

这篇博客对比了Java和C语言的特性,指出Java作为面向对象语言的简洁性和跨平台优势,而C语言更适合底层开发。Java的自动内存管理和虚拟机使其更安全,C语言的指针操作则提供了更多底层控制。两者的差异决定了它们在互联网应用和底层系统开发中的不同角色。
摘要由CSDN通过智能技术生成

  Java 是面向对象程序设计语言,而c语言是面向过程的语言。因为这个不同,Java会更加简洁方便。Java面向对象的特质让他很适合进行互联网产业的软件开发。

  对于不同的平台来说,Java只要进行一次编译,就能在不同的平台上面运行,c语言在window系统上面编译生成的文件只能在window上运行,而想要在Linux系统下运行,就必须重新编译。而Java有自己的一套虚拟机体制,Java编译完成之后,会生成class文件,然后将生成的文件移到不同的平台时,Java虚拟机会帮助我们将class文件翻译成计算机所能识别的信息,然后可以在不同平台运行。Java相对于c语言相当于自己自带了一个翻译系统,能翻译成不同的语言以便他人理解,这也体现了Java的便利性。

  Java与C 有很多相似之处,例如词法、表达式语句、运算符等。但Java更简洁,没有C中冗余以及容易引起异常的功能成分,增加了多线程、异常处理、网络编程等方面的支持功能。

  c和Java有很多相似的关键字,但也存在不同。

  Java中,abstract,assert,boolean,class,extends,Final,import,New,package,private,public等关键字是独有的。而c中的struct和typedef关键字java中没有。

   因为Java中没有结构体类型,在C中声明结构变量时编译器会为其分配内存空间,而Java中用new来分配空间;C语言能够允许不完整的初始化以及生成结构体这样的可嵌套结构,但java不允许。typedef在c中为一个类型创造名字,而在Java中也同样没有相应的机制。

   Java的数据类型转换也有较大不同。Java 语言属于强类型语言,为了保障了他的安全性和健壮性。Java中所有的数值传递都会进行类型兼容性的检查,任何不匹配的都会产生编译错误。

  比如 C中表示真/假的变量一直是由int 类型来表示的。Java就不允许进行这样的操作,不能进行布尔型和算数型的转换。

  建立数组两种语言也有不同。

  C语言数组一般在定义时指定大小,并分配内存;在Java 中,数组定义时可以不指定数组的大小,同时也不为其分配内存空间,而是用new 创建,数组所占用的空间由Java的来及收集器自动地回收。

C语言的goto和神器——对内存地址进行直接操作的指针,在java中不存在。我觉得这是出于安全性的考虑。

可以说两者语言的差异决定了他们的使用领域。C语言偏向于底层,Java针对于互联网应用,都是必不可少的。
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值