python和java哪个好


热门范文 2019-05-17 06:04:03 热门范文
[摘要](1) [python和java哪个好]Java好还是Python好?一张图告诉你!某同学问小智:“小智小智,学Java好还是学Python好?”小智跑去问大神(90度鞠躬):“大神,大神,学Java好还是学Python好?”大神嫌弃的看了我一眼,继续妙手生花的敲代码,良久,飘过来一句:“初学者

【www.shanpow.com--热门范文】

(1) [python和java哪个好]Java好还是Python好?一张图告诉你!


某同学问小智:“小智小智,学Java好还是学Python好?”
小智跑去问大神(90度鞠躬):“大神,大神,学Java好还是学Python好?”
大神嫌弃的看了我一眼,继续妙手生花的敲代码,良久,飘过来一句:“初学者才争论语言,我们只看心情。”
小智:“那他们的区别是什么?”
大神:“区别就是他们是否适合你们这些小白。”
OK,不愧是大神,那就让我们初学者,自生自灭吧!不,自力更生吧!
图版:(看不懂的地方小智都翻译过了)
文字版:
Python
优点 :
语法简洁优美, 功能强大, 标准库跟第三方库灰常强大, 应用领域非常广,跟PHP形成了鲜明的对比!
语言方面, 举几个例子:
一切都是对象!!!
类(class本身)/函数/类方法是callable的对象
因为是对象,所以你当然可以传来传去啦. 比如:
List表达式(其他好多语言也有,但是我最喜欢python的写法):
把"1023"变成 [1, 2, 3]
(当前你可以用Lisp风格的: map(int, filter(lambda x: x != "0", "1024")))
对dict也是类似:
yield关键字:
当你需要返回很多东西然后一个一个用的时候, 你可以一次返回一个
装饰器@:
把something_heavy()返回的结果缓存起来(以函数名+args为缓存的键值,只缓存最近使用的10条)
运算符重载:
试试numpy, 你会惊呆的, 操作向量/矩阵跟基本类型一样方便
缺点:

目测python是最慢的脚本语言,比V8上的JS还慢不少。 (研究一下描述符,你会发现python调用对象方法的开销好大!)
但是python创始人说了, 一般程序的瓶颈在于20%的代码, 所以你可以把那20%的代码用C重写(因为python是胶水语言,顾名思义,在多个语言之间左右逢源,游刃有余,用C重写部分代码当然很easy啦)
同时,你可以试试PyPy, 引入了JIT技术。
动态类型
有人说: 动态类型写时爽, 重构起来是灾难。
对于不写unittest, 不做代码覆盖率测试的人来说, 动态语言当然是危险的, 拼写错误都可能被隐藏, 重构?别捣乱!
python创始人有话说: "如果你认为编译器可以帮你解决所有问题,那你一定干编程没多久,不管什么程序,都需要写testcase, 既然要写testcase, 那么动态类型不是问题!"
Java:
优点
用几个词形容一下Java语言:优美,严谨,健壮,不易出错。
当然,使用也非常的广泛: 常年盘踞编程人员数量排行榜第一名!
各种库也灰常多: akullpp/awesome-java · GitHub
同样的代码, 相比C++(甚至python), Java代码出BUG的概率要小点(当然,写的时候一般会比python长)
Java从语言设计上尽量避免了程序员犯错,比如自动垃圾回收, 抛弃无符号类型, 安全的枚举,编译期泛型检查(Java1.5之后加入的泛型,但是只是用来做编译器检查,运行时跟以前一样),强制的异常处理(遇到异常必须catch或者申明throws) 等等(当然,某些特性python也有)
Java标准库和好多第三方代码都充斥着浓浓的设计感!!! 各种设计模式到处可见。 从下面的语句可以看出一点来:
好多字, 看它们的:
C:
Python:
Java代码多,但是API可复用行更强,选择更多(我想一次读完文件,不要buffer呢?)
因为健壮安全,所以Java成了企业级后台的标准。想想银行后台, 关键地方出点bug可不得了。
缺点:
要敲好多代码, 参考上面的例子...
没有Python那些奇葩特性,灵活性不足,怎么写你还是Java, 而Python可以写的像Javascript/Lisp/Matlab.....
简单来说, Python是给人设计的(人生苦短,请用Python), C/C++更像是为机器设计的,而Java则介于两者之间。
如果你是高手,写出的代码没什么bug,也不用怎么调试, 那推荐你用python(前提是他的慢你能忍受。 当然,高手眼里, 他会的就是最好的....)
如果你写的代码bug多,大部分时间在调试代码,你可能需要了解一下Java, 或者写足够多的testcase。
其实,有一点大神说的是对的,没有好的语言,只有合适的语言。
猴子开核桃用石头,砸别的猴子也用石头。而我们人类开核桃用核桃夹,打别的人用枪。
每一门语言都有自己的设计思想,一个合格的程序员应该多学几门语言,了解怎样用不同的方法和思维去解决同一个问题。
本文为头条号作者发布,不代表今日头条立场。

