来历

  

  本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来。

  一日,LZ在群里发话,“招人啦。”

  然某群友曰,“群主,俺想去。”

  LZ回之,“你年几何?”

  群友曰,“两年也。”

  LZ憾言之,“惜了,三至五为佳。然如汝有扎实之基础,且附一技之长,倒也并非不可呀。”

  群友惑,问之,“何为一技之长?”

  LZ抚须答曰,“皆可,吾之一技即为写。”

  群友又问之,“何为基础扎实?”

  LZ抚**答曰,“玩好JDK!”

  

引言

  

  好了,LZ终于特么可以说人话了,请原谅LZ的文言文不好,这逼装的好累。其实很多人对于公司的招聘要求中写的,要有“扎实的Java基础”,都很迷茫。

  这特么到底啥意思?什么东西算作Java基础?学到什么程度才算扎实?

  这些问题的答案,LZ已经用文言文告诉你了,咳咳,答案就是玩好JDK就可以了。

  不过JDK这东西包含的东西实在太多,群里的猿友还是拎不清到底应该学哪个,所以,LZ就专门写一篇文章,来讲一讲JDK应该怎么玩。

  或许有的猿友会问,“林萧是谁?”

  恩,问得好!林萧就是某程序员小说的主角啦,传言无所不知,看看你就知道咯。

  

玩好JDK

  

  在详细讲解JDK之前,LZ首先要强调下,本文的内容,都是LZ个人的主观判断。因此,各位猿友务必结合自己的判断之后,再决定是否要学习,以及学习到什么程度。

  此外,本文只是告诉你学什么,学到什么程度,本文不会包含太多具体的技术细节讲解。

  JDK其实就是Java SE Development Kit的缩写,要玩好这东西可不简单。JDK主要包含了三部分,第一部分就是Java运行时环境,这其实就是JVM。此外,第二部分就是Java的基础类库,这个类库的数量还是非常可观的。最后,第三部分就是Java的开发工具,它们都是辅助你更好的使用Java的利器。

  那么很显然,要玩好JDK,就是要玩好JDK的这三部分。接下来,咱们就逐个的来说一下,每一个部分要学什么,学到什么程度。

 

  第一部分:Java运行时环境

  这一部分其实就是常说的jre,而它的核心其实就一个东西,就是JVM。

  JVM这个东西,它的重要性LZ不想再强调了,在之前的那篇《回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议》中,LZ就说过,JVM那本书甚至比《Thinking in java》还重要,这已经足见LZ多么看重JVM了。

  当然了,只是LZ看重,当然没什么卵用,但只要Java稍微高级一点点的职位,这部分基本上都是面试必问内容,这更加说明了JVM的重要性。

  所以,对于JVM,没什么可说的,就是往死里学,往死里研究,能有多深就多深!

 

  第二部分:Java的基础类库

  Java的基础类库从你刚开始学Java就开始接触了,但是,直到你结束整个Java生涯,你都不一定能把所有的类都见一遍。

  这说明了什么?是不是说明了Java基础类库的庞大?

  错!大错特错!这其实真正说明的是,有很多类你完全不必要care它们,因为它们从你接触Java到放弃,都不一定能接触到。

  所以,搞清楚哪些类重要,哪些类不重要,就非常有必要了。这可以让你以最短的时间,做最有价值的事。

  首先我们来看看,Java基础类库的包都有哪些,为了使得本文更有代表性,我们取JDK6的包列表。

