Java SE也看了不少书,与当时学Python那种从无到有的探索感和逐步建立体系的过程不同,学习Java SE的过程,是将一门编程语言的知识纳入到自己对于编程语言认知体系内的过程。

其实学完Java最大的感受就是面向对象的思想,可以说一切东西都是围绕这个思想来展开,也正是有了严谨的面向对象思想的设计,才使得学习Java API不像Python标准库,每用一个新库都要通读整个文档,而是盯住接口和多态调用。如果要我说,Java API文档就像一本字典一样,可以快速的找到想要的功能,再加上由于静态语言的特点,方法返回什么东西一目了然,可以迅速找到想要的东西然后使用,而第三方库也不过是字典中索引好的内容的实现,完全可以参照字典使用。而Python 标准库就像是一篇篇散文,互相之间关联不大,必须读完一篇才能知道是怎么回事,针对同一个功能的不同的第三方库实现,可能调用方法和路径完全不同,这就让集体协作的沟通成本太高,其实我回头想了一想,Python的学习成本其实也不算低,主要是因为静态语言入门有点难,而Python在入门方面的语法糖太多,造成了入门简单的假象。但其实Python的高级特性,一点也不比其他的语言少,而且还带有一丝混乱的色彩,尤其是面向对象这一片,魔法方法,各种技巧实现封装,回头看看其实是有点不堪入目的感觉。

再回顾一下Java SE的要点:

  • 数据类型
  • 基础语句
  • 类与对象
  • 继承与接口
  • 常用自带数据结构:Collection与Map
  • IO流
  • 异常处理
  • JDBC操作数据库
  • 多线程
  • Socket 网络编程
  • 反射

Java的标准库和接口真的是强大并且完备,让我有一种从Python API调用师变成Java API调用师的错觉。不过面对的内容,复杂程度和体系则完全与Python不一样,到了Web开发这边更是如此,面对的技术栈和复杂程度远超Python的Web框架。

学习Java还有一点最大的好处,就是原来完全看不懂的《设计模式:可复用面向对象软件的基础 》,由于天天面向对象,现在也能够看懂一些啦。

2月开始Java EE,万里征途刚刚开始。