System类
System 类是 JDK 中提供的系统类,该类是用 final 修饰的,因此不允许被继承。System 类提供了很多系统层面的操作方法,并且这些方法全部都是静态的。System 类提供的较常用方法如表11.11所示。本节重点讲解利用 System 类在控制台中输出和计时这两个操作。

在控制台中输出字符
System 类提供了标准输入、标准输出和错误输出流,也就是说,System 类提供了 3 个静态对象:in、out 和 err。本书中的代码多次使用了这些对象,最常见的就是 out 对象。在控制台中输出字符串,输出的方法有两种,下面分别进行讲解。
不会自动换行的print()方法
print() 方法的语法如下:
System..print("Hello!");
此方法输出 “Hello” 文字,输出完毕后,光标会停留在 “Hello” 文字末尾,不会自动换行。
可以自动换行的println()方法
println() 方法在 print 后面加上了 “ln” 后缀(就是 line 的简写),语法如下:
System.out.println("书籍是人类进步的阶梯!");
此方法输出 “书籍是人类进步的阶梯!” 后会自动换行。光标停留在下一行的开头。print() 方法与 println() 方法输出的对比效果如表11.12所示

综上所述,Java 输出换行的方法有以下两种:
System.out.print("\n"); // 利用换行符\n实现换行
System.out.println(); // 空参数即可实现换行
“System.out.println("\n");” 会输出两个空行;“System.out.print();” 无参数会报错。 |
计时
System.currentTimeMillis() 方法可以获取自 1970 年 1 月 1 日零点至今的毫秒数。虽然 Date 日期类也有类似的方法,但代码会比 System 类多,因此 System.currentTimeMillis() 方法是为获取当前毫秒数最常用的方法。因为该方法的返回值精确到毫秒,所以可以利用该方法来记录程序的运行时间。
【例11.14】查看执行一万次字符串拼接所消耗的时间(实例位置:资源包\TM\sl\11\14)
创建字符串对象,循环一万次对该字符串做拼接操作,利用 System.currentTimeMillis() 方法记录循环消耗的时间,具体代码如下:
public class SystemTimeDemo {
public static void main(String[] args) {
long start = System.currentTimeMillis(); // 程序开始记录时间
String str = null; // 创建null字符串
for (int i = 0; i < 10000; i++) { // 循环一万次
str += i; // 字符串与循环变量拼接
}
long end = System.currentTimeMillis(); // 记录循环结束时间
System.out.println("循环用时:" + (end - start) + "毫秒");
}
}
因为性能强的处理器计算时间短,性能差的处理器计算时间长,所以该实例在不同计算机上的结果是会发生变化的,笔者写稿时的运行结果如下:
循环用时:133毫秒
编程训练(答案位置:资源包\TM\sl\11\编程训练)
【训练5】输出颜文字 在控制台中输出如下内容:
(^_^) / (T_T)
【训练6】对比执行效率 比较“+=”运算符和String类的concat()方法哪一个拼接字符串的执行效率更高。