【java】System类详解
Java 基础核心类System 类详解常见用法 使用场景 面试高频在 Java 开发中System类几乎每天都会使用例如System.out.println(Hello World);但很多人只知道println却忽略了System类其实提供了大量与 JVM、操作系统、IO、时间、环境变量相关的核心能力。本文将从基础 → 常用方法 → 实际场景 → 面试考点系统讲解System类。一、System 类是什么System位于java.lang.System特点属于Java 核心类库自动导入无需 import所有成员基本都是static不能实例化源码中有一段非常经典的定义publicfinalclassSystem{privateSystem(){}}说明final不能被继承private构造方法不能创建对象所以我们使用时都是System.xxx二、System 最常见的功能标准输出这是最常见的用法。System.out.println(Hello);System.out.print(Java);out 是什么publicstaticfinalPrintStreamout也就是说System.out本质是一个PrintStream打印流对象所以可以调用System.out.print()System.out.println()System.out.printf()示例System.out.printf(name%s age%d,Tom,20);输出nameTom age20三、System.in标准输入System.in用于读取控制台输入。类型publicstaticfinalInputStreamin常见用法是配合ScannerScannerscannernewScanner(System.in);Stringnamescanner.nextLine();System.out.println(name);示例ScannerscannernewScanner(System.in);System.out.print(请输入姓名);Stringnamescanner.nextLine();System.out.println(Hello name);运行请输入姓名Tom Hello Tom四、System.err错误输出流System.err是标准错误输出流。System.err.println(Error occurred!);区别输出流说明System.out正常输出System.err错误输出在控制台通常表现为out→ 普通颜色err→ 红色使用场景打印错误信息日志系统调试程序五、System.currentTimeMillis()高频用于获取当前时间戳毫秒longtimeSystem.currentTimeMillis();System.out.println(time);输出示例1710501023456含义当前时间距离1970-01-01 00:00:00 UTC的毫秒数。常见使用场景计算程序运行时间longstartSystem.currentTimeMillis();for(inti0;i1000000;i){Math.sqrt(i);}longendSystem.currentTimeMillis();System.out.println(耗时(end-start) ms);六、System.nanoTime()更精确获取纳秒级时间longstartSystem.nanoTime();// 执行代码longendSystem.nanoTime();System.out.println(end-start);区别方法精度用途currentTimeMillis毫秒获取当前时间nanoTime纳秒测量时间间隔面试常问计算代码执行时间用哪个答案nanoTime()因为它更精确。七、System.exit()程序终止用于终止 JVMSystem.exit(0);含义参数含义0正常退出非0异常退出示例System.out.println(Start);System.exit(0);System.out.println(End);输出StartEnd不会执行。八、System.arraycopy()高频用于数组快速复制方法System.arraycopy(src,srcPos,dest,destPos,length);参数说明参数含义src原数组srcPos原数组起始位置dest目标数组destPos目标起始位置length复制长度示例int[]a{1,2,3,4,5};int[]bnewint[5];System.arraycopy(a,0,b,0,5);System.out.println(Arrays.toString(b));输出[1, 2, 3, 4, 5]特点效率非常高底层使用native 方法九、System.getProperty()JVM 属性获取 JVM 属性。StringversionSystem.getProperty(java.version);System.out.println(version);常见属性属性含义java.versionJava版本os.name操作系统user.name当前用户user.dir当前工作目录示例System.out.println(System.getProperty(os.name));输出Windows 11十、System.getenv()环境变量获取操作系统环境变量。StringpathSystem.getenv(PATH);System.out.println(path);也可以获取全部环境变量MapString,StringenvSystem.getenv();十一、面试高频问题1System.out 是什么类型答案PrintStream2System 为什么不能实例化原因构造方法是 private3currentTimeMillis 与 nanoTime 区别方法作用currentTimeMillis获取当前时间nanoTime计算时间间隔4arraycopy 为什么比循环快因为底层是 native 方法 直接调用 JVM 实现十二、常见易错点1nanoTime 不能表示当前时间错误System.nanoTime();它只是一个时间计数器。2System.exit 会直接终止 JVM调用后finally 可能不执行线程会被强制结束3arraycopy 参数顺序很多人会写错srcPos destPos顺序必须记住。十三、总结System是 Java 中最重要的基础类之一核心能力包括功能方法控制台输出out控制台输入in错误输出err时间currentTimeMillis / nanoTime数组复制arraycopy程序退出exitJVM属性getProperty环境变量getenv一句话总结System 是 Java 与 JVM / 操作系统交互的核心桥梁。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2413741.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!