C,C++,Java,Python之间的异同

C,C++,Java,Python之间的异同

作者:噜啦啦噜啦啦
链接:https://www.zhihu.com/question/21976478/answer/158145376
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
   如果你是一位计算机方面零基础的小白,在日常工作和生活中,希望能够自己编写程序来完成一些事情。那么,比较各种语言之间的异同,实际上是为了选择适合自己的学习和使用的。下面就为大家分别介绍一下目前比较主流的编程语言之间的异同点。
  首先,C++、Java和Python都是面向对象的编程语言,也都是强类型语言。
  C++更接近于底层,方便直接操作内存。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
  来源于C,C是一种面向过程的语言。由于C++源于C,它良好的兼容了C功能,完全支持C,因此既可以面向对象、也可以面向过程。近几年又在此基础上发展出C#,C#使用起来更类似于Java。
   C++和C中都有指针的概念,C++还可以使用智能指针,boost库。指针可以理解为一个地址,可以由程序员使用指针直接拿到该地址的数据,但是由于指针在使用的过程中,如果没有处理好,容易出现空指针和野指针,带来一些麻烦,因此Java去掉了指针的功能,规避了指针使用中可能存在的混乱情况。Java在C++的基础上又做了更高级的封装,具有良好的平台间的可移植性。C++一次编写到处编译,而Java一次编译到处运行。Java中的功能C++都能够实现,只是相对来说在编程方面会比较复杂一些。
   C++ 编译成本地机器码, 可以由操作系统直接运行,运行效率较高。
   Java 编译成字节码,需由Java虚拟机读取运行, 所以效率偏低,但可通过JIT提高运行效率。
   垃圾回收方面,C++需要程序员自己回收,对内存进行良好的管理,而Java则不需要程序员自己完成这个工作,有自己的垃圾回收机制。
  各种语言的基本语法都是相似的,比如int、float、double、bool等基本数据类型。
  但是实现起来肯定是不同,比如C++把声明和实现分别放在头文件和源文件中,而Java则不使用头文件。C++引用其他内容时需要include,而Java则用package和import。这些都是细节的差别,但都是最基础的内容。
   Java还可以应用到Android开发和JSP开发中。Java可以用来编写Android的应用程序,C#也可以。JSP则是用Java来做网站的。
Python是一种脚本语言,面向对象的思想个人认为体现的不是很明显。它更适合用来做算法。Python简单易学,对于新手来讲是编程入门的好选择。Python其实也是基于C++创造的,它们的区别主要体现在,C++效率高,编程难;Python效率低,编程简单。比如同样的事情,Python程序员可以很快的写出代码,但机器运行却可能需要成倍于C++的时间;反之,C++程序员编程实现的难度比较大,但在机器上的运行效率很高。因此,很多公司在核心的功能、需要大量运行的部分更倾向于选择C++,而在执行次数不多,但对写代码速度要求比较高的部分则更倾向于使用Python。
  常用的IDE,C++常用VS,Java常用MyEclipse,Python则是PyCharm。
  如果你想了解编程并快速做出点可用的东西学Python,想转行从事编程工作学Java,想了解计算机底层的执行过程与运行原理就来学C++吧。
   当然,如果想做出自己的东西,不仅需要了解编程语言,基本的数据结构、数据库、操作系统方面的知识都要懂一些。更深一点的还包括计算机网络、计算机组成原理等基础内容。
最后可能是对大家最实用的部分:

  • 做信息系统的请用Java和关系型数据库(可以是MySQL,SQL Server等)
  • 做网站请用JSP(基于Java的)或者PHP(当然JSP和PHP都是用来实现后台功能的,前台界面请学习HTML5和CSS标准);
  • 做算法请用Python;*做要求高效率的运算请用C++;
  • 做界面Java和C++都可以,C++请学习Qt(风格类似于Windows操作系统),Java请下载和导入Swing包(轻量级组件)或Awt包(重量级组件,现在已经用的比较少)学习。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值