java.applet 
java.awt 
java.awt.color 
java.awt.datatransfer 
java.awt.dnd 
java.awt.event 
java.awt.font 
java.awt.geom 
java.awt.im 
java.awt.im.spi 
java.awt.image 
java.awt.image.renderable 
java.awt.print 
java.beans 
java.beans.beancontext 
java.io 
java.lang 
java.lang.annotation 
java.lang.instrument 
java.lang.management 
java.lang.ref 
java.lang.reflect 
java.math 
java.net 
java.nio 
java.nio.channels 
java.nio.channels.spi 
java.nio.charset 
java.nio.charset.spi 
java.rmi 
java.rmi.activation 
java.rmi.dgc 
java.rmi.registry 
java.rmi.server 
java.security 
java.security.acl 
java.security.cert 
java.security.interfaces 
java.security.spec 
java.sql 
java.text 
java.text.spi 
java.util 
java.util.concurrent 
java.util.concurrent.atomic 
java.util.concurrent.locks 
java.util.jar 
java.util.logging 
java.util.prefs 
java.util.regex 
java.util.spi 
java.util.zip 
javax.accessibility 
javax.activation 
javax.activity 
javax.annotation 
javax.annotation.processing 
javax.crypto 
javax.crypto.interfaces 
javax.crypto.spec 
javax.imageio 
javax.imageio.event 
javax.imageio.metadata 
javax.imageio.plugins.bmp 
javax.imageio.plugins.jpeg 
javax.imageio.spi 
javax.imageio.stream 
javax.jws 
javax.jws.soap 
javax.lang.model 
javax.lang.model.element 
javax.lang.model.type 
javax.lang.model.util 
javax.management 
javax.management.loading 
javax.management.modelmbean 
javax.management.monitor 
javax.management.openmbean 
javax.management.relation 
javax.management.remote 
javax.management.remote.rmi 
javax.management.timer 
javax.naming 
javax.naming.directory 
javax.naming.event 
javax.naming.ldap 
javax.naming.spi 
javax.net 
javax.net.ssl 
javax.print 
javax.print.attribute 
javax.print.attribute.standard 
javax.print.event 
javax.rmi 
javax.rmi.CORBA 
javax.rmi.ssl 
javax.script 
javax.security.auth 
javax.security.auth.callback 
javax.security.auth.kerberos 
javax.security.auth.login 
javax.security.auth.spi 
javax.security.auth.x500 
javax.security.cert 
javax.security.sasl 
javax.sound.midi 
javax.sound.midi.spi 
javax.sound.sampled 
javax.sound.sampled.spi 
javax.sql 
javax.sql.rowset 
javax.sql.rowset.serial 
javax.sql.rowset.spi 
javax.swing 
javax.swing.border 
javax.swing.colorchooser 
javax.swing.event 
javax.swing.filechooser 
javax.swing.plaf 
javax.swing.plaf.basic 
javax.swing.plaf.metal 
javax.swing.plaf.multi 
javax.swing.plaf.synth 
javax.swing.table 
javax.swing.text 
javax.swing.text.html 
javax.swing.text.html.parser 
javax.swing.text.rtf 
javax.swing.tree 
javax.swing.undo 
javax.tools 
javax.transaction 
javax.transaction.xa 
javax.xml 
javax.xml.bind 
javax.xml.bind.annotation 
javax.xml.bind.annotation.adapters 
javax.xml.bind.attachment 
javax.xml.bind.helpers 
javax.xml.bind.util 
javax.xml.crypto 
javax.xml.crypto.dom 
javax.xml.crypto.dsig 
javax.xml.crypto.dsig.dom 
javax.xml.crypto.dsig.keyinfo 
javax.xml.crypto.dsig.spec 
javax.xml.datatype 
javax.xml.namespace 
javax.xml.parsers 
javax.xml.soap 
javax.xml.stream 
javax.xml.stream.events 
javax.xml.stream.util 
javax.xml.transform 
javax.xml.transform.dom 
javax.xml.transform.sax 
javax.xml.transform.stax 
javax.xml.transform.stream 
javax.xml.validation 
javax.xml.ws 
javax.xml.ws.handler 
javax.xml.ws.handler.soap 
javax.xml.ws.http 
javax.xml.ws.soap 
javax.xml.ws.spi 
javax.xml.ws.wsaddressing 
javax.xml.xpath 
org.ietf.jgss 
org.omg.CORBA 
org.omg.CORBA_2_3 
org.omg.CORBA_2_3.portable 
org.omg.CORBA.DynAnyPackage 
org.omg.CORBA.ORBPackage 
org.omg.CORBA.portable 
org.omg.CORBA.TypeCodePackage 
org.omg.CosNaming 
org.omg.CosNaming.NamingContextExtPackage 
org.omg.CosNaming.NamingContextPackage 
org.omg.Dynamic 
org.omg.DynamicAny 
org.omg.DynamicAny.DynAnyFactoryPackage 
org.omg.DynamicAny.DynAnyPackage 
org.omg.IOP 
org.omg.IOP.CodecFactoryPackage 
org.omg.IOP.CodecPackage 
org.omg.Messaging 
org.omg.PortableInterceptor 
org.omg.PortableInterceptor.ORBInitInfoPackage 
org.omg.PortableServer 
org.omg.PortableServer.CurrentPackage 
org.omg.PortableServer.POAManagerPackage 
org.omg.PortableServer.POAPackage 
org.omg.PortableServer.portable 
org.omg.PortableServer.ServantLocatorPackage 
org.omg.SendingContext 
org.omg.stub.java.rmi 
org.w3c.dom 
org.w3c.dom.bootstrap 
org.w3c.dom.events 
org.w3c.dom.ls 
org.xml.sax 
org.xml.sax.ext 
org.xml.sax.helpers
View Code

相关文章:

  • 2021-12-27
  • 2021-08-05
  • 2021-12-03
  • 2021-11-27
  • 2021-07-05
  • 2021-04-05
  • 2021-06-01
猜你喜欢
  • 2021-10-01
  • 2021-12-27
  • 2022-02-28
  • 2021-06-25
  • 2021-07-15
  • 2021-06-02
  • 2022-01-28
相关资源
相似解决方案