<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[Java基础]JAVA基础知识大杂烩]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Tue, 19 Dec 2006 05:17:29 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	一、 JDK (Java Development Kit)<br/><br/>JDK 是整个Java的核心，包括了Java运行环境（Java Runtime Envirnment），一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK，除了Sun之外，还有很多公司和组织都开发了自己的JDK，例如IBM公司开发的JDK，BEA公司的Jrocket，还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM（Java Virtual Machine）运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说，我们还是需要先把Sun JDK掌握好。<br/>1、 JDK的下载和安装<br/>JDK又叫做J2SE （Java2 SDK Standard Edition），可以从Sun的Java网站上下载到，http://java.sun.com/j2se/downloads.html。<br/>下载好的JDK是一个可执行安装程序，默认安装完毕后会在C:&#92;Program Files&#92;Java&#92;目录下安装一套JRE（供浏览器来使用），在C:&#92;j2sdk1.4.2下安装一套JDK（也包括一套JRE）。然后我们需要在环境变量PATH的最前面增加java的路径C:&#92;j2sdk1.4.2&#92;bin。新建环境变量CLASSPATH,增加路径.;C:&#92;j2sdk1.4.2&#92;lib&#92;dt.jar;C:&#92;j2sdk1.4.2&#92;lib&#92;tools.jar。这样JDK就安装好了。<br/>2、 JDK的命令工具<br/>JDK的最重要命令行工具：<br/>java： 启动JVM执行class<br/>javac： Java编译器<br/>jar： Java打包工具<br/>javadoc： Java文档生成器<br/>这些命令行必须要非常非常熟悉，对于每个参数都要很精通才行。对于这些命令的学习，JDK Documentation上有详细的文档。<br/> <br/>二、 JDK Documentation<br/> <br/>Documentation 在JDK的下载页面也有下载连接，建议同时下载Documentation。Documentation是最最重要的编程手册，涵盖了整个Java所有方面的内容的描述。可以这样说，学习Java编程，大部分时间都是花在看这个Documentation上面的。我是随身携带的，写Java代码的时候，随时查看，须臾不离手。<br/> <br/>三、 Java应用的运行环境<br/> <br/>Java的应用可以简单分为以下几个方面：<br/>1、 Java的桌面应用<br/>桌面应用一般仅仅需要JRE的支持就足够了。<br/>2、 Java Web应用<br/>Java的Web应用至少需要安装JDK和一个web容器（例如Tomcat），以及一个多用户数据库，Web应用至少分为三层：<br/>Browser层：浏览器显示用户页面<br/>Web层：运行Servlet/JSP<br/>DB层：后端数据库，向Java程序提供数据访问服务<br/>3、 Java企业级应用<br/>企业级应用比较复杂，可以扩展到n层，最简单情况会分为4层：<br/>Browser层：浏览器显示用户页面<br/>Client层：Java客户端图形程序（或者嵌入式设备的程序）直接和Web层或者EJB层交互<br/>Web层：运行Servlet/JSP<br/>EJB层：运行EJB，完成业务逻辑运算<br/>DB层：后端数据库，向Java程序提供数据访问服务<br/>4、 Java嵌入式应用<br/>Java嵌入式应用是一个方兴未艾的领域，从事嵌入式开发，需要从Sun下载J2ME开发包，J2ME包含了嵌入式设备专用虚拟机KVM，和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。<br/> <br/>书籍篇<br/> <br/>学习一门新的知识，不可能指望只看一本，或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。<br/>很多人学习Java是从《Thinking in Java》这本书入手的，但是这本书是不适合初学者的。正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系，而是一种跳跃式的写作方法，是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。<br/>对于初学者来说，最好是找一本Java入门的书籍，但是比较完整的循序的介绍Java的语法，面向对象的特性，核心类库等等，在看这本书的同时，可以同步来看《Thinking in Java》，来加深对Java的理解和原理的运用，同时又可以完整的了解Java的整个体系。<br/>在所有的Java书籍当中，其实真正最最有用处是JDK的Documentation！几乎你想获得的所有的知识在Documentation 里面全部都有，其中最主要的部分当然是Java基础类库的API文档，是按照package来组织的，对于每一个class都有详细的解释，它的继承关系，是否实现了某个接口，通常用在哪些场合，还可以查到它所有的public的属性和方法，每个属性的解释，意义，每个方法的用途，调用的参数，参数的意义，返回值的类型，以及方法可能抛出的异常等等。可以这样来说，所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言，和良好的组织方式来介绍 Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗，如果你有足够的能力来直接通过 Documentation来学习Java的类库，那么基本上就不需要看其他的书籍了。除此之外，Documentation也是编程必备的手册。有了 Documentation，什么其他的书籍都不需要了。<br/> <br/>过程篇<br/> <br/>学习Java的第一步是安装好JDK，写一个Hello World程序。其实JDK的学习没有那么简单，关于JDK有两个问题是很容易一直困扰Java程序员的地方：一个是CLASSPATH的问题，其实从原理上来说，是要搞清楚JRE的ClassLoader是如何加载Class的；另一个问题是package和import问题，如何来寻找类的路径问题。把这两个问题摸索清楚了，就扫除了学习Java和使用JDK的最大障碍。<br/>第二步是学习Java的语法。Java的语法是类C++的，基本上主流的编程语言不是类C，就是类C++的，没有什么新东西，所以语法的学习，大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法，public，protected，private，static，什么时候用，为什么要用，怎么用，这可能需要有人来指点一下。《Thinking in Java》这本书上面是讲了这些概念的。<br/>第三步是学习Java的面向对象的编程语言的特性的地方。比如继承，构造器，抽象类，接口，方法的多态，重载，覆盖，Java的异常处理机制。可以多看看《Thinking in Java》这本书，对面向对象的讲解非常透彻。<br/>第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre&#92;lib&#92;rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个。但是真正对于我们来说最核心的只有4个，分别是<br/>java.lang.*;<br/>java.io.*;<br/>java.util.*;<br/>java.sql.*;<br/>这四个包的学习，每个包的学习都可以写成一本厚厚的教材。比较好的学习方法是这样的：<br/>首先要通读整个package的框架，了解整个package的class，interface，exception的构成，最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。<br/>对包整体框架的把握并不是要熟悉每个类的用法，记住它有哪些属性，方法。想记也记不住的。而是要知道包有哪些方面的类构成的，这些类的用途是什么，最核心的几个类分别是完成什么功能的。你们要了解，Java给我们提供了哪些类，每个类是用在什么场合，当我遇到问题的时候，我知道哪个类，或者哪几个类的组合可以解决我的问题，That′s all！，当我们具体写程序的时候，只要你知道该用哪个类来完成你的工作就足够了。编码的时候，具体的方法调用，是边写代码，边查 Documentation，所有的东西都在Documentation里面，不要求你一定记住，实际你也记不住 3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。<br/>第五步，通过上面的学习，如果学的比较扎实的话，就打好了Java的基础了，剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步，Java的自学能力已经被培养出来了，可以到了直接学习Documentation的水平了。除了要做GUI编程之外，JDK里面其他会有用处的包是这些：<br/>java.text.*;<br/>java.net.*;<br/>javax.naming.*;<br/>这些包里面真正用的比较多的类其实很少，只有几个，所以不需要花很多时间。<br/> <br/>方法篇<br/> <br/>Java 作为一门编程语言，最好的学习方法就是写代码。当你学习一个类以后，你就可以自己写个简单的例子程序来运行一下，看看有什么结果，然后再多调用几个类的方法，看看运行结果，这样非常直观的把类给学会了，而且记忆非常深刻。然后不应该满足把代码调通，你应该想想看如果我不这样写，换个方式，再试试行不行。记得哪个高人说过学习编程就是个破坏的过程，把书上的例子，自己学习Documentation编写的例子在运行通过以后，不断的尝试着用不同的方法实现，不断的尝试破坏代码的结构，看看它会有什么结果。通过这样的方式，你会很彻底的很精通的掌握Java。<br/>举个例子，我们都编过Hello World程序：<br/>public class HelloWorld &#123;<br/> &nbsp; &nbsp; &nbsp; public static void main(String[] args) &#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Hello World");<br/> &nbsp; &nbsp; &nbsp; &nbsp;&#125;<br/>&#125;<br/>很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args)，能不能不这样写？想知道答案吗？很简单，你把main改个名字运行一下，看看报什么错误，然后根据出错信息进行分析；把main的 public取掉，再试试看，报什么错误；static去掉还能不能运行；不知道main方法是否一定要传一个 String[]数组的，把String[]改掉，改成int[]，或者String试试看；不知道是否必须写args参数名称的，也可以把args改成别的名字，看看运行结果如何。<br/>虽然这样比较费时间，不过一个例子程序这样反复破坏几次之后。就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行，看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。<br/>另外，自己在学习过程中，写的很多的这种破坏例程，应该有意识的分门别类的保存下来，在工作中积累的典型例程也应该定期整理，日积月累，自己就有了一个代码库了。遇到类似的问题，到代码库里面 Copy & Paste ，Search & Replace，就好了，极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层，形成一个通用的类库，封装好。那么可复用性就更强了。<br/>所以其实不是特别需要例程的，自己写的破坏例程就是最好的例子，如果你实在对自己写的代码不放心的话，强烈推荐你看看JDK基础类库的Java 源代码。在JDK安装目录下面会有一个src.zip，解开来就可以完整的看到整个JDK基础类库，也就是rt.jar的Java源代码，你可以参考一下 Sun是怎么写Java程序的，规范是什么样子的。打开相应的类的源代码，通过看源代码，所有的问题都会一扫而空。<br/> <br/>资源篇<br/> <br/>1、 http://java.sun.com/ ;(英文)<br/>Sun的Java网站，是一个应该经常去看的地方。不用多说。<br/>2、 http://www-900.ibm.com/developerWorks/cn/ ;<br/>IBM的developerWorks网站，英语好的直接去英文主站点看。这里不但是一个极好的面向对象的分析设计网站，也是Web Services，Java，Linux极好的网站。强烈推荐！！！<br/>3、 http://www.java-cn.com/ ;(中文)<br/>JAVA 中文站，目前国内资料最全、会员最多的JAVA技术网站，人气极高。有《JAVA电子书库》、《JAVA视频库》(国内唯一)、《JAVA技术文摘库》、《JAVA源代码库》、《JAVA工具库》、《招聘求职广场》等主要栏目，还有一些专家栏目。目前会员有5万多，VIP会员近1000人。无论是菜鸟还是老鸟，都能在此网站中找到自己所需要的东东！！ 最强烈推荐！！！！！！<br/>4、 http://www.javaworld.com/ ;(英文)<br/>关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用，这里比较好。<br/>11、 http://sourceforge.net/ ;<br/>SourgeForge是一个开放源代码软件的大本营，其中也有非常非常丰富的Java的开放源代码的著名的软件。 
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [Java基础]JAVA基础知识大杂烩]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>