http://www.situedu.com/news/uid/2154.html
https://www.cnblogs.com/hilnx/p/12511690.html
动态性:python是全动态性的,可以再运行时自己修改自己的代码,Java只能通过比阿尼通方法实现。python的变量是动态的,而Java的变量是静态的,需要事先声明;
面向对象的差别:python虽然后来引入了class,但是产生的几十年里用的是面向过程设计方法,很多概念是从C语言过来的;Java是为了实现没有指针的C++,主要采用面向对象的设计方法,很多概念是oop的概念。面向过程,相对简单直观,但是容易设计出面条程序,面向对象,相对抽象优雅,但是容易过度抽象。
支持的库:python入门简单,但是要了解学习python各种库,,为什么python的库强大, 原因是python的库可以用python、C、C++等设计,在提供给python使用,所以各个应用领域都有可以用的库。而Java没有那么多开源库,很多是没有源码的jar包。python虚拟机因为编译性没有Java支持的好,一直直接使用源码(Linux),或源码简单打个包(如pyexe)。Java的商业化公司支持多,python开源组织支持多。
虚拟机的区别:python虚拟机没有Java强,Java虚拟机是Java的核心,python的核心是可以很方便地使用C语言函数或C++库;python有很多虚拟机实现,适用于业务语言,或插件语言,或面向领域语言,而Java因为虚拟机巨大,很少用于插件语言,发布也不方便。
适用团队和场景的区别:Java主要用于商业逻辑强的领域,通过类似ssh框架事务代码,对商业数据库支持较好,软件工程理念较强,适合软件工程式的多人开发模式。python主要用于web数据分析、科学计算、金融分析、信号分析、图像算法、数学计算、统计分析、算法建模、服务器运维、自动化操作、快速开发理念强,适合快速开发团队或个人敏捷模式。
python用途最多的是脚本,java用途最多的是web,pyhotn是胶水,可以把各类不相关的东西粘在一起用,java是基佬,可以通过软件工程组成几百个人的团队和你pk,商业化气息重。不过我认为还是python强大,因为可以方便调用c或c++的库,但软件工程和商业化运作没有java好,适合快捷开发。
关于钱。如果你想写程序卖软件用java,可用上ibm服务器,上oracle数据库,上EMC存储,价格高,商业采购公司喜欢这种高大上。如果你要直接用程序生成金钱用python,python可以实现宽客金融,数据回测,炒股,炒期权,炒黄金,炒比特币,对冲套利,统计套利,有很多开源库,数据分析库,机器学习库可以参考。
java和python,都可以运行于linux操作系统,但很多linux可以原生支持python,java需要自行安装。java和python强于c#的原因大于支持linux,支持osx,支持unix,支持arm。java和python比c++受欢迎的原因在于不需要指针。
对于移动互联网,python只能通过运行库运行于安卓或ios,java原生支持安卓开发,但不能用ios中。
对于大数据,hadoop用java开的, spark用Scala开发,用python调用spark再分析更方便。