共 77篇 前 6 页:    每页15篇 上一页   下一页  

自荐文章

自学能力是一种综合性极强的能力,它包括独立阅读能力,独立思考能力,自我组织能力,自我监督能力,包括高度的主体精神,自主精神,自强精神。有了自学能力,就可以自主,独立地掌握创造所需的任何新东西,新本领。
自主学习是一种很能锻炼人,提高人的创造力的创造性学习。所以我们应多多重视自学,学会自学,善于自学。
jijiu   2005-09-21 17:45:03 阅读:319  评论:0  引用:0
人的生命是从母亲羊水的浸泡中开始形成的,人的体重中有70%是水。而人的一生也如水一般。

人生如水。水日夜流淌,流走了,就不再回来。逝者如斯,覆水难收。人生的每一天,过去了就永远不会回来。不可能重过十八岁,不可能重活少年时。

人生如水。水总是要流淌的,没有东西可以阻拦。可以走过河流,可以流淌沟渠,也会穿越深山峡谷,也会激荡巨石瀑布。人生也总要继续。锦衣玉食要生活,粗茶淡饭要生活,太平盛世要生活,兵荒马乱也要生活。生命的顽强就想水的不可阻挡。

人生如水。水有本性向低处走。在低洼处积存雨水,在峡谷中汇集山泉,大海之深广容纳天下之波澜。人亦有本性,饮食男女,富贵荣华,莫不是天下人人所渴望。真正明白人性的人就不会愤愤于人非尧舜、欲壑难填了。

人生如水。水需要堤岸才能和社会平安相处。人需要理智和法律来维护正常的生活。泛滥的洪水一旦冲溃堤岸,就是可怕的灾难。人的欲望感情如果冲决了道德理智甚至国家法律,也将使个人难以见容与社会,更别说发展与成功了。

人生如水。水可以被塑造,如同人生可以选择。有的人的一生死水无波,有的人则波澜壮阔。有人如山间清流之明澈从容,有人如大海汪洋之深广宽容。命运会使我们遇到不同的事情,如同水流会遇到不同的环境。我们也可以选择不同的处理方法,如同水流流向不同的方向。

谁在造就江河,大自然。谁在造就我们的人生,志与智。

jijiu   2005-09-16 19:18:07 阅读:424  评论:0  引用:0
学习Java已有两个星期了,感觉难学,因为我有一定的C语言基础,现在已经学到“继承”了。
jijiu   2005-09-19 19:14:15 阅读:344  评论:0  引用:0
人就是一个奇迹,是大地唯一的奇迹,而大地上的其余奇迹,则是人的意志,理性,想象之创造结果,连神邸也是他假造出来的。一切资源,归总起来,不外两大类,即物力资源和人力资源。人力资源比物力资源更为根本,更为关键。毛泽东深刻地指出:“一切物的因素只有通过人的因素才能加以开发利用。”离开了人,一切物都一钱不值。
可见,一切问题,归根到底,都可以归为人的问题。我们考虑一切事情,研究一切问题,都应以人为本,以人为中心,以人为上帝,这才是思想的制高点。最大最可怕的错误,就是见物不见人,重物不重人。
jijiu   2005-09-16 19:09:54 阅读:364  评论:0  引用:0
如流星划破大气,如利箭穿破长空,神勇与智慧的有机结合将把人和世间万物结合起来,与天比高,与宇宙争空间。一说“宇宙从虚无中来”,那么人存在于宇宙空间当中,人也是虚无的。但这虚无中也存在着永恒,那是一种精神境界,一种忘我无我的境界,一种能把自己分离开来的境界,一种能用理性的头脑开发自我的境界,一种身在其中,乐在其中的无尚境界。
jijiu   2005-09-16 19:06:51 阅读:338  评论:0  引用:0
生命竟如此可贵,他能创造一个又一个的奇迹,并能在生命的撞击中领会人生的一切宝贵财富,指导自己快乐地走完生命的旅程。生命的脚步需要我们深刻的反省,以便更好的走下一步。主次的分辨是一个成熟的人应该具备的最起码的要求,善恶的辨析是一个高尚的人应具备的先决条件,一针见血的分析,洞察一切的能力,扬长避短的艺术是为生命最可宝贵的财富。


