Java入门及faq__1

一、入门
1、下载和安装J2SDK http://java.sun.com/j2se/1.4.1/download.html
2 JAVA VM http://www.java.com/en/index.jsp
3 API http://java.sun.com/api/index.html
1 首先下载J2SDK安装
a 更新PATH环境变量
为了能在任何目录下都能执行java命令(如javac、java、 等),需要将java的bin目录放入PATH环 境变量中。 对于Windows95/98, 打开“开始”菜单、选择“运行”、输入命令sysedit(调用系统配置编 辑程序),在C:\AUTOEXEC.BAT窗口中找到PATH设置并追加一项(c:\jdk1.3.1_01\bin)对于Windows NT and Windows 2000 ,进入“开始”菜单,选择“设置/控制面板/系统”。对于Windows NT,选择“环境” 页,对于Windows 2000,选择“高级”页,在环境变量设置中的用户变量栏中增加(如果原来没有PATH) 或修改PATH环境变量,使其包含c:\jdk1.3.1_01\bin路径。
b 更新CLASSPATH环境变量
为了使系统能找到用户定义的类,需要将用户类所在的目录(通常是当前目录即把 . 加入到 classpath中)放入CLASSPATH变量中。具体更改方法同PATH修改过程,只是要找到 CLASSPATH环境 变量进行修改。
jdk Win2000下的环境变量设置

在“我的电脑”的属性的高级选项当中有一个环境变量设置。
1)在系统环境变量PATH参数后面加上bin的访问路径。例如如果是直接安装在c盘下面的话就在PATH参数后面加入c:\jdk1.3.1\bin。加入后的结果一般为:%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\jdk1.3.1\bin。
2)新建一个系统环境变量CLASSPATH,将其值赋为:.;c:\jdk1.3.1\lib\tools.jar;c:\jdk1.3.1\lib\dt.jar;c:\jdk1.3.1\jre\lib\dt.jar;d:\JavaProgramming\
其中d:\JavaProgramming\是Java源程序的存放目录。
注意:在使用java命令的时候后面跟随的源程序的名字中的大小写应该完全与源程序名字中的相同,也就是说Java命令是不忽略大小写的。另外,在Java命令后面的程序名不要带上.class!

c 确认系统安装
在DOS提示符下,输入set命令可以查看PATH和CLASSPATH的设置是否成功 ( 如果是98者需运行 AUTOEXEC.BAT才能使修改的设置生效 如果是2000需把dos关闭重新运行 )
2 然后运行你的第一个java程序
写个类保存为.java文件 一定记得如果是用记事本编辑器的话 保存时要选择保存类型为所有类型然后文件名字和你的类名字要一模一样 或者也可以把类名.java加上引号就可以避免保存为.java.txt的类型了

3 常见错误处理
如果运行javac命令时出现can not read xxx.java 首先看看你的文件是否保存为.java.txt的类型了(右点文件看属性里的扩张名) 重新保存 记得此时要把文件名.java加上引号 保存 。 若运行java命令时提示exception in thread "main" java.lang.NoClassDefFoundErroe:的异常 说明你的classpath里没有加入 .

2 exception in thread "main" java.lang.NoClassDefFoundErroe:
说明你的classpath里没有加入 .

3 "=="和"equals()"的区别在哪里?

"=="是java中固定的操作符,用来判断是否相等,用法比较单一
由于在java中除了基础类型(int,char,boolean等)其它都是对象,而用"=="来比较对象实际上就是在比较对象的句柄(也可以说是地址的比较),因此即使对象的内容是一样的用"=="判断也是不一样的
(除非:Object a =new Object()
Ojbect b = a;
if(a==b)
System.out.println("true");
在上述这个程序的情况下执行结果是打印出“true”)。
而equals()方法在Java中所有的对象都具有的,由于Java中的所有类都extends Object,所以个各类都可能对equals()方法重写(面向对象多态性的体现),因此equals()方法虽说也是比较两个对象,但由于各个类中的实现方法不一样,从而其比较的内容也不一样,就像楼上说的String 对象的equals()是用来比较字符串对象所包含的字符串值是否相等。
结论:==的用法比较单一,是一个固有的操作符
equals()方法是一个可以根据需要来比较两个对象的某些特征是否相等,用途很广

