Java和C语言的区别在哪里?_java语言与c语言-程序员宅基地

技术标签: Java和C语言的区别在哪里?  Java和C语言的区别在哪里  

Java和C语言的区别在哪里?
设计者联盟2016-08-16 14:24
1.Java与C语言各自的优势
C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低。
C语言最关键的是比Java多了指针,这也说明了Java的健壮性,还有Java的多线程机制使程序可以并行运行,Java程序多用于网络。
C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。
Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。
2.Java和C语言谁的通用性会比较好
在速度上,C语言编写的程序要优于Java,因为Java必须运行在虚拟机的环境中,但是因为虚拟机,Java获得的平台无关性,而C语言的程序有可能需要重新修改编译才能实现平台的移植,
另一方面,C语言比Java语言更“底层”,因此可以用C编写例如硬件的驱动,而Java却不行。Java和C语言还有个明显的不同就是C语言注重的是算法,但是Java却不一样,想用的时候导包就可以了。
C语言的算法很重要,但是Java中的算法没有C语言那么复杂。打印的方法:C语言是printf("…….");而Java是System.out.print("……."),也可以用println,ln表示换行。
Java程序中的基本数据类型(boolean,char,byte,short,int,long,float,double),是对对象的引用;C语言也有许多种基本类型,还有struct,union,enum,数组和指针。
在Java没有枚举、联合类型。Java采用Unicode字符集,C语言通常采用的是ASCII字符集,A—65,a—97。C语言的变量可以不进行初始化,但Java的变量要进行初始化。
在C语言中,char类型占一个字节,在Java中char类型占2个字节。
3Java和C语言各自的特征
Java面向对象的特征主要有封装,继承,多态。类的继承关系是单一的、非多重的,一个子类只有一个父类,子类的父类又只有一个父类。C语言支持“运算符的重载”,这是它的一个很重要的多态特征,是数据抽象和泛型编程的利器。它允许直接对对象进行四则运算,正像基本数据类型那样Java不支持这种多态机制,也是为降低复杂性。
Java可以支持方法重载和重写,所谓重载就是一个类具备多个相同属性行为;重写就是在继承关系中父类的行为在不同的子类上有不同的实现。在Java中比C语言多了一些修饰符,如访问修饰符Public(公共的)、Private(私有的)、Protected(受保护的)、默认。
Java有super关键字,指代父类对象,通常被用于调用父类的构造方法或一般方法C语言则没有super关键字,两者都有this,指代当前对象。
在Java中,除了static、final、private是静态绑定以外,所有方法一律按动态绑定处理。Java中可以将类组织起来用Package打包,而C语言没有。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/pingdouble/article/details/52278632

智能推荐

生成UUID(保证唯一性)_vba 唯一id生成函数-程序员宅基地

文章浏览阅读1.5k次。String uuid = UUID.randomUUID().toString().replace("-", “”).toLowerCase();_vba 唯一id生成函数

服务器硬盘挂载(永久挂载UUID)_disk.enableuuid = "true-程序员宅基地

文章浏览阅读3.9k次。1. lsblk命令可以清晰的获取全局的块设备布局,如果未挂载,moutpoint点是空的。该命令会显示服务器上所有的硬盘,包含未挂载的。 df -h 命令 只显示挂载的硬盘概况 2. 查看未挂载硬盘的UUIDls -l /dev/disk/by-uuid/ 获取UUID3.vi编辑/etc/fstab文件系统信息,在最后加入未挂载硬盘信息。挂载信息编写遵循这些字段《file system》 《mount point》 《type》 《options》 ..._disk.enableuuid = "true

Python教程:zipfile模块压缩文件(1)-程序员宅基地

文章浏览阅读508次,点赞21次,收藏5次。讲解视频,并且后续会持续更新**

Laravel 后台管理员修改密码(API)_laravel-admin 修改后台密码-程序员宅基地

文章浏览阅读1.5k次。紧接上一篇,我们来完成用户修改密码这一部分。编写好我们的路由: Route::post('changepsd', 'ChangePosswordController@changepsd');然后创建一个控制器:<?phpnamespace App\Http\Controllers\Web\Admin;use Illuminate\Http\Requ..._laravel-admin 修改后台密码

ubuntu18.04 安装升级cmake_ubuntu 升级 cmake-程序员宅基地

