JDK是学习java的第一步。自然需要非常的了解。众所周知,java运行在jvm之上。稍微研究过之后发现,发现其实jvm只是一种规范,也就是一个概念一个抽象而已(初学的时候总是会被这些概念搞混...),而jdk才是一个实现,一个可真正发挥作用的东东,当然jdk还包含jvm之外的东西,还有一些工具嘛。jvm的实现应该就是jre吧(可以这么理解吗?)。而jdk其实是分好几种的,有sum的jdk,ibm的jdk,bea的jdk等等。当然,每种实现的效率是不一样的,据说ibm的jdk效率高?一般用的也就是sum的jdk吧。
JDK 是整个Java的核心,包括了
1 Java运行环境(jre):广义上说jre是jdk的一部分,尽管其实两者意思有出入,是分开的
2 Java工具:包括java/javac/jar/javadoc/javah/jdb/javap/javap/jconsole等,最常用的是前四个
3 Java基础的类库,也就是其api了
按照jdk1.6的api文档,jdk的包有如下这些:
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.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
一共是202个包,其中所有的类和接口自然是更多了,加起来共有3777个,多么的吓人啊(当然不同版本jdk数量稍有不同)!如果要了解清楚jdk的所有内容,就是说一个个的都要去了解清楚,那话的功夫可大了!
一般来说我们只需要了解
java.lang
java.io
java.util
java.sql
java.nio
java.text
java.Math
java.net
java.security
javax,naming
org.w3c.dom
等等,这些常用的即可。不过其他的也不是说就可以忽略。要学java得深的话,其他的包和类还是得了解一些的。下面说说我对jdk整个api的总体认识:
java.applet和java.awt(及其拓展java.awt.xxx) 即AWT(Abstract Windowing Toolkit) 平台独立的窗口系统,用的少,略去。
java.beans——包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件(还是官方的说明精准,想来想去干脆就直接引用它的说明了)其实少用,有时候用了也不经意。其中PropertyEditor很有用,如在struts中,其余的如Beans啊,Expression啊EventHandler啊等等很有用
java.io——通过数据流、序列化和文件系统提供系统输入和输出,这个是重点。凡是各种文件和流的操作基本上离不开它。
——菜鸟文章,东拼西凑,笑过即可,不必当真。