4 StringBuffer s1 = new StringBuffer("a");
StringBuffer s2 = new StringBuffer("a");
s1.equals(s2)//为什么是false
String s1 = new String("a");
String s2 = new String("a");
s1.equals(s2)//为什么是true

其实很简单,我来总结一下。
一、String的equals方法是覆盖Object的,所以String a=new String("ss");String b=new String("ss"); 生成了两个对象,但是a.equals(b)=true,比较的是值。
二、StringBuffer的equals方法没有覆盖Object的方法,所以StringBuffer a=new StringBuffer("ss");StringBuffer b=new StringBuffer("ss");,生成了两个对象,
a.equals(b)=false,比较的是地址。
三、等号比较的是地址,String a = "a";String b=a;只生成了一个对象a==b true。
StringBuffer a=new StringBuffer("a");StringBuffer b = a; 也是生成一个对象a==b true。
四、String a="ss";String b="ss"; a.equals(b)=true a==b true因为也是一个对象。这是因为编译时只产生了一个对象"ss"。String a=new String("ss");String b=new String("ss");a.equals(b)=true,没有疑问,a==b false。因为a,b是在运行时才产生的对象,产生了2个对象。
要点:编译对象和运行对象。

5. Java Web Start是什么?
看这里 http://java.sun.com/products/javawe...adme_zh_CN.html

6 trim()函数的用法

使用一个对象。如:
String aa;
aa=" aaaa ";
aa=aa.trim();
aa return "aaaa".
是去掉字符串的前部和后部的空格。

7 怎么提取系统时间?

Date myDate=new Date(System.currentTimeMillis());
//This time format is your local time format.
System.out.println(myDate.toString());
//Used the simple format to get the String you want .
//The valid string ,you can reference the JDK Doc
SimpleDateFormat sDateFormat=new SimpleDateFormat("yyyy/MM/DD HH:mm:ss");
System.out.println(sDateFormat.format(myDate));

使用Date和SimpleDateFormat 可以得到任何格式的时间,另外还有一个更强的类是Calendar,下面会有讨论。

9 日期的显示格式化

例子:
import java.util.;
import java.text.
;
public class FormatDate {
public static void main(String[] args) {
Date now = new Date();

DateFormat defaultFormat = DateFormat.getDateInstance();
DateFormat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT);
DateFormat mediumFormat = DateFormat.getDateInstance(DateFormat.MEDIUM);
DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG);
DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL);
String defaultDate = defaultFormat.format(now);
String shortDate = shortFormat.format(now);
String mediumDate = mediumFormat.format(now);
String longDate = longFormat.format(now);
String fullDate = fullFormat.format(now);

System.out.println("(Default) Today :" + defaultDate);
System.out.println("(SHORT) Today : " + shortDate);
System.out.println("(MEDIUM) Today :" + mediumDate);
System.out.println("(LONG) Today : " + longDate);
System.out.println("(FULL) Today : " + fullDate);
}
}

运行结果为:
D:\javamail>java FormatDate
(Default) Today :2003-6-15
(SHORT) Today : 03-6-15
(MEDIUM) Today :2003-6-15
(LONG) Today : 2003年6月15日
(FULL) Today : 2003年6月15日 星期日

10 静态和非静态的嵌套类有什么区别?

static内部类意味:
1创建一个static内部类的对象,不需要一个外部类对象
2不能从一个static内部类的一个对象访问一个外部类对象

11 怎样判断输入的东东是字符还是数字啊?

用Float.parseFloat(String data)解析一下
有NumberFormatException抛出就不是数字了