文章浏览阅读929次,点赞18次,收藏15次。4、编译,为了加快编译速度,可以根据自己的电脑线程选择,我的是8线程。6.3 进入所查询到的目录并移动文件,最后再次查询cmake版本。1、下载cmake,我这里是下载了3.21.1版本,下载地址。6.2 查看自己把cmake 安装到哪里了。2、解压缩下载的文件并进入文件目录下。6.1如果安装成功了,但是又显示。_ubuntu 升级 cmake

python调用tensorflow库_Tensorflow C++ API调用Python预训练模型-程序员宅基地

文章浏览阅读451次。最近一段时间研究了如何打通tensorflow线下使用python训练深度学习模型,然后线上使用c++调用预先训练好的模型完成预测的流程。毕竟深度学习模型上线是需要考虑效率的,目前来说c++的效率还是python所不能比的。这篇文章基于tensorflow 1.2版本写的,tensorflow 1.2版本及以上提供了一种更加方便的c++ API调用python API训练好的模型。但这方面的资料比..._python 加载 tensorfollow 模型

随便推点

Aspose.Pdf 转图片的正确姿势_aspose pdf转图片-程序员宅基地

文章浏览阅读3.1k次。如何优雅的将pdf转换成图片 public static List<File> pdf2PngByAspose(File sourceFile, File destDir) { List<File> resultFiles = new ArrayList<>(); String path = sourceFile.getPath(); if (FileUtil.isPdf(sourceFi......_aspose pdf转图片

决策树(理论)_布尔决策树-程序员宅基地

文章浏览阅读835次。0.机器学习中分类与预测算法的评价指标1)准确率2)速度3)强壮性(算法稳定)4)可规模性(适应于不同规模)5)可解释性(容易解释结果)1.基本流程1)定义:决策树是一个类似于流程图的树结构;其中,每个内部节点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶节点代表类或类分布。树的最顶层是根结点;2)地位:决策树归纳是一类最简单也是最成功的机器学习方_布尔决策树

CSAPP第七章学习笔记_csapp第七章笔记-程序员宅基地

文章浏览阅读770次。文章目录第7章 链接7.2 静态链接7.3 目标文件7.4 可重定位目标文件7.5 符号和符号表7.6 符号解析7.7 重定位7.8 可执行目标文件7.9 加载可执行目标文件7.10 动态链接共享库7.11 从应用程序中加载和链接共享库7.12 位置无关代码7.13 库打桩机制第7章 链接链接是将各种代码和数据片段收集并组合成为一个单一文件的过程,这个文件可被加载到内存并执行。7.2 静态链..._csapp第七章笔记

java 庖丁解牛中文分词_庖丁解牛"中文分词包-程序员宅基地

文章浏览阅读149次。http://code.google.com/p/paoding/Paoding Analysis摘要Paoding's Knives 中文分词具有极 高效率 和 高扩展性 。引入隐喻,采用完全的面向对象设计,构思先进。高效率:在PIII 1G内存个人机器上,1秒 可准确分词 100万 汉字。采用基于 不限制个数 的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析欢..._java 分词库 庖丁解牛

winnt.h C2146 error C2146: syntax error : missing ';' before identifier 'PVOID64' 又一可能的解决方案_s32146出现unknown opcode flagh vector table expectin-程序员宅基地

文章浏览阅读5.1k次。今天碰到这个问题,然后搜索了一下,发现有如下解决方案http://blog.csdn.net/yysdsyl/article/details/2684786 *1 但是照着做了,移动了下目录,发现问题还在, 本来想再搜索一些资料的,发现搜索结果不尽如人意╮(╯▽╰)╭。 于是又仔细研读了这篇文章,再反观错误提示。以及另一篇解决方案:http://_s32146出现unknown opcode flagh vector table expecting encode ma

shell sort排序_zlib 1.2.20-程序员宅基地

文章浏览阅读7.8k次。[root@dev test]# ls | sort -n zlib-1.2.10.tar.gz zlib-1.2.11.tar.gz zlib-1.2.12.tar.gz zlib-1.2.20.tar.gz zlib-1.2.3.tar.gz zlib-1.2.8.tar.gz我要的结果 zlib-1.2.3.tar.gz zlib-1.2.8.tar.gz zlib-1..._zlib 1.2.20

推荐文章

热门文章

相关标签