(2) [python和java哪个好]Python和Java先学哪一个好?可以一起学吗?


Java和Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的问题是,我该学 Java 还是 Python,是不是 Python 容易学,或是应该先学什么编程语言等等这样的问题。
作为一名 Java 程序员,肯定会建议你先学 Java,然后再学 Python,但如果你问一个 Python 程序员,可能会得到一个完全相反的答案。与此同时,随着人工智能技术的不断发展,Python 已经不再是乳臭未干的黄毛小子了,它已经成长而且和主流的编程语言,像 Java,C++ 有的一拼。
当最开始接触 Python 的时候,会觉得它是一门脚本语言,但是后来发现这是误解。你也可以在 Python 中进行面向对象的编程。对于初学者,选择一种具有吸引力的,同时有着强大社区支持的语言去学习。现在 Java 和 Python 都满足刚才说的条件,甚至在做了一些很棒的分析比较之后,依然很难得出应该学习哪个语言。庆幸的是,我们有信息图形,可以指出 Python 和 Java 之间一些重要的不同点。
从图表中,你可以很容易看出 Java 比 Python 罗嗦。在 Java 中读一个文件要写10行代码,而在 Python 中只要两行。这一点是 Python 的优势,因为很多新手程序员会喜欢编写很少的代码,第二点则是关于静态变量,动态变量,你需要强类型的语言和严谨的编译器来检测犯二的代码。
在 Java 中,你不会看到,在一个字符串变量中接着存整型变量。执行速度是企业级应用的命脉,你可以看到 Java 比 Python 快,但是要记住,你需要编译才能运行 Java 程序,而 Python 程序不要编译可以直接运行。Python 控制台可以直接解释 python 命令,这对于新手来说意味着会更加简单!
所以现在 Python 和 Java 2:2,扯平了。
虽然你还会看到 Java 中 hello world比 Python 需要更多行代码,但最终你会发现,他们二者的能力是一样的,没有谁差。当然,学 Java 并把它当成职业生涯的编程语言,你绝不会后悔。但与此同时,你可以在任何时候学习 Python,这对于写一些小的工具集也非常有用。
最后,Java和Python都是工具,选择什么工具取决于你想要干什么,所以你要想好你要干什么再找合适的工具才是可行之道。无论你选择何种编程语言,都去好好享受编程吧。

(3) [python和java哪个好]java 和 python 对比


