JDK必须知道技术

所有的java框架都是来至于JDK中的扩展。只是做扩大化当你接触框架是觉得很神奇其实jdk中就早就已经存在。


第一级别:精读源码

[java]  view plain  copy
  1. java.io  
  2. java.lang  
  3. java.util  

      这些源码还是需要看一遍,因为经常性的用到,方便开发时候只有有这样的工具才会提高开发效率,比起百度来的更准确和实用性。 

 精读源码,这是要求最高的级别。但是,要求你精读源码并不意味着,这些类就是最重要的。 

  看这些源码的目的,更多是为了增加你的阅读代码能力。像Exception和Error这一类的,就不用读源码了

  基本上都是你最常用的了。lang包不用说了,你随便写点啥都得用到,io包和util包也是你平时读写文件和使用数据结构必不可少的。

  

  第二级别:深刻理解

[java]  view plain  copy
  1. java.lang.reflect  
  2. java.net  
  3. javax.net.*  
  4. java.nio.*  
  5. java.util.concurrent.*  

  深刻理解,这个看似比精读源码要求低的级别,其实恰恰是最重要的。这个级别要求的类,全都是一些进阶到高级所必须了解的。

  看了没用。而是这些类的源码往往非常复杂,要了解清楚细节花费的时间是非常多的,因此,花费巨量的时间去研究这么复杂的代码其实没必要的。

  不过,如果你在使用这些类的过程中,遇到了问题,果断看看源码解决你的问题吧,这是最适合的看源码的契机了。

  遇到了问题不要百度和谷歌,看源码能解决你90%的问题。

  此外,看到这四个包的名字,不难看出它们各自代表了什么。reflect代表了反射,net代表了网络IO,nio代表了非阻塞io,concurrent代表了并发。

  这四个家伙可以说每一个都够面试官问上半天的,而且,这四个包的内容,如果你要深刻理解的话,其实还牵扯了很多其它的知识。

  举个例子,反射你要了解清楚的话,你是不是要搞明白JVM的类加载机制?网络IO要搞清楚的话,你是不是要清楚TCP/IP和HTTP、HTTPS?包括并发包,如果你要搞清楚的话,是不是要了解并发的相关知识?

  因此,这四个包要彻底搞清楚,还是需要花费一定时间和精力的。

  这四个包用的好不好,基本决定了一个Java程序员所处的档次。

  

  第三级别:会用即可

[java]  view plain  copy
  1. java.lang.annotation  
  2. javax.annotation.*  
  3. java.lang.ref  
  4. java.math  
  5. java.rmi.*  
  6. javax.rmi.*  
  7. java.security.*  
  8. javax.security.*  
  9. java.sql  
  10. javax.sql.*  
  11. javax.transaction.*  
  12. java.text  
  13. javax.xml.*  
  14. org.w3c.dom.*  
  15. org.xml.sax.*  
  16. javax.crypto.*  
  17. javax.imageio.*  
  18. javax.jws.*  
  19. java.util.jar  
  20. java.util.logging  
  21. java.util.prefs  
  22. java.util.regex  
  23. java.util.zip  

  会用即可,这个级别的要求很显然了,就是会用就可以了。这些包大部分都是在特定的情况下会用到,但却不会时刻用到。

  就像sql包和transaction包,就是操作数据库时用到的。而xml、dom和sax这些,都是操作xml时用到的。其它的包也都是类似的,有使用注解时用的,有远程方法调用时用的,也有涉及到加密时用到的等等。

  这些包在面试时一般不会问到,所以它们的重要性自然要低很多,而且也不太需要刻意的去学,用到了研究一下,会用即可。

猜你喜欢

转载自blog.csdn.net/xqqcsdn/article/details/80435846
今日推荐