第二行中调用了System.getProperties( )。从帮助文档中可知,getProperties( )是System类的一个静态方法(static 方法),由于它是"静态"的,所以不必创建任何对象就可以调用该方法。在第三行,Properties对象有一个名为list( )的方法,它将自己的全部内容都发给一个PrintStream对象,该对象就是list()方法的参数。
第四行和第六行是典型的打印语句,其中第六行通过运算符"+"的重载来连接多个字符串对象,在java中只有当"+"运算符作用于字符串时在能够进行重载。但是让我们仔细观察下述语句:
System.out.println("Total Memory= "
+ rt.totalMemory( ) //打印总内存大小
+" Free Memory = "
+rt.freeMemory( )); //打印空闲内存大小
其中,totalMemory( )和freeMemory( )返回的是数值,并非String对象。如果将一个字符串与一个数值相加,结果会如何?在这种情况下,编译器会自动调用一个toString()方法,将该数值(int型或者float型)转换成字符串。经过这样处理以后,就可以用"+"进行字符串连接了。
main()的第五行通过调用Runtime的getRuntime()方法创建了一个Runtime对象,该对象中包含了内存等信息。