System类的使用
- system中代表程序所在系统,提供了对应的一些系统属性信息和系统操作。
- system类不能手动创建对象
- System类中的都是静态方法
long currentTimeMillis() //获取当前时间戳,单位为毫秒,获取当前系统时间与1970年01月01日00:00点之前的毫秒差值
long nanoTime() //获取当前时间戳,单位为纳秒
lineSeparator() //行分隔符,等同于System.getProperty("line.separator")
runFinalization() //内部调用了Runtime.getRuntime().runFinalization()方法,虚拟机会尽最大努力去调用垃圾对象的 finalize() 方法,但不能保证其一定执行
load(String filepath) //用于加载库文件,参数为库文件的绝对路径,库文件 (动态链接库(ddl: Dynamic Link Library)),是一个包含可由多个程序同时使用的代码和数据的库,实现了程序模块化
loadLibrary(String libname) //用于加载库文件,参数为库文件名,该库文件必须在java.library.path所指向的路径中
System.mapLibraryName(String libname) //将库名称映射到特定的字符串中
getenv() //获取操作系统的环境变量 (即本地系统中的环境变量),参数为空:获取操作系统的所有环境变量。参数不为空:获取操作系统的指定环境变量 (例如:参数为 "path")。
setIn(InputStream in) //重新分配标准输入流
setErr(PrintStream err) //重新分配标准错误输出流
setOut(PrintStream out) //重新分配标准输出流
System.err //标准错误输出流,没有缓存,会立即输出
System.out //标准输出流,有缓存,不一定会立即输出
identityHashCode(Object obj) //根据对象<font color=red>内存地址</font>来计算得到哈希值,注意,这里需要与 <font color=red>hashCode()</font> 方法进行区分,当一个类没有重写 Object 类的 hashCode() 方法时,其 hashCode() 方法与 identityHashCode() 方法得到的值是一致的,当一个类重写了 Object 类的 hashCode() 方法时,则其 hashCode() 方法得到的值由其实现逻辑决定,一般不再与 identityHashCode() 方法得到的值相同,当 null 调用 hashCode() 方法时,会报空指针异常;当调用 identityHashCode(null) 方法时,会返回 0
setSecurityManager(SecurityManager securityManager) //设置安全管理器,接收一个SecurityManager类型的参数
getSecurityManager() //获取安全管理器
inheritedChannel() //返回从创建此 Java 虚拟机的实体继承得到的 channel
void exit(int status) //参数传入一个数字即可。通常传入0记为正常状态,其它为异常状态。
void gc() //用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
runFinalization() //运行处于挂起终止状态的所有对象的终止方法。方法没有返回值。
runFinalizersOnExit(boolean value) //已过时。 该方法具有固有的不安全性。它可能对正在使用的对象调用终结方法,而其他线程同时正在操作这些对象,从而导致不正确的行为或死锁。
notive void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) //用来实现将源数组部分元素复制到目标数组的指定位置。各个参数功能如下:Object src:要复制的原数组;Int srcPos:数组源的起始索引;Object dest:复制后的目标数组;int destPos:目标数组起始索引;int length,指定复制的长度;
setProperties(Properties props) //设置虚拟机 (JVM) 的环境变量(批量)
setProperty(String key, String value) //设置虚拟机 (JVM) 的环境变量(单个)
clearProperty(String key) //清除设置的虚拟机 (JVM) 的环境变量
console() //从控制台设备读取字符信息,只能通过命令执行,在 IDE 中会报错
String getProperties() //确定当前的系统属性
String getProperty(String key) //获取相应的属性
各个属性对应:
System.console()
-
从控制台设备读取字符信息,只能通过命令执行,在 IDE 中会报错
Console console = System.console(); System.out.println("please input your name:"); String name = console.readLine(); System.out.println("please input password:"); char[] chars = console.readPassword(); String password = String.valueOf(chars); System.out.println("your name:" + name + " your password:" + password);
-
在cmd中先用 javac 命令进行编译,再用 java 命令进行运行