0
点赞
收藏
分享

微信扫一扫

Java System 类

斗米 2022-12-22 阅读 153


System 类基本上天天用,但是平时很少去关注。

方法摘要

​static void​

arraycopy(Object src, int srcPos, Object​​ 

          从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

​static String​

clearProperty(String​​ 

          移除指定键指示的系统属性。

​static Console​

console()​​ 

          返回与当前 Java 虚拟机关联的唯一 ​​Console​​ 对象(如果有)。

​static long​

currentTimeMillis()​​ 

          返回以毫秒为单位的当前时间。

​static void​

exit(int status)​​ 

          终止当前正在运行的 Java 虚拟机。

​static void​

gc()​​ 

          运行垃圾回收器。

​static Map<String,String>​

getenv()​​ 

          返回一个不能修改的当前系统环境的字符串映射视图。

​static String​

getenv(String​​ 

          获取指定的环境变量值。

​static Properties​

getProperties()​​ 

          确定当前的系统属性。

​static String​

getProperty(String​​ 

          获取指定键指示的系统属性。

​static String​

getProperty(String key, String​​ 

          获取用指定键描述的系统属性。

​static SecurityManager​

getSecurityManager()​​ 

          获取系统安全接口。

​static int​

identityHashCode(Object​​ 

          返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。

​static Channel​

inheritedChannel()​​ 

          返回从创建此 Java 虚拟机的实体中继承的信道。

​static void​

load(String​​ 

          从作为动态库的本地文件系统中以指定的文件名加载代码文件。

​static void​

loadLibrary(String​​ 

          加载由 ​​libname​​ 参数指定的系统库。

​static String​

mapLibraryName(String​​ 

          将一个库名称映射到特定于平台的、表示本机库的字符串中。

​static long​

nanoTime()​​ 

          返回最准确的可用系统计时器的当前值,以毫微秒为单位。

​static void​

runFinalization()​​ 

          运行处于挂起终止状态的所有对象的终止方法。

​static void​

runFinalizersOnExit(boolean value)​​ 

          已过时。 该方法具有固有的不安全性。它可能对正在使用的对象调用终结方法,而其他线程同时正在操作这些对象,从而导致不正确的行为或死锁。

​static void​

setErr(PrintStream​​ 

          重新分配“标准”错误输出流。

​static void​

setIn(InputStream​​ 

          重新分配“标准”输入流。

​static void​

setOut(PrintStream​​ 

          重新分配“标准”输出流。

​static void​

setProperties(Properties​​ 

          将系统属性设置为 ​​Properties​​ 参数。

​static String​

setProperty(String key, String​​ 

          设置指定键指示的系统属性。

​static void​

setSecurityManager(SecurityManager​​ 

          设置系统安全性。

使用很简单,主要来看看 getProperties() 方法:

public static void main(String[] args) {
Properties properties = System.getProperties();
Set<Object> objects = properties.keySet();
objects.forEach(obj-> System.out.println(obj));
}

输出结果有很多属性,在 ​​java的System类常用方法​​中一一解释了:

Java System 类_系统属性

来看几个有趣的属性:

public static void main(String[] args) {
/* Properties properties = System.getProperties();
Set<Object> objects = properties.keySet();
objects.forEach(obj-> System.out.println(obj));*/
String s1 = System.getProperty("user.dir");
String s2 = System.getProperty("file.separator");
System.out.println("user.dir--->"+s1);
System.out.println("file.separator--->"+s2);
}

输出结果:

user.dir--->C:\Users\Dongguabai\Downloads\demo
file.separator--->\

先看 user.dir,输出的结果就是当前工作的目录,与 idea 这里的目录相同:

Java System 类_System_02

一个很常见的应用就是可以获取当前工程的 classes 绝对路径:

String classesPath = System.getProperty("user.dir")
+ File.separator + "target" + File.separator + "classes";

Java System 类_System_03

因为在嵌入式 Servlet 容器的时候,是需要获取classpath 的。

还有一个就是 file.separator,因为不同系统的文件分隔符是不一样的,这个就类似于 File.separator。

 


举报

相关推荐

0 条评论