概述
在 JAVA入门深究之sysout中咱们深究了System.out.println,对于System类,可能这个类办法用的最多就是sout以及System.currentTimeMillis(),上面咱们在钻研一下这个类其余绝对重要办法。
罕用办法
arraycopy 数组拷贝
/**
@param src 源数组
@param srcPos 源数组中的起始地位。
@param dest 指标数组。
@param destPos 在指标数据中的起始地位。
@param length 要复制的数组元素的数量。
@exception IndexOutOfBoundsException 如果复制会导致在数组范畴之外拜访数据。
@exception ArrayStoreException 类型不匹配是,必须是数组类型
@exception NullPointerException
*/
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
示例:
int[] arr1 = { 6, 7, 8, 2, 4 };
int[] arr2 = { 3, 4,5, 8, 9 };
System.arraycopy(arr1, 1, arr2, 1, 3);
arr1[3] = 8;
for (int i = 0; i < 5; i++) {
System.out.print(arr2[i] + " ");
}
// 3 7 8 2 9
gc垃圾回收
用于运行jvm中的垃圾回收器,实现内存中垃圾革除
class Demo {
/**
* 垃圾回收器筹备开释内存的时候,会先调用finalize()
*/
@Override
public void finalize() {
System.out.println("gc is comming!!!");
}
}
public class HelloWorld {
public static void main(String[] args) {
new Demo();
System.gc();
}
}
getProperties()获取零碎属性
Properties properties = System.getProperties();
for (String key : properties.stringPropertyNames()) {
System.out.println(key + "=" + properties.getProperty(key));
}
//打印可参考最下方表格
当然能够通过System.getProperty(key)获取指定键值
String oName = System.getProperty("os.name");
System.out.println(oName);//Windows 10
System.setProperty(key,value) 能够设置键值对
System.setProperties(properties) 能够设置Properties对象
System.clearProperty(key) 依据key删除property
getSecurityManager()平安管理器
jvm运行到未知java程序时,为了避免恶意代码对系统影响,须要对运行代码权限进行管制,这样就要启用Java平安管理器
应用平安管理器,您能够管制对:
文件操作
反射设施
读/写IO
线程/线程组操作
套接字操作(监听,承受等)
创立您本人的类加载器的能力。
对于每一个这样的事件,SecurityManager中都有一个check *()办法
自定义 securityManager
private static class MySecurityManager extends SecurityManager {
@Override
public void checkRead(String file) {
if ("java".contains(file)) {
throw new AccessControlException("cannot read file:" + file);
}
super.checkRead(file);
}
}
public static void main(String[] args) throws FileNotFoundException {
//install
System.setSecurityManager(new MySecurityManager());
//read
InputStream in = new FileInputStream(new File("Hello.java"));
//uninstall
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
System.setSecurityManager(null);
}
}
System.setout重定向输入
以下代码会将打印内容输入到txt文本中
PrintStream pStream = new PrintStream("F:/hcx.txt");
pStream.println("666666666666");
System.setOut(pStream);
System.out.println("88888888")
//hcx.txt内容
//666666666666
//88888888
小结
System还有很多办法没有列出来,不过日常应用已足够了,心愿看完有所获。如有谬误,请斧正,谢谢
参考
System.properties参考值:
建
值
形容
java.runtime.name
Java(TM) SE Runtime Environment
sun.boot.library.path
C:\Program Files\Java\jdk1.8.0_231\jre\bin
java.vm.version
25.231-b11
Java虚拟机实现版本
java.vm.vendor
Oracle Corporation
Java 虚拟机实现供应商
java.vendor.url
http://java.oracle.com/
Java 供应商的URL
path.separator
;
门路分隔符(在UNIX零碎中是“:”)
java.vm.name
Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg
sun.io
user.country
CN
国家
sun.java.launcher
SUN_STANDARD
java.vm.specification.name
Java Virtual Machine Specification
Java虚拟机标准名称
user.dir
D:\chrome download\dubbo-admin-develop\docker-file-springboot
用户当前工作目录
java.runtime.version
1.8.0_231-b11
jdk版本
java.awt.graphicsenv
sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs
C:\Program Files\Java\jdk1.8.0_231\jre\lib\endorsed
endorsed目录
os.arch
amd64
操作系统的架构
java.io.tmpdir
C:\Users\12640\AppData\Local\Temp\
io操作历史文件
java.vm.specification.vendor
Oracle Corporation
os.name
Windows 10
零碎版本
sun.jnu.encoding
GBK
java.library.path
C:\Program Files\Java\jdk1.8.0_231\bin;C:\windows\Sun ……..
java.specification.name
Java Platform API Specification
Java运行时环境标准名称
java.class.version
52.0
Java类格局版本号
sun.management.compiler
HotSpot 64-Bit Tiered Compilers
os.version
10.0
java.awt.printerjob
sun.awt.windows.WPrinterJob
file.encoding
UTF-8
java.specification.version
1.8
user.name
12640
用户的账户名称
java.class.path
C:\Program Files\Java\jdk1.8.0 ……
java.vm.specification.version
1.8
java虚拟机标准版本
sun.arch.data.model
64
java.home
C:\Program Files\Java\jdk1.8.0_231\jre
Java装置目录
sun.java.command
com.example.HelloWorld 12
java.specification.vendor
Oracle Corporation
user.language
zh
用户语言
awt.toolkit
sun.awt.windows.WToolkit
java.vm.info
mixed mode
混合模式执行
java.version
1.8.0_231
java.ext.dirs
C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext;C:\windows\Sun\Java\lib\ext
sun.boot.class.path
C:\Program Files\Java\jdk1.8.0_231\jre …..
java.vendor
Oracle Corporation
java.vendor.url.bug
http://bugreport.sun.com/bugr…
sun.cpu.endian
little
sun.io.unicode.encoding
UnicodeLittle
sun.desktop
windows
sun.cpu.isalist
amd64
微信公众号【Java搬砖小伙子】关注一波,更多资源等着你哦
您的反对是我后退路上最大的能源,谢谢!