Java的类型安全
JVM完美支持日志和监控
Maven是一个Java构建系统,相比于配置,它更重视规范。Maven定义了应用程序的结构,并提供了许多内置函数,比如运行测试,打包应用,部署你的库。使用Maven会显著降低管理Java项目的认知开销。
Java缺少映射到JSON的object literal syntax(如Python的字典literal syntax)。
python是全动态性的,可以在运行时自己修改自己的代码,java只能通过变通方法实现。python的变量是动态的,而java的变量是静态的,需要事先声明,所以java ide的代码提示功能优于python ide。
python的产生几十年了,几十年前面向过程是主流,所以用python有好多程序用的是面向过程设计方法,很多概念从c语言过来的,class在python中是后加入的,而java是为了实现没有指针的c++(当年com组件用的引用记数,java用的虚拟机),主要采用面向对象的设计方法,很多概念是oop的概念。面向过程,相对简洁直观,但容易设计出面条程序,面向对象,相对抽象优雅,但容易过度抽象。
在实际使用的python入门简单,但要学会用python干活,需要再学习python各种库,pyhton的强大在于库,为什么python的库强大,原因是python的库可以用python,c语言,c++等设计,再提供给python使用,所以无论gpu运行,神经网络,智能算法,数据分析,图像处理,科学计算,各式各样的库在等着你用。而java没有python那么多的开源库,很多库是商业公司内部使用,或发布出来只是一个jar包,看不到原始代码。python虚拟机因为编译性没有java的支持的好(或者说故意这么设计的),一般直接使用源码(linux),或源码简单打个包(如pyexe)。
Python,其中一点就是它可以迅速地实现读取﹣求值﹣输出循环( read-eval-print loop),从而快速评估新的想法或检验假设。
很多初学者认为Python是弱类型语言,因为定义变量的时候不需要指定类型,而且变量随时可以改变其类型,事实上Python是“强”类型语言,变量名只是一个名字而已,而该变量所绑定的对象在对象创建初期就确定好了类型的,你永远也不可能再改变其类型,因此Python是强类型语言。而Java是一门静态强类型语言。
在Python中,不论是数值(整型、浮点型),字符串,字典,元组对象,还是他们所对应的类型,以及函数,模块等你所能看到的都是对象,他们的祖先是PyObject。而Java中至少函数,基本数据类型都不算对象。
Python中的GIL一直被不少开发者所诟病,GIL是指全局解释锁,Python的多线程在多CPU条件下并不能并行的运行,而只能是每个线程运行的时候首先需要获得解释器的访问权限才可以执行,其他线程只能处于等待的过程,不过GIL并不是Python的致命缺点,否则现在没人会用的,因为有很多方案是协程,或者是用多进程机制来弥补。而Java支持真正的多线程并发操作,能很好的控制资源的的共享
python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库。
python有很多虚拟机实现,如cython,Pyston,pypy,jython, IronPython等等,适合用于业务语言,或插件语言,或面向领域语言,而java因为虚拟机巨大,很少用于插件语言,发布也不方便。
java主要用于商业逻辑强的领域,如商城系统,erp,oa,金融,保险等传统数据库事务领域,通过类似ssh框架事务代码,对商业数据库,如oralce,db2,sql server等支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析,科学计算,金融分析,信号分析,图像算法,数学计算,统计分析,算法建模,服务器运维,自动化操作,快速开发理念强,适合快速开发团队或个人敏捷模式。
java的商业化公司支持多,如sap,oracle,ibm等,有商业化的容器,中间件,企业框架ejb。python的开源组织支持多,如qt,linux,google,很多开源程序都支持python, 如pyqt,redis,spark等。
python用途最多的是脚本,java用途最多的是web,pyhotn是胶水,可以把各类不相关的东西粘在一起用,java,可以通过软件工程组成几百个人的团队和你pk,商业化气息重。不过我认为还是python强大,因为可以方便调用c或c++的库,但软件工程和商业化运作没有java好,适合快捷开发。
Java是更工程化的语言,偏学院派,偏向严谨,正确性。
Python等脚本语言更注重实用性,偏实践派,偏向简单,效率。
python闭包有效的减少了函数所需定义的参数数目。这 对于并行运算来说有重要的意义。在并行运算的环境下,我们可以让每台电脑负责一个函数,然后将一台电脑的输出和下一台电脑的输入串联起来。最终,我们像流 水线一样工作,从串联的电脑集群一端输入数据,从另一端输出数据。这样的情境最适合只有一个参数输入的函数。闭包就可以实现这一目的。
并行运算正称为一个热点。这也是函数式编程又 热起来的一个重要原因。函数式编程早在1950年代就已经存在,但应用并不广泛。然而,我们上面描述的流水线式的工作并行集群过程,正适合函数式编程。由 于函数式编程这一天然优势,越来越多的语言也开始加入对函数式编程范式的支持。
本文为头条号作者发布,不代表今日头条立场。

本文来源:https://www.shanpow.com/news/299791/

《python和java哪个好.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关阅读
  • 《中国九年义务教育歌》 《中国九年义务教育歌》
  • 员工作业效率算法说明 员工作业效率算法说明
  • 补入党介绍人证明 补入党介绍人证明
  • 严字当头确保全面从严治党主体责任落地落实 严字当头确保全面从严治党主体责任落地落实
  • 被巡察单位党组工作汇报材料 被巡察单位党组工作汇报材料
  • 疫情防控党课讲稿大全 疫情防控党课讲稿大全
  • 疫情防控事迹材料 疫情防控先进个人事迹材料 疫情防控事迹材料 疫情防控先进个人事迹材料
  • 大学生读书笔记1000字 大学生读书笔记1000字
为您推荐