如果你用StreamTokenizer的话,那里面有StreamTokenizer.ttype,可以判断是否是数字。
你也可以 Character.isDigit(char ch)来判断没一个字符是否是数字。
Character类的方法
static boolean isDigit(char ch)
Determines if the specified character is a digit.

static boolean isLetter(char ch)
Determines if the specified character is a letter.

static boolean isLetterOrDigit(char ch)
Determines if the specified character is a letter or digit.

static boolean isWhitespace(char ch)
Determines if the specified character is white space according to Java.

12 finalize()和System.gc()区别

finalize()是由JVM自动调用的,你可以用System.gc(),但JVM不一定会立刻执行,JVM感觉内存空间有限时,才会开始执行finalize(),至于新的对象创建个数和被收集个数不同是因为收集的对象只和JVM的垃圾收集策略有关,和你的chair()创建无关,finalize()只是chair()中的一个方法,不和chair()创建有关。

13 怎么键盘上输入2 ….竟印出50 ??? System.in.read()用法

import java.io.*;
public class test
{
public static void main(String[] args)throws IOException
{
int s[]=new int[10];
s[0]=System.in.read();//正确的应该改为s[0]=Integer.parseInt(args[0]);
System.out.println(s[0]);
}
}

打印出来的是键盘上字符对应的ASCII码值,比如你输入a,输出的就是97。另外:
Integer.parseInt(String) 是拿String来做参数,返回带符号的int型
而System.in.read() 则是返回0-255之间的整数,来表示ASCII 码,两者虽然都是int,但是意义不一样。

什么是面向对象的设计思想?

什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,
特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的

语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行

开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”

的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方

面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,

说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心

得,不怕贻笑大方,写出已供广大同行批评指正。

“对象(Object)”一词,早在十九世纪就有现象学大师胡塞尔提出并定义。对象是世

界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的

先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于

是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因

为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对

它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树

砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中

的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东

西。譬如,当我们看到另外一棵树是,并不会因为所见的第一棵树不在了失去了供参照的模

板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象

。当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。

上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常

所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来解

决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对

象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。应用

前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我

们可以将它作为一个对象来进行分析。一个系统(解决某个问题的全套解决方案)作为一个

对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可

以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员

的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元

组当作对象,给它定义一组操作方法。这些方法将适用于所有元组,从而我们不必在更大的

范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向

本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图

等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,

它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类

的事情。甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。

这样,更能显示面向对象的优势。

上面所讨论的可以说是面向对象的分析方法。在具体的设计过程当中,还应该采用适当

的方式。因为面向对象的思想固然很先进,如果做得不好的话,同样不能达到预期的效果。

这主要表现在处理对象与对象的关系上没有做好,对象与对象的层次不分明。如上面所举得

关系型数据库得例子,如果在元组层面上得对象过多得考虑一个表对象得因素,或一个表层

面上对象过多地考虑一个元组对象的因素,甚至去考虑元素层面上的因素,这些都不是好的

面向对象的设计方法。这一点,在语言实现方面,Java比C++更有优势,因为它不允许多

重继承,从而使对象之间的关系更明确。谁也不会否认C++的功能更强大,但是它也要由次

付出巨大代价——当现在代码库发展到一定程度、一定规模时,个对象之间的层次关系将

变得异常复杂,给后继使用者得学习、理解带来很大的困难,应用上很难把握。另外,虽然

C++具备面向对象的处理能力,但它还是保留了很多面向过程的东西。用C++完全可以不用

面向对象的思想来进行程序设计,当然人们不会这样去做——除了那些只是把C++看成是C

扩充的初学者,这就为以后的发展埋下了隐患。在者一方面,Java的限制更多一点。就者一

点还远远不够。搞开发的是人,开发方法是由人决定的。要应用面向对象的方法开发出优秀

的软件,必须要求开发人员具有良好的面向对象的思想。好的工程师可以利用适当的工具开

