JDK重要包和Java学习方法论
以下内容摘自:万能的林萧说:一篇文章教会你,如何做到简历中要求的“要有扎实的Java基础”
第一级别:精读源码
该级别包含的包如下:
java.io java.lang java.util
第二级别:深刻理解
该级别包含的包如下:
java.lang.reflect java.net javax.net.* java.nio.* java.util.concurrent.*
第三级别:会用即可
该级别包含的包如下:
java.lang.annotation javax.annotation.* java.lang.ref java.math java.rmi.* javax.rmi.* java.security.* javax.security.* java.sql javax.sql.* javax.transaction.* java.text javax.xml.* org.w3c.dom.* org.xml.sax.* javax.crypto.* javax.imageio.* javax.jws.* java.util.jar java.util.logging java.util.prefs java.util.regex java.util.zip
比较实用的几个工具主要有jmap、jconsole、jstack、jvisualvm
JVM才是你Java根基的根本
详细参见:http://www.cnblogs.com/zuoxiaolong/p/life54.html
以下内容摘自:对于Java程序猿学习当中各个阶段的建议
加分项:
1、计算机系统原理。
2、网络通信协议(TCP/IP,HTTP等)。
3、数据结构与算法。
4、著名开源项目的源码。
5、你自己有很棒的开源项目。
6、你的个人博客。
阶段:
一、Java基础
二、Web开发
三、开发框架
《Java编程思想》
《大话设计模式》,《重构 改善既有代码的设计》,《effective java》(优雅的代码)
《深入理解Java虚拟机》,《Java并发编程实战》(Java底层和Java类库)
《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》(多样化)
Github 好的项目 (影响力)
以下内容摘自:技术的正宗和野路子
-
Tutorial(入门教程)。由该项技术的官网提供。通常是英文的。这份资料是给初次接触该项技术的人看的,一般是一步一步地教你完成某些例子。当我们说某项技术对于新手不太友好的时候,一般也是因为这项技术的Tutorial部分做得不够好。
-
Specification,简称Spec。这是集中体现该项技术的设计思想的东西,是高度抽象的描述。这个一般也是一份完备的、系统的描述,包含该项技术涉及到的方方面面。这部分资料在不同的地方叫法不同,在相对简单的技术项目中,也可能没有;在另一些情况下,这部分资料混杂在其它文档资料之中;它还可能以论文(paper)的形式出现。
-
API Reference。大而全的API索引和文档,针对不同的语言接口可能提供多份。当我们使用这项技术进行编程的时候,API Reference自然是个离不开的、总是要不停去查询的一份资料。
-
别人写的技术博客。质量良莠不齐,到底有没有价值,我们要学会去分辨。
-
技术书籍。跟技术博客类似,质量有好有坏。稍后我们和技术博客放在一起来分析。
-
Source Code。如果我们要学习的技术是开源的,那么很幸运,我们能得到源代码。这是一份终极资料。
对于那些最核心的技术,我们应该做到:
-
通读Spec。读完就不再困惑。
-
重要部分的API Reference要通读。里面包含了很多跟实现有关的信息。
-
如果工作需要,还可能需要读到Source Code。特别是对于平常一直在使用的SDK,不一定从头到尾把源码读通,这样工作量太大且效率不高,但一定要把你的开发环境设置成一点击某个调用的方法就能跳转进源码实现。只有这样,你才能把平常开发的时间利用起来,随时随刻都点过去看源码。