jijiu   2005-09-16 18:45:14 阅读:322  评论:0  引用:0
凶狠残忍的野狼竟然会钟爱自己残废的妻子,恩爱相助,致死相助,致死不渝。令人感慨万端。如今情场大裂变,见利忘义的情殇,人老珠黄的移爱司空见惯。而这双野狼伉俪,足以啸傲山林和尘世。
jijiu   2005-09-15 19:02:01 阅读:481  评论:0  引用:0
无中生有:不要看不起虚,虚可以转化为实。很多时候,以迂为直,从虚入手往往胜过实战进攻。当然,只重视虚,永远停留在虚的层面上,不与实结合,不转化为实,也是不行的。
《孙子兵法》的精髓是什么?大军事家,大谋略家唐太宗李世民深有感慨地说:“观诸兵书,无出孙武,孙武十三篇,无出《虚无》。用兵识虚实之势,则无不胜焉。”
jijiu   2005-09-15 19:00:40 阅读:361  评论:0  引用:0
要想成才,那就应有所选择,有所放弃,更要掌握有为无为和合的奥秘,严格因志,因材地确定那些该有为,那些该无为,并且任何时候都能够集中精力,以十取一,目标始终如一。
心灵、精神的成长,是不喜欢理论而喜欢情感的,是排斥抽象而 接纳形象的。情感是心灵的核心,而情感主要不是从认识中获取,而是从情境中体验得来的。体验学习是极其重要的素质学,时时处处都能进行这种学习。
jijiu   2005-09-15 18:59:52 阅读:409  评论:1  引用:0
这是一个变幻难测的世纪,这是一个催人奋进的时代。科学技术的飞速发展,知识更替的日新月异。希望、困惑、机遇、挑战随时随地都有可能出现在每一个社会成员的生活之中。抓住机遇,寻求发展,迎接挑战,适应变化的制胜法宝就是学习——依靠自己学习,终身学习。
jijiu   2005-09-15 18:59:04 阅读:333  评论:0  引用:0
人生南北多歧路,将相神仙,也要凡人做。百代兴亡朝复暮,江风吹倒前朝树。功名富贵无凭据,费尽心情,总把流光误。浊酒三杯沉醉去,水流花谢知何处。
人生富贵功名,是身外之物。但世人一见了功名,便舍着命去求他。及至到手之后,味同嚼蜡。自古及今,那一个是看得破的。
jijiu   2005-09-15 18:55:38 阅读:384  评论:0  引用:0
〖摘要:〗
一、static

  请先看下面这段程序:

public class Hello{
public static void main(String[] args){ //(1)
System.out.println("Hello,world!"); //(2)
}
}

  看过这段程序,对于大多数学过Java 的从来说,都不陌生。即使没有学过Java,而学过其它的高级语言,例如C,那你也应该能看懂这段代码的意思。它只是简单的输出“Hello,world”,一点别的用处都没有,然而,它却展示了static关键字的主要用法。

  在1处,我们定义了一个静态的方法名为main,这就意味着告诉Java编译器,我这个方法不需要创建一个此类的对象即可使用。你还得你是怎么运行这个程序吗?一般,我们都是在命令行下,打入如下的命令(加下划线为手动输入):

javac Hello.java
java Hello
Hello,world!

  这就是你运行的过程,第一行用来编译Hello.java这个文件,执行完后,如果你查看当前,会发现多了一个Hello.class文件,那就是第一行产生的Java二进制字节码。第二行就是执行一个Java程序的最普遍做法。执行结果如你所料。在2中,你可能会想,为什么要这样才能输出。好,我们来分解一下这条语句。(如果没有安装Java文档,请到Sun的官方网站浏览J2SE API)首先,System是位于java.lang包中的一个核心类,如果你查看它的定义,你会发现有这样一行:public static final PrintStream out;接着在进一步,点击PrintStream这个超链接,在METHOD页面,你会看到大量定义的方法,查找println,会有这样一行:

public void println(String x)。

  好了,现在你应该明白为什么我们要那样调用了,out是System的一个静态变量,所以可以直接使用,而out所属的类有一个println方法。

静态方法

  通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法。如下所示:

class Simple{
static void go(){
System.out.println("Go...");
}
}
public class Cal{
public static void main(String[] args){
Simple.go();
}
}

  调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。

静态变量

  静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了。看下面这段代码:

class Value{
static int c=0;
static void inc(){
c++;
}
}
class Count{
public static void prt(String s){
System.out.println(s);
}
public static void main(String[] args){
Value v1,v2;
v1=new Value();
v2=new Value();
prt("v1.c="+v1.c+" v2.c="+v2.c);
v1.inc();
prt("v1.c="+v1.c+" v2.c="+v2.c);
}
}

  结果如下:

v1.c=0 v2.c=0
v1.c=1 v2.c=1

  由此可以证明它们共享一块存储区。static变量有点类似于C中的全局变量的概念。值得探讨的是静态变量的初始化问题。我们修改上面的程序:

