// Property.java
import java.util.*;
public class Property {
public static void main(String[] args) {
System.out.println(new Date());
Properties p = System.getProperties();
p.list(System.out);
System.out.println("--- Memory Usage:");
Runtime rt = Runtime.getRuntime();
System.out.println("Total Memory = "
+ rt.totalMemory()
+ " Free Memory = "
+ rt.freeMemory());
}
}
1: 在某些编程环境里,程序会在屏幕上一切而过,甚至没机会看到结果。 可将下面这段代码置于 main()的末尾,用它暂停输出:
try { Thread.currentThread().sleep(5 * 1000);
}catch(InterruptedException e) {}
}
它的作用是暂停输出 5 秒钟。这段代码涉及的一些概念要到本书后面才会讲 到。所以目前不必深究,只知道它是让程序暂停的一个技巧便可。
2 : 一个特殊的类库 会自动导入每个 Java 文件:java.lang。启动您的 Web 浏览器,查看由 Sun 提 供的用户文档(如果尚未从 http://www.java.sun.com 下载,或用其他方式安装 了 Java 文档,请立即下载)。在 packages.html 文件里,可找到 Java 配套提供 的所有类库名称。请选择其中的 java.lang。在“Class Index”下面,可找到属于 那个库的全部类的列表。由于 java.lang 默认进入每个 Java 代码文件,所以这 些类在任何时候都可直接使用。
3 :。如果不清楚一个特定的类在哪个类库里,或者想检视 所有的类,可在 Java 用户文档里选择“Class Hierarchy”(类分级结构)。在 Web 浏览器中,虽然要花不短的时间来建立这个结构,但可清楚找到与 Java 配 套提供的每一个类。随后,可用浏览器的“查找”(Find)功能搜索关键字“Date”。 经这样处理后,可发现我们的搜索目标以 java.util.Date 的形式列出。我们终于 知道它位于 util 库里,所以必须导入 java.util.*;否则便不能使用 Date。
4:观察 packages.html 文档最开头的部分(我已将其设为自己的默认起始页), 请选择 java.lang,再选 System。这时可看到 System 类有几个字段。若选择 out, 就可知道它是一个 static PrintStream 对象。由于它是“静态”的,所以不需要 我们创建任何东西。out 对象肯定是 3,所以只需直接用它即可。我们能对这个 out 对象做的事情由它的类型决定:PrintStream。PrintStream 在说明文字中以 一个超链接的形式列出,这一点做得非常方便。所以假若单击那个链接,就可看 到能够为 PrintStream 调用的所有方法。方法的数量不少,本书后面会详细介绍。 就目前来说,我们感兴趣的只有 println()。它的意思是“把我给你的东西打印到 控制台,并用一个新行结束”。所以在任何 Java 程序中,一旦要把某些内容打 印到控制台,就可条件反射地写上 System.out.println("内容")。
5:
类名与文件是一样的。若象现在这样创建一个独立的程序,文件中的一个类 必须与文件同名(如果没这样做,编译器会及时作出反应)。类里必须包含一个 名为 main()的方法,形式如下: public static void main(String[] args) {
13
其中,关键字“public”意味着方法可由外部世界调用(第 5 章会详细解释)。 main()的自变量是包含了 String 对象的一个数组。args 不会在本程序中用到,但 需要在这个地方列出,因为它们保存了在命令行调用的自变量。
6:程序的第一行非常有趣: System.out.println(new Date()); 请观察它的自变量:创建 Date 对象唯一的目的就是将它的值发送给 println()。一旦这个语句执行完毕,Date 就不再需要。随之而来的“垃圾收集器” 会发现这一情况,并在任何可能的时候将其回收。事实上,我们没太大的必要关 心“清除”的细节。
7:第二行调用了System.getProperties()。若用Web浏览器查看联机用户文档, 就可知道 getProperties()是 System 类的一个 static 方法。由于它是“静态”的, 所以不必创建任何对象便可调用该方法。无论是否存在该类的一个对象,static 方法随时都可使用。调用 getProperties()时,它会将系统属性作为 Properties 类 的一个对象生成(注意 Properties 是“属性”的意思)。随后的的句柄保存在一 个名为 p 的 Properties 句柄里。在第三行,大家可看到 Properties 对象有一个 名为 list()的方法,它将自己的全部内容都发给一个我们作为自变量传递的 PrintStream 对象。