发出优秀的软件——而不在乎他所使用的语言工具——Java、C++、Object Pascal、Ada等。

要能应用面向对象的思想熟练得做好系统分析、设计、实现(编程),首先要求开发人

员知道什么是对象,什么是面向对象得概念,否则是谈不上应用面向对象得思想搞软件开发

了。希望读者能在看到我在前面的不太严密、详细的论述之后可以对“对象”这个概念由一

个初步的了解,同时也希望有不同看法的同行提出批评。其次,还要求开发人员有比较丰富的开

发经验。否则,光谈理论,那是不能真正体会“面向对象”的含义的。尽管如此,我们还是

可以定出一般的规则的。抛开生命周期的其它阶段,对一个确立的系统一般可以进行以下几

个过程:

一、首先应用面向对象的思想进行系统分析。仔细的划分系统的各个部分,明确它

们之间的层次关系,然后将各个部分作为一个对象进行功能上的分析。例如,要设计一个用

户界面,它可能由几个主要的窗体组成:主窗体MainFrame、功能性子窗体FunctionFrame

以及对话对话框Dialog。其中,MainFrame中可能还包括菜单、工具条、文本框、状态条等

Windows组件。对于要完成一些重要功能的组件,我们可以单独将它作为一个对象看待,在

具体的实现中,用单独一个类来表示。而一些并不是很重要的、只是在过程中需要用到的组

件,就可以将它们集成到其他对象中去。要明确每个对象自己的任务——不要让它有缺陷,

也不能越殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。

实际上,如果你是用Java进行开发,你会发现swing组件本身就非常好用,因为它们

之间的关系是很分明的——你无须去理解分清象C++中的组件那样复杂的关系。在开发你自

己的组件时,也需要力求达到这样的效果。

二、其次时应用面向对象的思想进行系统设计。其实在真正做好了系统分析的工作之后,

进行设计就比较轻松了。这段时间只要进一步确定各个对象的功能以及各个对象之间的关系

。为了能够更好地帮助实现人员明白各个对象之间的关系,可以利用一些工具将这些组件的

关系表示出来,统一建模语言(Uniformed Module Language,UML)就是这样的一种好东

西。它不仅可以现在帮助开发人员了解整个系统,也为以后的维护工作提供一个档案文件,

给以后的工作提供巨大的方便。

三、实现(编码)。这一点就不用多说了。在我的下一篇文章中,将会给出一个比较简

单的实例,希望会给读者一个启发。

在搞软件开发时,编码不是最重要的。分析、设计才是最重要的。也许当我们接受了一

些更先进的思想之后,会更加理解这一点了。希望我们中国的软件开发人员能应用面向对象

的思想开发出具有国际竞争力的优秀软件。

如何取得本机的IP

import java.net.*;
public class GetSelfIp{
public GetSelfIp(){
}
public static void main(String[] args){
InetAddress host = InetAddress.getByName(null); // get the local ip address
.........
}
}

InetAddress下面一共就三个方法:getAllByName(String)、getByName(String)、getLocalHost()

throw和throws有什么区别?
throw是用来抛出exception的,用在方法中,
而throws是用来声明可能产生的exception的,用在类或方法的声明中

怎样生成 .jar文件?

用法:jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。
示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .
示例3:jar -cvf zhz.jar Hello.class

优秀文章网站推荐:
1 如何迅速成为Java高手[Tomjava原创]
http://www.java.com.cn/showtopic.as...719&Forum_ID=31

2. 一个老工程师的话 (给年轻电子工程师的十大忠告)
http://www.pconline.com.cn/pcjob/it...312/261734.html

3. 大量 Java 程序例子, Examples for almost all Java classes
http://javaalmanac.com/egs/

4. The Java Tutorial on Sun
http://java.sun.com/docs/books/tutorial/

5. 谈谈java的学习方向(转载)
http://www.430000.net/printpage.asp?ArticleID=46

