zoukankan      html  css  js  c++  java
  • Java深入学习计划

    *

    参考地址:如何做到招聘要求中的「要有扎实的 Java 基础」

    下面皆为从此文中摘录而来

    一:java基础类库

    第一级别:精读源码 

    该级别包含的包如下: 

    java.io

    java.lang

    java.util

    第二级别:深刻理解 

    该级别包含的包如下: 

    java.lang.reflect

    java.net

    javax.net.*

    java.nio.*

    java.util.concurrent.*

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

     当然了,这里要强调一点的是,LZ说这些类要深刻理解,而没说要看它们源码,并不是说这些类的源码不能看,或者看了没用。而是这些类的源码往往非常复杂,要了解清楚细节花费的时间是非常多的,因此,花费巨量的时间去研究这么复杂的代码其实没必要的。 

    不过,如果你在使用这些类的过程中,遇到了问题,这个时候如果看它们源码可以解决的话,那就不要再矜持了,果断看看源码解决你的问题吧,这是最适合的看源码的契机了。

     小小的透露一下,LZ看过的JDK源码,基本上全是这么看过来的。遇到了问题不要百度和谷歌,看源码能解决你90%的问题。

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

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

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

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

    但是,请相信LZ,这绝对是值得的,甚至可以说,这四个包用的够不够叼,基本决定了一个Java程序员所处的档次。

    第三级别:会用即可 

    该级别包含的包如下: 

    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

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

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

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

    第四级别:请无视它 

    该级别包含了所有以上没有提到的包。

    二:Java的开发工具

    这些开发工具主要就是辅助你开发的了,javac应该是最常用的一个了,虽然你几乎不用手动执行它。 

    此外,其实还有一些比较实用的工具,可以帮助你排查问题。而且有的面试官,也会问你这类问题,比如问你平时都用什么工具排查问题。 

    LZ觉得比较实用的几个工具主要有jmap、jconsole、jstack、jvisualvm,至于这几个工具有什么作用,LZ这里就不提了,如果你要了解这些命令的详细内容,可以去谷歌或者官网上找,还是非常好找的。 

    当然,如果你有兴趣的话,也可以自己去JDK的bin目录下找找,看有没有什么更好玩的工具。

    小结 

    好了 

    总的来说,第一级别和第二级别是最重要的。 

    更简单的说,可以把第一级别的那些包称作基础,第二级别的那些包称为进阶。至于第三级别和第四级别的那些包,就没什么可说的了。 

    当然了,最重要的还是那万年不变的JVM,请记住了,JVM才是你Java根基的根本,就是再牛逼的类,没了JVM它也就是一个无用的class文件而已。 

    如果你想拥有扎实的Java基础,那就抓紧玩好JDK吧

    *

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    MySQL: Speed of INSERT Statements
    ImportError: No module named argparse
    How To Use Coordinates To Extract Sequences In Fasta File
    30分钟掌握Dart语言
    Could not find com.android.tools.build:aapt2:3.2.0-alpha14-4748712.
    完美解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    iOS 可变字符串NSMutableString的使用
    NSMutableString和NSString区别,及相互转换方法
    iOS学习-字符串的删除替换
    Android 常用正则表达式
  • 原文地址:https://www.cnblogs.com/qingmaple/p/6076296.html
Copyright © 2011-2022 走看看