今天了解了一下Java四大名著之一的《Effective Java》,读了一下作者Joshua Bloch的序言颇有感触。下面引用一下作者经典原文:
“如果曾经学习过第二种语言,并尝试在课堂之外使用这种语言,那么你该知道有三件事情是必须要掌握的:这门语言的结构如何(语法).如何命名你想谈论的事物(词汇),以及如何用习惯和高效的方式来表达事情(用法).在课堂上通常只是涉及到前面两点,而当你努力使对方明白你的意思的时候,你常常会发现当地人对你的表述忍俊不禁.对于程序设计语言,也是如此”
“你需要理解语言的核心:它是面向算法的,还是面向函数的,或者是面向对象的?你需要知道词汇表:标准库提供了哪些数据结构.操作和功能设施?你还需要熟悉如何用习惯和高效的方式来构建代码........语法和词汇是语言本身固有的特性,但是用法则反映了使用这门语言的群体的特征."
"例如
1.Java程序设计语言是一门只支持单继承的面向对象程序设计语言,在每一个方法内部,它也支持命令方式的(面向语句的,statement-oriented)编码风格.
2.Java库包括对图形显示.网络.分布式计算和安全性的支持.
3.如何把这门语言以最佳的方式用到实践中呢?仅仅编写出能够有效地工作并且能够被别人理解的代码往往是不够的,我们还必须要把代码组织成易于修改的形式.针对一个任务我们可能会有10种不同的编码方法,而在这10种方法中,有7种方法是笨拙的.低效的或者是难以理解的.而在剩下的3种编码方法中,哪一种会最接近该任务的下一年度版本的代码呢?"
我在学习过多门语言后,深深的感触了,我们在学习一门语言的时候,首先要了解这门语言的核心,这门语言主要的用途是什么,是用于做科学研究、图形界面、分布式系统、企业信息管理系统、操作系统,还是嵌入式系统?然后了解这门语言,对面向对应用的具体支持,它提供的类库是否能快捷、方便的开发出,有效率,安全性高,稳定性强,扩展性强的程序。