目前 Java 可以说是产业界和学术界最热门的语言,许多读者都很急切想把 Java 学好。除非像电影「骇课任务」(Matrix)一样能够把需要的专业技巧下载到脑海(女主角只花了几秒下载资料,就马上具备飞行员的技巧),或是武侠小说中的运功传送内力的方式,否则花上一段时间苦学是免不了的。花时间,不打紧,就怕方法错误,事倍功半。我认为,学习 Java 包括了下列的范畴: * 认识 Java 的原理 * 学会 Java 语言 * 物件导向的思维 * API * 开发工具的用法 下面分别就这几点详细阐述。 学习 Java 的原理 了解 Java 的原理,才有可能真正体会 Java 的一切,学习任何事情,只要能掌握原理,就会比较顺利。我发现许多人使用 Java 已经逾年,却连 Java 最基本的特质都不清楚。 一般来说,资讯系毕业的学生,对於资讯的新事物学习的速度,会比其他科系来得快,就是因为四年的教育为他们奠定了学习新事物的基础,这也是资讯系课程的价值所在。 除非你受过的基础训练够扎实,否则在学习或使用 Java 的过程中,你一定会需要参考到这些资讯系学科的知识。我建议各位可以在闲暇之余,把资讯系课本的书拿来读一读。这是治本之道,绝非立竿见影的特效药,必须要有耐心。 学习 Java 语言 学习 Java 语言很简单,毕竟 Java 语言也只包含五十多个关键字(keyword)与几十个算符(operator),再加上 Java 语法(syntax)也很简单,所以一般人可以很快就学会 Java 语言。危险的是,很多人认为已经完全掌控 Java 语言,但其实对於内部的运作机制仍不能掌握,这些盲点有时候会让你无法完全掌控 Java 语言。克服这些盲点的方式是看「The Java Language Specification, 2nd Ed.」(没有中文版)来彻底弄懂 Java 程式语言,并看「Inside the Java Virtual Machine, 2nd Ed.」(有中文版,但翻译得@#%$)来彻底掌握 Java 虚拟机器的运作方式。 学习物件导向的思维 学会了语言,并不代表就可以设计出好的物件导向系统架构。想要成为物件导向的专家,往往需要: * 多看相关的书,特别是 Design Pattern 和 Refactoring 的书。 * 多观摩别人的程式(例如 Java A