Java语言诞生于1995年,由当时就职于Sun公司的詹姆斯·高斯林(Java之父)编写出Java的雏形。Java结合了C++的优点,并摒弃了C++难以理解的指针与多继承概念。
1996年1月,Sun公司发布了Java第一个开发工具包(JDK1.0)
1999年6月,第二代Java平台Java2发布了三个版本,J2ME,J2SE,J2EE,Java2平台的诞生,是Java发展中最重要的一个里程碑。标志着Java的应用开始普及。
2004年9月30号,J2SE1.5发布,成为Java语言发展史上的另一里程碑,为了表示该版本的重要性,J2SE1.5更改为Java SE 5.0,5.0包括了从1.0发布之后的最重大的更新,其中包括泛型支持,基本类型的自动装箱,改进的循环(for each),枚举,格式化IO,注解及可变参数。
2014年,Java8发布,Java语言与时俱进,在Java8中使用了函数式编程。
Python语言由荷兰人吉多·范罗苏姆于1990年代初设计,Python语言是一个解释性脚本语言,简单易学,应用面广。有丰富的代码库,可以帮助你解决任何问题。
1991年,Python的第一个解释器诞生了
2000年10月,Python2.0发布了。
2008年12月,Python3.0发布了,Python3.x不向后兼容Python2.x。Python3代表了Python的未来。
1.Java语言的所有的逻辑都包含在一个类中
2.Java语言用大括号{}来划分程序的各个部分(通常称为块)
3.在Java中,每个句子必须用分号结束。
1.Python语言强调缩进,忘记缩进会导致错误
2.换行代表Python中的一行的结束
3.Python中没有大括号来划分程序,因为python是逐行解释执行代码,Python中的分块通过换行,或定义函数或类来实现
Java有8种基本类型,包括整型(byte、short、int、long)、浮点型(float、double)、布尔型(boolean)、字符型(char)
Java是强类型静态语言。
Python提供字符串、整型、浮点型三种基本类型,在Python中不需要进行变量类型声明,Python的类型是运行时动态确定的。
Python为强类型动态语言。
Java在1.0时提供了java.util.Date类,在1.1之后又推出了Calendar,在Java8之后,Java对日期进行了一次全新的改动,提供了java.time API来操作日期与时间。
Python提供了一个time与calendar模块用于格式化日期和时间。time模块提供了很多函数来进行时间处理及转换时间格式,calendar提供的函数可以用于操作日历。
总结:Java与Python都有时区的概念,在Java中通过ZoneDateTime等一些时区相关操作类让你方便的进行时区时间的处理。在Python中通过time模块中的函数来进行处理时区。
Java有多种可以操作数据集合的数据结构,比如数组,Collection的子孙类List、Set、Queue,Map的子孙类HashMap、TreeMap等
Python有列表、元组、字典等数据结构来存储及操作数据集合。列表=['111','222'],元组=('111','222'),字典={'key':'111','value':'222'}
对比:Python中的字典结构就是一个json对象,在Java中可以用Map来存储相同的数据格式。Python中的列表类型相当于Java中的数组。Python中的元组是特有的一种集合类型,它提供一种不可变的列表。
Java通过条件语句(if/else-if/else)与循环结构(for、while、do/while)确定控制流程。在处理多个选项时,还可通过switch语句来进行控制。在循环结构中可以通过break、continue 、goto(不推荐使用)来中断控制流程。如果想跳出多重嵌套循环,可以使用带标签的break语句。
Python通过条件语句(if/elif/else)与循环结构(for、while)确定控制流程,在循环结构中可以通过break、continue来中断控制流程
1.Java中通过类来描述现实世界中一类事物的抽象,类的实例(对象)作为某个具体的事物而表现。类中的函数作为定义事物的行为。
2.Java中存在内部类的概念,每一个外部类对象都有一个内部类实例。
3.Java中通过继承来让子类共享一些属性与行为
4.Java通过实现接口来达到多继承
Python中有类与对象,也有继承。Python中的函数不仅可以定义在类中,也可以直接写在模块(一个Python文件就是一个模块)中,所以Python即是面向对象语言,也是面向过程语言。
Java中通过java.io.*中的相关类来进行输入输出操作,在Java中,IO流分为字节流与字符流,字节流以InputStream与OutputStream为代表,字符流以Reader与Writer为代表。
Python中通过提供简单的api操作文件,通过以下代码即可将一个文件的内容取出,相较于Java复杂的类组织结构、异常与资源处理来说,Python读取文件与写入文件操作简单。还可通过引入基础json模块,来操作数据。json模块能保证你存入的数据与取出的数据格式一致。
# 读取文件 with open(文件路径) as file_obj: contents = file_obj.read() # 写入文件 with open(文件路径, ‘w’) as file_obj: file_obj.write('写入数据到文件') # 通过json操作 import json with open(文件路径,‘w’) as file_obj: # 写入数据,读数据通过json.load json.dump(数据,file_obj)
Java通过try-catch-finally结构进行异常处理,try块中包含可能发生异常的代码,catch中包含发生异常后需要执行的代码,需要检测多个异常,则有多个catch块,finally块是最终可能要执行的代码,一般在此块中放置关闭资源,释放连接等代码。
Python通过try-except-else结构处理异常,try块中包含可能发生异常的代码,except中包含发生异常后需要执行的代码,需要检测多个异常,则有多个except块,else块是在try块中执行成功后才执行的代码。