本来是想看完
Effective Java
,看到第五章时,因为不懂泛型,就专门找讲泛型的书籍学习一下。
学习的书籍有
Core Java volume 1, The Java
Programing Language 4th, Java Generics & Collections.(
大家不会以为
我
是书托吧?以上几本应该不需要托吧?再说了偶看的都是英文版的。
)
学习任何一门新技术时,最重要的是学习其基本理论、基本概念。该技术如何使用、为什么这样设计、有什么优势和缺点,都可以从其诞生背景、设计理念、基本概念等推理出来。另外选择的书籍也是非常重要的,应该各个层次的都需要具备一本。
所以我设计的学习路线是
Core Java
-> JPL -> Generics&Collections.
Core Java :
学习泛型初级的使用、概念等
JPL
:看看
Java
之父对泛型有何深入的讲解。
Generic&Collections
是看完上面两本讲解泛型的章节后发现的书,目前看了第一部分的前
7
章。
哇,都看完这么多关于泛型的章节,一定对泛型很熟练了吧?
恩那,我当初也是这么设计的
~--~
可是,可是呢。。。
Core Java :
看完后,我对泛型只有
List<String>
,
T
,等概念,对
wildcard
,
capture of wildcard
,
erasure
等一点都不了解,是我太笨?抑或
core java
不够好?
重复看两遍
Core Java
也没什么用呀?怎么都无法汇在一起
好吧,
哎呀,我承认我比较笨。
JPL
:
java
之父的著作,怀着无比崇敬的心情,仔细的阅读每一行。恩,不错,对
wildcard
,
erasure
,
generic
方法重载等有些理解。当讲到
capture of wildcard
时,又犯晕了。并且该书没有对
T
,?
extends T, ? super T, ?
进行比较。(我一向很聪明的呀,咋那么晕乎呢??、)
Generic&Collections
:
这本书真的不错,讲解知识点时举得例子很好,而且经常和
JDK
里的源码进行对比,分析其优缺点。本书对我在
core java
,
JPL
遇到的难以理解的知识点都一一解答了,并告诉我们何时使用
T
,?
extends T,
? super T, ?
。
为什么要按这个顺序阅读呢?
Core
Java
比较适合初学者,对知识点讲解比较简单,属于入门书籍。
JPL
:主要对知识点要点进行分析,例子较少,如果没有该知识点基础,较难理解。
Generic &
Collections
:这样以专题形式讲解某个知识点的书都比较全面(比如专门讲解IO、网络编程、并发等方面的书籍),而且有深度,并能告诉你使用时的注意事项。
下面是我阅读的方法,也是安慰我的原因(其实我很聪明的
~-_-~
):
1
:我们学习新知识时,一般都很难理解书本上的讲解,遇到反复看也理解不了的,要大胆的跳过。因为有时候后面的知识点能有效的帮助理解前面的知识点。(我不算笨吧,看不懂就跳过,跳过不是因为我理解能力差嘛)
2
:为什么选择多本书?对于某一知识点,不同的作者讲解的方式肯定会不一样,总有一种最适合你的,或者
多种方式的结合才能让你较为彻底的去理解。(这几本书的方式我都不是感冒嘛,其实我不笨的)
3
:书要反复看,不仅一本要反复,看完多本后要重头一本一本的反复看,这样一来对知识点的理解更加巩固。
二来
检查是否漏到了哪些概念或知识。一定要坚持这点!!!
4
:我看的是英文版的嘛,当然慢啦。呵呵,推荐大家尽量看英文版,国内的书、译书可真不敢恭维。最近的
XX
疯狂
Java
事件可以反应出来吧
~
!!
再举个例子,
Design Pattern explained
《设计模式解析》中翻译的语句很不通顺,而且有的词很诡异。比如
“
隐错
”
把我郁闷了
n
天,最后怒了去对照英文版,才发现
“
隐错
”
就是
“Bug”
的意思。
目前自认为对
generic
概念理解得还行,明后天在博客里用自己话将
自己认为重要的知识点、概念描述一番,望各位路过的牛哥牛姐有时间就丢个有意义的鸡蛋
~~~~
小
P
孩在此谢过
~~~
分享到:
相关推荐
在Java编程语言中,泛型(Generic)是一个强大的特性,它允许我们在编译时检查类型安全,并且可以消除运行时的类型转换。泛型引入的主要目的是提高代码的重用性、安全性和效率,同时减少类型转换的繁琐工作。这篇...
如果你熟悉其他语言如C++中的模板(Templates),你会发现Java中的泛型与之有着相似之处但也存在重要差异。对于不熟悉类似概念的新手来说,这是一个从零开始学习的好机会,可以避免被其他语言的概念误导。 #### ...
在学习JAVA的过程中,应当从基础知识开始,逐步加深理解,并通过实践和思考来掌握所学的知识。马士兵的视频教程用生动的例子和实用的代码片段,帮助学习者将理论与实践相结合。 在教学方法方面,提出了“三片面包加...
示例描述:本章学习Java的输入和输出。 CopyFile.java 文件复制实例 dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例...
Java编程语言是面向对象的编程语言,学习Java的过程中掌握一些核心的英语单词是十分必要的,因为许多编程概念和关键字都是英文原词。以下是一些重要的Java相关英语词汇及其详细解释: 1. **abstract** - 抽象:在...
这个由霍顿(Ivor Horton)编写的资料包含完整的Java 7源代码,是学习Java 7的理想资源。以下是这个资料中可能涵盖的一些关键知识点: 1. **自动资源管理(try-with-resources)** Java 7引入了try-with-resources...
Java Bluetooth API.pdf文档可能包含了这些概念的详细解释、示例代码以及API参考,是学习和开发蓝牙应用的重要资源。建议仔细阅读该文档,结合实践来提升蓝牙编程能力。通过熟练掌握Java蓝牙API,你可以开发出各种...
在Java编程中,连接到微软数据库,如...总的来说,这个"java链接微软数据库包"是Java开发者,尤其是初学者连接SQL Server数据库的必备工具,通过它,他们可以学习和实践JDBC技术,进而实现Java程序与数据库的高效交互。
Java虚拟机(JVM)是Java程序运行的核心组件,它为Java代码提供了跨平台的运行环境。Java SE 7(Java Standard ...这份文档是Java开发者必备的学习资料,无论你是初学者还是经验丰富的程序员,都能从中受益匪浅。
### Java基础学习词汇详解 #### Abstract (抽象) 在Java中,`abstract`是一个关键字,用于定义抽象类或抽象方法。抽象类是不能被实例化的类,通常用来作为其他类的基础框架,提供了一些基本功能实现的同时,也定义...
### 学习Java时自己整理的知识点_3 在Java的学习过程中,经常会遇到一些容易混淆的概念,例如方法重载(overload)与方法重写(override),以及如何正确使用`super`关键字等。下面将对这些概念进行详细的解析,...
通过深入学习和理解Java 1.7英文API,开发者可以更高效地编写代码,充分利用Java 7的新特性,并提升自己的编程能力。同时,阅读英文API也有助于跟踪最新的技术发展,为未来接触更高级的Java版本做好准备。
Java泛型是Java编程语言中的一个特性,它允许在定义类、接口和方法时使用类型参数,从而增强了代码的重用性、安全性和效率。在Java中,泛型的引入是为了提供编译时类型安全检查,并减少在运行时进行类型转换的需要。...
Java版的IEC61850实例则为开发者提供了一个实践该标准的平台,尤其对于客户端和服务端的MMS(Manufacturing Message Service,制造报文规范)映射的实现,具有很高的学习价值。 **一、IEC61850基础** 1. **数据...
- 不同操作系统的用户在安装过程中将经历相似的步骤,降低了学习成本。 - 对于系统管理员来说,这种一致性有助于提高部署效率。 3. **便于分发与共享:** - 只需一个安装包即可满足所有用户的需要,便于通过电子...
10. **Type inference for generic instance creation**:Java8改进了类型推断,使得创建泛型实例更加简洁,如`List<String> list = new ArrayList();` 以上就是Java8的一些主要新特性,它们不仅增强了Java的表达力...
JAVA还提供了泛型(Generic)来增强集合的安全性,避免类型转换异常。同时,接口如List、Set和Map定义了集合的基本操作,而Collections类提供了对集合的静态方法,如排序、填充和搜索等。此外,JAVA的并发集合如...
根据给定文件的信息来看,这段文字与IT行业和Java编程技术并不相关,而是关于王小波及其作品...通过这些练习和学习,可以帮助初学者快速掌握Java编程的基础知识和高级特性,为进一步深入学习Java开发打下坚实的基础。