public final class System { private System() {} public final static PrintStream out = getConsoleOutput(); private static PrintStream getConsoleOutput() { return new PrintStream(new SystemOutputStream()); } public final static PrintStream err = out; public static native long currentTimeMillis(); public static native void arraycopy(Object src, int src_position, Object dst, int dst_position, int length); public static native int identityHashCode(Object x); public static String getProperty(String key) { if (key == null) { throw new NullPointerException("key can't be null"); } if (key.equals("")) { throw new IllegalArgumentException("key can't be empty"); } return getProperty0(key); } private native static String getProperty0(String key); public static void exit(int status) { Runtime.getRuntime().exit(status); } public static void gc() { Runtime.getRuntime().gc(); } }
-------------------------------------------
System.out使用SystemOutputStream。我们看看它是怎样的:
public class SystemOutputStream extends OutputStream { synchronized public void write(int c) throws IOException { putchar((char) c); } private static native void putchar(char c); }
- 可以看到跟C里面的putchar是一样的,实际上是调用C的putchar。
- System是静态类。提供系统的便利方法。
- System没有输入流。注意手机并没有控制台,像window下的dos或者linux的bash shell。没有该方面的功能。
- 当程序运行在手机上,调用System.out.println()是不会被显示的。只仅仅调试的时候才有控制台。但该控制台只能输出。