6. Java 学习之道
http://www.csdn.net/develop/author/cxy/way_to_java.shtm

7. Java 程序编码规范 from SUN
Code Conventions for the JavaTM Programming Language
http://java.sun.com/docs/codeconv/h...onvTOC.doc.html

8. Java 程序编码规范 from IBM
http://www-900.ibm.com/developerWor...ard/index.shtml

9. 给C++初学者的50个忠告 good for Java too
http://post.baidu.com/f?kz=647098

10. 对初学者很有用的文章
http://www.mifun.net/pengjie/myweb/...?id=95&sort=jsp

11. 提问的智慧
How To Ask Questions The Smart Way
英文版: http://www.catb.org/~esr/faqs/smart-questions.html
中文版: http://alfredy.myetang.com/

12. 从Coding Fan到真正的技术专家
http://www.chinajavaworld.net/forum...ic=12814&show=0

java新手必读,一些入门知识

1、jdk就是j2se,jdk1.1.8版本以后改成为j2se,
下载地址: http://java.sun.com/j2se/downloads.html
2、jre是java运行时环境(jdk1.3版本以后都包含jre)不用单独下载
3、设置环境变量
安装了jdk以后,要配置环境变量
我的电脑->属性->高级->环境变量
添加以下环境变量(假定你的java安装在c:\jdk1.3)
java_home=c:\jdk1.3
classpath=.;c:\jdk1.3\lib\dt.jar;c:\jdk1.3\lib\tools.jar;(.;已经不能少,因为它代表当前路径)
path = c:\jdk1.3\bin
新开一个dos窗口,键入java和javac测试一下
4、简单测试程序

代码:--------------------------------------------------------------------------------
public class Test{
public static void main(String args[]){
System.out.println("Hello world!");
}
}
--------------------------------------------------------------------------------

javac Test.java
java Test

5、java、j2ee、xml 开发常用工具介绍

j2sdk安装程序及Java API Doc
j2sdk-1_4_0 for win
j2sdk-1_4_0 for linux
j2sdk-1_4_0-doc
j2sdkee-1.3-doc

可去 http://java.sun.com/j2ee/download.html 下载

6、build工具
ant: Ant是一个基于java的跨平台的build工具。之所以Ant能跨平台,是因为Ant不再需要你编写shell命令,Ant的配置文件是基于XML的任务树,
能让你运行各种各样的任务,任务的运行是由实现了特定任务接口的对象来完成的。

http://jakarta.apache.org/ant

7、开发工具(IDE,集成开发环境)
1、开发工具首选两种
1、jbuilder——不用我多说了
2、netBeans(下载地址 www.netbeans.org,免费 ),forte也就是Sun EE和netbeans类似
(估计是使用netbeans的原码改写而成), 但是netbeans(3.4版本)我觉得比较好用,
可以和tomcat和cvs等集成,但是唯一不足的就是不能开发EJB,forte倒是可以,
但是不能给出我们自己写的API(也就是.后出现的方法都是系统的,而我们自己写
的方法出不来,faint)
其它开发工具
Eclipse: 号称未来能进行任何语言开发的IDE集大成者。
Eclipse 是替代IBM Visual Age for Java(以下简称IVJ)的 下一代IDE开发环境,
但它未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结构,
通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。
目前,Eclipse已经开始提供C语言开发的功能插 件。更难能可贵的是,
Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,
并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,
就会有建立在Eclipse之上的COBOL,Perl,Python等语言的开发插件出现。
同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java开发环境中加入Tomcat服务器插件。
可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse的潜力所在。
http://www.eclipse.org