class Value{
static int c=0;
Value(){
c=15;
}
Value(int i){
c=i;
}
static void inc(){
c++;
}
}
class Count{
public static void prt(String s){
System.out.println(s);
}
Value v=new Value(10);
static Value v1,v2;
static{
prt("v1.c="+v1.c+" v2.c="+v2.c);
v1=new Value(27);
prt("v1.c="+v1.c+" v2.c="+v2.c);
v2=new Value(15);
prt("v1.c="+v1.c+" v2.c="+v2.c);
}

public static void main(String[] args){
Count ct=new Count();
prt("ct.c="+ct.v.c);
prt("v1.c="+v1.c+" v2.c="+v2.c);
v1.inc();
prt("v1.c="+v1.c+" v2.c="+v2.c);
prt("ct.c="+ct.v.c);
}
}

运行结果如下:

v1.c=0 v2.c=0
v1.c=27 v2.c=27
v1.c=15 v2.c=15
ct.c=10
v1.c=10 v2.c=10
v1.c=11 v2.c=11
ct.c=11

  这个程序展示了静态初始化的各种特性。如果你初次接触Java,结果可能令你吃惊。可能会对static后加大括号感到困惑。首先要告诉你的是,static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何。正如在程序中所表现的,虽然v出现在v1和v2的前面,但是结果却是v1和v2的初始化在v的前面。在static{后面跟着一段代码,这是用来进行显式的静态变量初始化,这段代码只会初始化一次,且在类被第一次装载时。如果你能读懂并理解这段代码,会帮助你对static关键字的认识。在涉及到继承的时候,会先初始化父类的static变量,然后是子类的,依次类推。非静态变量不是本文的主题,在此不做详细讨论,请参考Think in Java中的讲解。

静态类

  通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。如下代码所示:

public class StaticCls{
public static void main(String[] args){
OuterCls.InnerCls oi=new OuterCls.InnerCls();
}
}
class OuterCls{
public static class InnerCls{
InnerCls(){
System.out.println("InnerCls");
}
}
}

  输出结果会如你所料:

InnerCls

  和普通类一样。内部类的其它用法请参阅Think in Java中的相关章节,此处不作详解。

二、this & super

  在上一篇拙作中,我们讨论了static的种种用法,通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的。好了,现在开始讨论this&super这两个关键字的意义和用法。

  在Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则非super莫属。由于this与super有如此相似的一些特性?。另外,还可以用“this.方法名”来引用当前对象的某个方法,但这时this就不是必须的了,你可以直接用方法名来访问那个方法,编译器会知道你要调用的是那一个。下面的代码演示了上面的用法:

public class DemoThis{
private String name;
private int age;
DemoThis(String name,int age){
setName(name); //你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的
setAge(age);
this.print();
}
public void setName(String name){
this.name=name;//此处必须指明你要引用成员变量
}
public void setAge(int age){
this.age=age;
}
public void print(){
System.out.println("Name="+name+" Age="+age);//在此行中并不需要用this,因为没有会导致混淆的东西
}
public static void main(String[] args){
DemoThis dt=new DemoThis("Kevin","22");
}
}

  这段代码很简单,不用解释你也应该能看明白。在构造函数中你看到用this.print(),你完全可以用print()来代替它,两者效果一样。下面我们修改这个程序,来演示super的用法。

class Person{
public int c;
private String name;
private int age;
protected void setName(String name){

继续阅读其余的  16233 字
jijiu   2005-09-13 20:05:30 阅读:322  评论:0  引用:0


public 公共(开放),在任何其它对象或类中的任何其它成员函数都可以调用的公共成员函数。 当定义该成员函数的类层次结构之外的对象和类必须访问它时。 (或你想让的话)

protected 受保护 受保护的成员函数可以由定义它的类中或其任何子类中的任何成员函数调用。 当成员函数提供在类层次结构内而非外部所需要的行为时。

private 专用(私有) 成员函数只可以由与它在同一类中定义的其它成员函数调用,而在子类中的成员函数不能调用它。 当成员函数提供特定于某个类的行为时。 专用成员函数通常是为了封装一个特定行为而再加工(也称为重组)类中其它成员函数的行为结果。

缺省 无关键字 简单地使其为空白 成员函数对于同一包中的其它所有类实际上都是公共的,但是对该包外部的类是专用的。 有时,它称为包可见性或友好的可见性。 这是一个有趣的功能,但要小心使用。 在构建实现诸如“客户”等具有凝聚力的商业概念的域组件、类集合时,我会用它将访问权限定在仅组件/软件包内的类。

interface

是方法定义和常量值的集合 。通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系 。
通过接口可以指明多个类需要实现的方法。
通过接口可以了解对象的交互界面,而不需了解对象所对应的类。

java不支持多重继承(一个类可以是多个类的子类),用接口实现其多重继承。

在类的申明中用implements来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,用,分隔

成员方法

static:不需要实列化即可引用(类成员),其他则为(实例成员)
abstrace和final,是否可重载(可以和不可以)
native:把java代码和其他语言的代码集成起来
synchronized:控制多个并发线程对共享数据的访问
throwsExceptionList:列外处理

this :引用当前对象
super:引用当前对象的父类

使用情况:
(1) super.variable //用来访问父类被隐藏的成员变量
(2) super.Method([paramlist]) //用来调用父类中被重载的方法
(3) super.([paramlist]) //调用父类中的构造函数

在类方法中(static),不能使用this或super修饰符

java.lang.object类

1.equals():比较状态和功能上的相同

Integer one = new Integer(1) , anotherOne = new Integer(1);
if(one.equal(anotherOne)){
System.pringln(""objects are equal");} //return true

2.getClass()

是final方法,
void printClassName(object obj)
{
System.out.println("The object's class is
"+obj.getClass().getName();
}

创建一个类的实例,所创建的对象可以是任何类

object createNewInstanceof(object obj)
{
retuen obj.getClass().newInstance();
}

3.toString()

返回对象的字符串表示

System.out.println(Thread.currentThread().toString());

4.finalize();

5.notify(),notifyAll(),wait() 用于多线程中的同步

//成员变量

static:类变量
final:常量
volatile:共享变量


abstract类

abstract类必须被继承,方法必须被重载

它不应该被实列化为一个对象。

number就是一个abstract类

final类

final类不能被继承

如果你认为一个类的定义已经很完美,不需要再生成它的子类,这时也应把它修饰为final类


extends

通过在类的声明中加入extends子句来创建一个类的子类

子类可以继承父类中访问权限设定为public,protected,friendly的成员变量和方法,但是不能继承访问权限为private的成员变量和方法。





jijiu   2005-09-13 19:43:50 阅读:453  评论:0  引用:0
Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。

举个例子,我们都编过Hello World

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。

我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。

此外,我对于staic,public,private,Exception,try{ }catch {}finally{}等等等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

其中特别值得一提的是JDK有一个非常棒的调试功能,-verbose
java –verbose
javac –verbose 以及其它很多JDK工具都有这个选项
-verbose 可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。

另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。

所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。



jijiu   2005-09-13 19:32:02 阅读:702  评论:1  引用:0
〖摘要:〗
Java Learning Path (一)、工具篇

一、 JDK (Java Development Kit)

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掌握好。

1、 JDK的下载和安装
JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html ,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:http://java.sun.com/j2se/1.4.2/download.html。

下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。这样JDK就安装好了。

2、 JDK的命令工具
JDK的最重要命令行工具:
java: 启动JVM执行class
javac: Java编译器
jar: Java打包工具
javadoc: Java文档生成器
这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。


二、 JDK Documentation

Documentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。


三、 应用服务器(App Server)

App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:

1、 Tomcat
Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:

Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:http://jakarta.apache.org/tomcat/ ,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/ 。

下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:

JAVA_HOME=C:\j2sdk1.4.2
CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录)

这样就安装好了,启动Tomcat运行CATALINA_HOME\bin\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。

Tomcat提供了两个Web界面的管理工具,URL分别是:
http://localhost:8080/admin/index.jsp
http://localhost:8080/manager/html
在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\conf\tomcat-users.xml这个文件,加入如下几行:

<role rolename="manager"/>
<role rolename="admin"/>
<user username="robbin" password="12345678" roles="admin,manager,tomcat"/>

这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。

2、 BEA Weblogic
Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,.../edocs.bea.com/ 。

3、 IBM Webshpere
Websphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ,Websphere的下载连接:http://www7b.software.ibm.com/wsdd/...WASsupport.html 。

4、 Jboss
Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然...n.com/idea.html


四、 Java应用的运行环境

Java的应用可以简单分为以下几个方面:

1、 Java的桌面应用
桌面应用一般仅仅需要JRE的支持就足够了。

2、 Java Web应用
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
Browser层:浏览器显示用户页面
Web层:运行Servlet/JSP
DB层:后端数据库,向Java程序提供数据访问服务

3、 Java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
Browser层:浏览器显示用户页面
Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
Web层:运行Servlet/JSP
EJB层:运行EJB,完成业务逻辑运算
DB层:后端数据库,向Java程序提供数据访问服务

4、 Java嵌入式应用
Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。


Java Learning Path(二)、书籍篇

学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。

在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。

对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。

对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

在所有的Java书籍当中,其实最最有用的,并不是O'reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。

对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当
继续阅读其余的  7536 字
jijiu   2005-09-13 19:26:55 阅读:65  评论:0  引用:0
我要试验一个新的模板