首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

对比java和python

对比java和python    1.难易度而言。python远远简单于java。   2.开发速度。Python远优于java   3.运行速度。java远优于标准python,pypy和cython可以追赶java,但是两者都没有成熟到可以做项目的程度。   4.可用资源。java一抓一大把,python很少很少,尤其是中文资源。   5.稳定程度。python3和2不兼容,造成了一定程度上的混乱以及大批类库失效。java由于有企业在背后支持所以稳定的多。   6.是否开源。python从开始就是完全开源的。Java由sun开发,但现在有GUN的Openjdk可用,所以不用担心。   7.编译还是解释。两者都是解释型。   我理解,C好比手动挡车(编译型语言),java和python(解释型语言)好比自动档车。跑的最快的车都是手动档,但是对开不好的人来说,开自动档反而更快些。   Kno有一篇文章谈到选择编程语言,“先确定你的需求”,不要由语言的简单还是复杂去觉定。只有能够编写你真正认为有用的程式,才能获得满足感,学习才能继续。   那么java和python分别适用于什么样的环境呢。由sourceforge.net可以看出:   最著名,久经考验的普通应用程序,基本都是c++写的。例如emule,7-zip,WinSCP,FileZilla等等等。   一部分由java开发,例如最有名的OpenOffice。   python写的很少,如Pidgin,FireBird。   开发语言(有多少个程式由此语言开发)的排行如下:   # Java46,202   # C++36,895   # PHP30,048   # C28,075   # C#13,476   # Python13,379   # JavaScript11,285   # Perl9,216   # Unix Shell3,869   # Delphi/Kylix3,548   # Visual Basic3,186   # Visual Basic .NET   很多框架和类库也和应用软件一样在这个列表里,因此比较公平。   由此可以看出,java不管在GNU还是商业领域都是应用最广的语言。C主要用于构建系统底层。c++和java用于构建中间应用层。如果资源足够,那么会选择c++开发,以求运行速度,否则会用java开发,以求开发速度。python在各方面都比java优秀,可谓次世代语言。可最受争议的是它的速度,纯python比java慢很多,以及背后没有商业支持,稳定性备受诟病。目前为止,python在商业层次上,主要作为一种胶水语言,粘合其他语言(主要是c/c++)的类库。在GNU领域,主要局限于小规模的应用和个人化应用。以及逆向工程(黑客)应用。   为什么java在服务器端被大量应用,在客户端用的却比较少呢。难道服务器端用到的计算量反而少么。我认为这说明对比c++,java的速度还是可以接受的。无法被接受的是JRE平台,以及JRE平台启动时卡的那一会儿。我就曾经为此认为java写就的程式性能低下。   python用户常常拿来说嘴的一点是:python并不慢,因为python运行时调用了大量c库,而c是很快的。反过来想想,这正反映了其胶水语言的事实,任何一种语言都可以调用c库,这么比较有价值么?假如一个库完全由python,那么它的运行效率...不说也罢。编程不能总是用别人的库啊。

04

Python 初学者的三个疑惑之解答

第一个问题:学习 Python 不知道从何处着手。求对应的解决办法。 Python 是一门编程语言,任何编程语言从一开始就离不开动手实践,光靠看书、看视频是不可能学会的,当然看书这些是非常重要的,看书能让形成自己的知识点体系,从而对 Python 形成自己的方法论;书的话对于初学者,我还是推荐董付国老师的《Python 程序设计基础》,这本书非常适合小白,语言浅显易懂,例程代码清晰明了。 看书的一个好习惯是,看懂书上的一个代码例程,马上自己动手实现,看运行结果是否和书上的一样,注意一定不要复制,不要小瞧这个看似很笨的操作,因为只有亲手敲过书上每一行你看似理解的代码之后,才会对 Python 编程的细节有所体会,进而有更深刻的理解,在这里获得的每一个理解,以后可能就是你解决 bug 的一个启发。 对 Python 的知识体系有大致了解后,就可以去看你感兴趣领域的教程了,可以是论坛上的教程,也可以是视频教程,一来强化巩固基础知识,二来积累编码经验,提升编码水平。 第二个问题:学习 Python 有哪些正确高效的姿势? 一曰读,分为泛读、精读、攻读;比如那些基础的语法,比如方法、对象、常用模块就可以泛读快速过一遍,因为这些知识点要用的时候看一遍就会。要精读的是列表、字典、生成器这些知识点,最好一次性吃透一个知识点,只有掌握了这些知识点,才能灵活运用。最高阶的是攻读,对于一个疑惑的知识点,书上没有解答,网上也没有相关经验,这就需要你自己手脑并用,编码测试解决这个疑惑了。 二曰写,写精读的理解,写攻读的心得。写博客有两大裨益,一来可以让你的经验让更多人看到,这本身就是一种乐趣,同时可以让别人检验你总结的不足。二来,你下次遇到类似的情况,可以很快的get到点。 三曰找,IT 从业者的一个禁忌就是重复造轮子,要实现一个功能,在动手编码之前,首先要广泛调研,可以去 Github/码云 上看有没有类似的轮子,有的话直接迁移来用,凡事从零开始不易,不如站在巨人的肩膀上。 第三个问题:熟悉 C++/Java,还要必要学习 Python吗? C++/Java 是编译型语言,Python 是脚本型语言。现在的人才趋势是掌握一门编译型语言的同时掌握一门脚本语言,C++/Java 可能是你的工作语言,但是 Python 可以成为你的工具,多数问题,用 Python 来验证结论往往最快。Python 这个工具可以助你的 C++/Java 开发更加方便快捷。两者并不矛盾。

02
领券