8、专业XML编辑工具
XMLSPY:支持SOAP;支持Oracle XML Schema扩展;支持 MSXML4等等;提供三种XML文档视图:结构显示和编辑,
原码视图和支持CSS,XSL的预览。支持最新schema标准,可以根据schema校验XML文档可以将不同schema版本schema
文档转换成符合最新schema规范的文档可以将DTDs, XML-Data, 或者 BizTalk schemas 转换成 W3C XML
Schema从数据库连接(ADO,ODBC)中自动产生XML Schema可以直接访问数据库,
提供数据库和XML之间的转换提供类似Office XP compatible的用户界面提供了更方便的用户界面定制方式.
该编辑器支持所见即所得的文本编辑,基于form地数据输入,图形元素等,包括了一个图形化的XSLT产生器,
可以针对schema或者DTD产生样式文档,最后应用于相应的XML文档。

可去 http://www.xmlspy.com/download.html 下载
9、Framework

cocoon:XML Framework
Cocoon是采用100%纯Java编写的一个内容发布框架。
Cocoon让你能采用W3C的最新技术(DOM、XML、XSL)来提供Web内容。
新的Cocoon模式能将文档内容、样式、处理逻辑进行完全的分离,允许这三层能独立地设计、创建和管理,
从而减少了管理开销,加强了工作的重用性,减少了开发时间。

来源: http://xml.apache.org/cocoon

9、struts:JSP Framework
Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。
采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。
Struts有如下的主要功能:
· 包含一个controller servlet,能将用户的请求发送到相应的Action对象。
· JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。
· 提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

来源: http://jakarta.apache.org/struts

10、turbine:Servlet Framework
Turbine是基于servlet的framework,使有经验的Java开发员能快速地构建web应用。
使用Turbine,可以通过创建使用特定服务来处理模板的Screen,
来集成现有的模板技术(例如Velocity、Webmacro、Java Server Pages(JSP)、FreeMarker、cocoon)。

来源: http://jakarta.apache.org/turbine
11、Demo

Java Pet Store: j2ee应用样例
Java Pet Store是Java software蓝图规划的j2ee企业应用样例。
它示范了怎样应用j2ee 平台的威力去构建一个灵 活的、可伸展的跨平台企业应用。
你可从java.sun.com/blueprints/enterprise/上获取最新的信息及学习资料,目前最新的版本是基于j2ee1.3的1.3_01。

来源: http://java.sun.com/blueprints/enterprise/

12、database

pointbase:进军企业级数据库市场的一只新军。
PointBase 是第一个经过认证的100%纯Java数据库,可用于任何使用的 Java 2 标准版虚拟机 (JVM)的平台。

来源: http://www.pointbase.com/
13、j2ee server
1、j2sdkee1.3.1 referrence implement(j2ee参考实现),sun的一个很好的学习j2ee的工具,记着,这是一个学习的工具
不是一个企业开发的工具,因为它的效率,安全等诸多问题,所以不能用它做项目或者产品。
http://java.sun.com/j2ee/download.html
2、weblogic和websphere 不用我多说了吧!
3、sun one Application Server(前身是iplanet)---强烈推荐
里面是一个比较完成j2ee开发平台
1、sun one studio 4 (前身 forte)
2、tomcat 4
3、sun one application server 一个较棒的j2ee server
4、和j2ee ri集成
5、pointbase 是第一个经过认证的100%纯Java数据库
这些工具可以够你开发任何java产品,最重要的是,它是一个免费的j2ee服务器,并且是免费的哦
比起jboss来说,不知道好到哪里去了 哈哈,这下活该我发了!!!
http://wwws.sun.com/software/download/app_servers.html

14、UML工具

1、Rational Rose 大哥大级别的UML设计工具,功能很强大。
2、Together 可以认为是最好的java UML设计工具,可以根据类图同步生成java代码,设计完成后,系统的
框架也出来了,爽啊!

15、指导书籍
1、入门书籍就不多介绍了
看一些<<从入门到精通>>之类的书籍,< >初学者不推荐
2、java programmer推荐看<
3、java designer推荐看< >(新书,中国人写的,不是翻译的,中国人能写出这样有深意的IT书,很难得)

Published At
Categories with Web编程
Tagged with
comments powered by Disqus