Java基础知识资料整理
作者:Tnk Luo
E_mail:worldheart@263.net
说明:这些资料都很陈旧,但很实用,是我以前整理并发在CSDN论坛的。为保持原文,所以没有改动,希望大家注意取舍。
大家好,这个地方,我刚来不到15天,发现这里确实是个学习的好地方,不过到现在给我的感觉是,比较乱,比如,大家问的问题经常有重复的,同时也不是很系统,我倒建议大家将自己做项目过程中的经验、学习体会、技术积累的一些问题,发表出来,让大家共同分享!我记得微软亚洲研究院张宏江副院长说过一句话,把自己的心得让大家分享,无论是以论文,还是其他的形式都可以,重在交流,让别人知道你所做的,知道得人越多,对你的批评、鼓励越大。而不是说,你水平高,也不想和别人分享,尤其是我们做技术的,经常把自己做课题过程中的一些经验写下来,对人对己都是很好的帮助!
我今天就对我以往这方面的一些经验写出来,希望大家批评指正!谢谢你的阅读!如果大家欢迎,我可以有后续的一些经验给大家介绍,我也希望大家一起来努力!只有这样,我们这个JAVA版会更有体系、更系统性!
J2SE: (http://java.sun.com/j2se)
SUN公司的JAVA产品慢慢做大后,无论是什么地方,什么场合,都有JAVA的踪影,桌面、企业计算、无限设备,这么多得应用,使得JAVA产品分为了三种版本:Java 2 SDK, Standard Edition、Java 2 Platform, Enterprise Edition、Java 2 Platform, Micro Edition,其中Java 2的概念是在Java开发工具包Java Development Kit 1.1推出后,在1.2版时改为Java 2的。所以现在一般都不叫JDK,尽管大家都知道有这么回事情!:)
J2SE,用户下载Java 2 SDK,Standard Edition后,现在的版本为1.4,1.5版也快推出了,听说要增加泛型技术(GP编程)!(http://servlet.java.sun.com/javaone/sf2002/conf/sessions/21-all-regular.en.jsp)
大家下载J2SE 1.4通常需要安装,这其中,希望大家多看看J2SE 1.4的安装说明,所以我看到很多人在安装完1.4后配置一些环境变量时经常不是很系统。我们安装完后,一般只需要更改三个地方:(以Windows 2000为例)
1,增加一个环境变量:JAVA_HOME=你的J2SE的安装目录;
2,增加一个环境变量:classpath=.;
大家不要小看这个空格,作用大的很!自己仔细看看J2SE文档!另外,也不需要把什么rt.jar,...加进来,都是多余的!
3,在path中增加:你的J2SE的安装目录/bin
这样就完成Java 2 SDK, Standard Edition的安装。
很晚了,我就写到这里,见谅!!:)
常见资源:
1.http://java.sun.com/j2se
2.http://developer.java.sun.com,这个地方特别好,希望大家都去注册一个帐户,免费的,好地方!
3.http://www.oreilly.com.cn,OReilly公司的图书国内由中国电力出版社出版,国内翻译oreilly公司的相关JAVA图书都在这里,同时:http://www.infopower.com.cn/这里也有!!
4.http://http://www.oreilly.com.tw/sleepless/index.htm,蔡學鏞先生的JAVA专栏,Sleepless in JAVA!!!
5.http://www-900.ibm.com/developerWorks/cn/index.shtml,大家应该很熟悉吧!IBM的中国developWorks网。其中有JAVA技术专栏!
6.http://www.sys-con.com/java/index.cfm,JAVA DEVELOPER'S JOURNAL
7.http://www.adtmag.com/java/index.asp,JAVA REPORT!
JDBC技术
接下来,我会讲讲JDBC技术,先给个实际例子,如果有兴趣,大家先去下载一个SQL Server 2000 JDBC!大家现有个大概的影响,后面我会详细把这方面的理论基础给大家!由于我这几天比较忙,所以不好意思脱逃了!
SQL Server 2000 JDBC Driver是最好的 Type 4 JDBC驱动程序,它提供了面向企业的、与Java环境的高度可靠、高度可伸缩的连通性。SQL Server 2000 JDBC Driver为所有Java小程序(Java-enabled Applet)、应用程序或者应用程序服务器提供了JDBC访问能力。它跨越Internet和Intranet提供了对SQL Server 2000的高性能点对点访问和n层(n-tier)访问。该驱动程序针对Java环境进行了优化,使您可以将Java技术与现有的系统相结合,以扩展现有系统的功能和性能。
SQL Server 2000 JDBC Driver是一个遵从JDBC 2.0规范的驱动程序。它还支持JDBC 2.0 Optional Package的一个子集,该子集提供了以下一些功能(详细信息参见文档):
...Java命名目录接口(JNDI),用于命名数据源
...连接池(Connection Pooling)
SQL Server 2000 JDBC Driver 支持的SQL Server版本有:
...SQL Server 2000.
...SQL Server 2000 with Service Pack 1
以下操作系统支持SQL Server 2000 JDBC Driver:
...Windows XP
...Windows 2000 with Service Pack 2
...AIX
...HP-UX
...Solaris
...Linux
SQL Server 2000 JDBC Driver支持以下版本的JDK:
...JDK 1.1.8
...JDK 1.2
...JDK 1.3
下载地址:
http://www.microsoft.com/china/sql/downloads/2000/jdbc.asp
让我们接着上一讲来看看JDBC技术,我们知道,JDBC作为J2SE,J2EE平台的重要组成部分,可见其重要性!
JDBC的源泉:
http://java.sun.com/products/jdbc/
大家知道,JDBC的最新API Specification 是3.0,其中包括:
JDBC Technology Core features (the java.sql package)
java.sql.*;
和
JDBC Optional Package features (the javax.sql package)
javax.sql;
两部分。
其中,在3.0中,optional package还不是J2SE 1.4的core api!
http://java.sun.com/products/jdbc/features.html
大家知道,JDBC API构架包括两类接口,第一种是,
JDBC API for application writers
第二种是,
lower-level JDBC driver API for driver writers
而,JDBC技术提供的驱动程序包括4种,Type 1,Type 2,Type 3,Type 4!
应用程序和小应用程序(applets)可以通过 JDBC API using pure Java JDBC technology-based drivers访问DBMS.
具体细节,请大家参考:
http://java.sun.com/products/jdbc/overview.html
比如,我们以Oracle 8.1.7为例,通常在通过应用程序联结Oracle 8.1.7时,如果使用JDBC技术,一般有thin,oci两种,
那么,thin,oci有什么区别那?
如果大家看完上述的参考文献,现在应该可以明白,
thin,是Type 4!
oci,是Type 2!
再比如,SQL Server 2000,最近Microsoft推出了其JDBC for SQL Server 2000的驱动程序!
下载地址为:
http://www.microsoft.com/china/sql/downloads/2000/jdbc.asp
(安装完后,有pdf文件,把JDBC讲的很详细,推荐下载!!!)
如果我们以Oracle 的应用为例,采用thin结构,大家分析一下如下代码:
try
{
//加载JDBC驱动程序
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//建立与DBMS的联结!!
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@10.11.12.200:1521:ora8",
"DFQ", "DFQ2000");
//生成操作描述语句!
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
//具体的SQL操作!
ResultSet rset=stmt.executeQuery("SELECT * FROM
JAVAEFFT");
while(rset.next())
{
//对数据库操作!!!!
}
rset.close();
stmt.close();
conn.close();
}
catch (SQLException ex)
{
System.out.println ("/n*** SQLException caught ***/n");
while (ex != null)
{
System.out.println ("SQLState: " +
ex.getSQLState ());
System.out.println ("Message: " + ex.getMessage());
System.out.println ("Vendor: " +
ex.getErrorCode ());
ex = ex.getNextException ();
System.out.println ("");
}
}
catch (java.lang.Exception ex)
{
ex.printStackTrace();
}
其中,Oracle 8.1.7有两个classes11.zip和classes12.zip,包,我们一般用
classes12.zip,其支持JDBC 2.0
透过J2SE的:(有一张层次结构图,大家可以去看看!)
http://java.sun.com/j2se/1.4/index.html
所以,J2SE包括的东西很多,如果要面面俱倒,本人也是个新手,写这些东东的目的,就是将自己的体会,心得写下来,希望多多批评指正,多多交流,有什么问题,可以和我发消息,同时也可以把问题写在这里,我经常来看看!!!:)
J2ME:
参考资源:
1,http://java.sun.com/j2me/
2,《J2ME无限设备编程》,机械工业出版社,28元
3,http://wireless.java.sun.com/
4,http://www.sun.com.cn
最近,SUN,Motorola,在举行J2ME开发比赛:
http://www.hopen.com.cn/388/
机会难得!!!
至于J2ME开发,和J2SE开发过程差不多,同时:
http://java.sun.com/blueprints/
提供了
Enterprise: Java Pet Store Sample Application
开发例子!!!
而且鉴于这个例子,我打算下一次将
Java Pet Store Sample Application
好好分析一下!
这个话题,在程序员杂志上很多,但我想,存在即是合理,因为我已经开始着手写这方面的材料,所以希望大家多支持!!!
我们需要交流!!!
让我来写这个东西,或许可以这样讲,我没有这个资格,但我们可以试试!
:)
国内JAVA图书,尤其是优秀的图书,大部分都是国外的,无论是否翻译过来,还是影印版!我这里假设我们的参考系都是国外的,即,比如《Java 高效编程指南》的英文版是很好的一本书,被:
http://www.sdmagazine.com/jolts/
http://www.china-pub.com/computers/bookreview/review/news.htm
评为一本很好得书,
但,中文版就.....
http://jjhou.csdn.net/article02-10.htm
上面有对该书的评价!(不知道,大家注意到没有,带有Effective的书,都很不错!!!)
所以,我们的目光是国外的图书!
首先,我们谈谈Oreilly公司的Java图书,
http://www.oreilly.com.cn/html/java.html(国内)
http://www.oreilly.com.tw(台湾),其中有蔡學鏞先生的专栏!
sleepless in Java:
http://www.oreilly.com.tw/sleepless/index.htm
可以,这样说,Oreilly公司的书一向都很好,同时国内由中国电力出版社引进,所以中文版的质量应该不错!!!
比如,国内的几本:
《Java安全》第二版
《JDBC与Java数据库编程》第二版
《JSP设计》
《Java技术手册》
《JAVA实例技术手册》
《Java网络编程》
《Java语言入门》
《JAVA与XML》
《Enterprise JAVABEANS(第二版)》
《Java 语言与 Java 平台》
都是精品!个人认为!:)
个人总结:适合各种层次的人,很专业!!
第二,wrox公司,
http://www.wrox.com
http://www.china-pub.com/temporary/SendMail/htmlmail/zhuanti/007.htm
Wrox的图书,读者定位就是程序员,甚至他们把P2P(程序员对程序员,Programmer to Programmer)当成了商标,在这样的定位下又通常细分为“Beginning XXX”和“Professional XXX”,只要做了正确的选择,对于初学者来说不必担心内容太艰深看不懂,对于老者来说也不为一些早就熟知的内容支付额外的费用。欲知更多Wrox图书信息,请见WWW.WROX.COM(转载http://www.china-pub.com)
我自己有一本,《JSP编程指南》,感觉还不错!
个人总结:对于初学者不是很适合,如果你有一定项目经验,再看这种书,效果会很好!:)
第三,SUN公司出的书,感觉国内主要是由机械工业出版社引进出版,w Sun公司核心技术丛书!
http://www.sun.com/books/
个人总结:很舒服!
第四,Addison-Wesley公司的图书!感觉也蛮好的!比如,比如,<Effective Java>就是他们的!
个人总结:与Oreilly公司的书风格很像!
第五,一些网站提供的电子图书,
http://www.theserverside.com/resources/index.jsp
,上面有很经典的EJB书:
Mastering EJB II
Mastering EJB was one of the original and most influential EJB books in the industry. Mastering EJB II now returns with two new expert co-authors, updated for EJB 2.0 and improved with advanced topics such as large scale systems design, J2EE project management, complex persistence and more.
EJB Design Patterns
A companion/standalone book to Mastering EJB 2, EJB Design Patterns seeks to solidify and centralize all the cutting edge strategies and design patterns in use today.
http://www.mindview.net/
这个地方有,<Thinking in JAVA,c++>!
技术资源:
1.http://www.theserverside.com
2.http://java.sun.com
3.http://www-900.ibm.com/developerWorks/cn/index.shtml
4.http://developer.java.sun.com/
5.http://www.eclipse.org/
6.http://www.artima.com/insidejvm(剖析JVM的经典书!!!)