思想

面向对象

  • python的产生几十年了,几十年前面向过程是主流,所以用python有好多程序用的是面向过程设计方法,很多概念从c语言过来的,class在python中是后加入的,在大家提到Python的时候都会很自然的想到它的方便快捷,其实一方面是环境(linux内嵌)然后就是它可以按照面向过程的方式来编程,在写一个简单的爬虫程序的时候大家估计都不会去定义一个类,所以Python是对面向过程的支持
  • Java在1991年推出JDK1.0的时候的虚拟机叫Sun Class JVM,也就是从他构建完成被正式发布的时候就已经是面向对象了,Java里有一句话叫万事万物皆对象,放到一个最基本的语法上说就是,不管你要做什么你都需要一个对象,所有的方法的调用必须是依赖于一个对象的实例的,不能像Python或者c那样打开文本写一个function然后在后面直接使用方法名调用。

语言类型:

机器是不能直接理解高级语言的,需要一个翻译的过程

  • 编译型语言:Java有一个编译器来将开发者的代码编译为.class文件,然后JVM(Java虚拟机)只能加载.class文件,JVM又是用了解释的方式来执行了这个.class文件,所以Java其实也不算是纯粹的编译型语言,纯粹的编译型语言在完成一次编译后以后都是可以直接运行的
  • 解释型语言:在运行的时候才逐句的去翻译为机器语言,需要一个对应的解释器,每次运行都需要编译,所以效率通常就要低一些,Python通过在运行时生产字节码文件.pyc来改善性能,更多关于.pyc的机制

快捷轻巧

基础语法

数据类型

  • java
    • 基础数据类型:byte、char、short、int、long、float、double、boolean
    • 其他:String、list、set、map
  • Python
    • Numbers:int、long、float、complex
    • String:
    • List:动态数组实现的,也就是说内存是连续的
    • Tuple:静态数组
    • Dictionary:

运算法则

数据结构

内存模型

垃圾回收

框架对比

  • 搭建难度、成型框架(数量、功能)
  • 稳定性、运行速度