JavaSE基础十一-常用的API(一)

本文深入讲解Java中的Scanner、System及Runtime API使用技巧,包括输入输出流管理、系统属性访问、资源复制、时间戳获取、垃圾回收调用及运行时环境信息查询等关键知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaAPI:

 

导包:除Java.lang核心包外,其他包都需要手动导入

一.Scanner:(一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。)

package com.hw.basicAPI;

import java.util.Scanner;

public class ScannerAPI {

    public static void main(String[] args) {
        //System.in代表标准输入,即键盘输入
        Scanner scan = new Scanner(System.in);
        String s = scan.nextLine();   //nextLine()是返回字符串,nextInt()返回整数,....
        System.out.println(s);
        String ss = scan.next();
        System.out.println(ss);
        while (scan.hasNext()){    //hasNext()判断是否有下一个字符串,hasNextInt()判断是否有下一个整数,......
            System.out.println("键盘输入的是:" + scan.next());
        }

    }
}


123 456            //输入值
123 456
111 222            //输入值
111
键盘输入的是:222    
000 999            //输入值
键盘输入的是:000
键盘输入的是:999



结论:
由结果很容易看出,
nextLine()是扫描输入的一行(以回车为结束符),
next()是扫描一个字符串(以空格为结束符)。

二.System:(提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法)

注意:查看API,in,out,err为静态常量,类型都是流:

public final static InputStream in;
//标准输入流
public final static PrintStream out;
//标准输出流
public final static PrintStream err;
//标准错误流

参考API文档:

 

package com.hw.basicAPI;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Arrays;
import java.util.Properties;

public class SystemAPI {

    public static void main(String[] args) throws Exception{
        Log.d("验证三种标准流:");
        Log.d(System.in instanceof InputStream);
        System.out.println("123");
        System.err.println("456");      //显红色

        Log.d();
        Log.d("验证复制数组:");
        int[] a = {1,2,3,4,5};
        int[] b = new int[5];
        System.arraycopy(a,0,b,0,5);
        Log.d("复制结果:" + Arrays.toString(b));

        Log.d();
        Log.d("验证获取当前时间戳:");
        Log.d(System.currentTimeMillis());  //毫秒级
        Log.d(System.nanoTime());           //纳秒级

        Log.d();
        Log.d("获取各种类型哈希码:");
        Log.d(System.identityHashCode("6666"));

        Log.d();
        Log.d("获取环境变量:");
        Log.d(System.getenv());         //返回Map<String,String>
        Log.d("查看JAVA_HOME的值:" + System.getenv("JAVA_HOME"));

        Log.d();
        Log.d("获取系统属性:");
        Properties p = System.getProperties();
        p.list(System.out);
        Log.d("将系统属性保存到文件中");
        p.store(new FileOutputStream("pro.txt"),"System Properties");
        Log.d("查看os.name的值:" + System.getProperty("os.name"));

        Log.d();
        Log.d("强制垃圾回收");
        System.gc();
    }
}

结果:

验证三种标准流:
true
123
456

验证复制数组:
复制结果:[1, 2, 3, 4, 5]

验证获取当前时间戳:
1562143253517
8898671877600

获取各种类型哈希码:
460141958

获取环境变量:
{USERDOMAIN_ROAMINGPROFILE=DESKTOP-4PR0FDK, LOCALAPPDATA=C:\Users\pengjun\AppData\Local, MSMPI_BIN=C:\Program Files\Microsoft MPI\Bin\, PROCESSOR_LEVEL=6, USERDOMAIN=DESKTOP-4PR0FDK, FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer, LOGONSERVER=\\DESKTOP-4PR0FDK, JAVA_HOME=D:\application\develop\Java, SESSIONNAME=Console, ALLUSERSPROFILE=C:\ProgramData, WebStorm=D:\application\develop\JetBrains\WebStorm 2018.3.5\bin;, PROCESSOR_ARCHITECTURE=AMD64, PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules, SystemDrive=C:, OneDrive=C:\Users\pengjun\OneDrive, APPDATA=C:\Users\pengjun\AppData\Roaming, USERNAME=pengjun, ProgramFiles(x86)=C:\Program Files (x86), CommonProgramFiles=C:\Program Files\Common Files, Path=D:\application\develop\Xftp6\;D:\application\develop\Xshell\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Microsoft MPI\Bin\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\application\develop\Java\bin;D:\application\develop\Java\jre\bin;D:\application\develop\mysql-8.0.15-winx64\bin;D:\application\develop\sdk;D:\application\develop\sdk\tools;D:\application\develop\sdk\platform-tools;C:\Program Files\Microsoft VS Code\bin;D:\application\develop\nodejs\;D:\application\develop\mongoDB\bin;D:\application\develop\Git\cmd;D:\application\develop\apache-tomcat-7.0.94\bin;D:\application\common\hydra\thc-hydra-windows-master;D:\application\develop\Anaconda3;D:\application\develop\Anaconda3\Library\mingw-w64\bin;D:\application\develop\Anaconda3\Library\usr\bin;D:\application\develop\Anaconda3\Library\bin;D:\application\develop\Anaconda3\Scripts;D:\application\develop\JetBrains\PyCharm 2018.3.5\bin;D:\application\develop\JetBrains\PyCharm Community Edition 2018.3.5\bin;C:\Users\pengjun\AppData\Roaming\npm;D:\application\develop\JetBrains\WebStorm 2018.3.5\bin;C:\Users\pengjun\AppData\Local\GitHubDesktop\bin, FPS_BROWSER_USER_PROFILE_STRING=Default, PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, PyCharm=D:\application\develop\JetBrains\PyCharm 2018.3.5\bin;, DriverData=C:\Windows\System32\Drivers\DriverData, OS=Windows_NT, OneDriveConsumer=C:\Users\pengjun\OneDrive, COMPUTERNAME=DESKTOP-4PR0FDK, CATALINA_HOME=D:\application\develop\apache-tomcat-7.0.94, PROCESSOR_REVISION=9e0a, CLASSPATH=.;D:\application\develop\Java\lib\dt.jar;D:\application\develop\Java\lib\tools.jar;, CommonProgramW6432=C:\Program Files\Common Files, ComSpec=C:\WINDOWS\system32\cmd.exe, PyCharm Community Edition=D:\application\develop\JetBrains\PyCharm Community Edition 2018.3.5\bin;, ProgramData=C:\ProgramData, ProgramW6432=C:\Program Files, HOMEPATH=\Users\pengjun, SystemRoot=C:\WINDOWS, TEMP=C:\Users\pengjun\AppData\Local\Temp, HOMEDRIVE=C:, PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 10, GenuineIntel, USERPROFILE=C:\Users\pengjun, TMP=C:\Users\pengjun\AppData\Local\Temp, CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files, ProgramFiles=C:\Program Files, PUBLIC=C:\Users\Public, NUMBER_OF_PROCESSORS=2, windir=C:\WINDOWS, =::=::\}
查看JAVA_HOME的值:D:\application\develop\Java

获取系统属性:
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=D:\application\develop\Java\jre\bin
java.vm.version=25.201-b09
java.vm.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
path.separator=;
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg=sun.io
user.script=
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=D:\workspace\MyEclipse 2017 CI\JavaSE...
java.runtime.version=1.8.0_201-b09
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:\application\develop\Java\jre\lib\e...
os.arch=amd64
java.io.tmpdir=C:\Users\pengjun\AppData\Local\Temp\
line.separator=

java.vm.specification.vendor=Oracle Corporation
user.variant=
os.name=Windows 10
sun.jnu.encoding=GBK
java.library.path=D:\application\develop\Java\bin;C:\WI...
java.specification.name=Java Platform API Specification
java.class.version=52.0
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
os.version=10.0
user.home=C:\Users\pengjun
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=UTF-8
java.specification.version=1.8
user.name=pengjun
java.class.path=D:\application\develop\Java\jre\lib\c...
java.vm.specification.version=1.8
sun.arch.data.model=64
java.home=D:\application\develop\Java\jre
sun.java.command=com.hw.basicAPI.SystemAPI
java.specification.vendor=Oracle Corporation
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode
java.version=1.8.0_201
java.ext.dirs=D:\application\develop\Java\jre\lib\e...
sun.boot.class.path=D:\application\develop\Java\jre\lib\r...
java.vendor=Oracle Corporation
file.separator=\
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64
将系统属性保存到文件中
查看os.name的值:Windows 10

强制垃圾回收

三.Runtime:(每个Java应用程序都有一个Runtime类的Runtime,应用程序与运行应用程序的环境进行接口。 当前运行时可以从getRuntime方法获得)

package com.hw.basicAPI;

import java.io.IOException;

public class BasicRuntime {

    public static void main(String[] args) {
        //唯一的静态方法,获取与当前Java程序关联的运行时对象
        Runtime r = Runtime.getRuntime();
        Log.d("jvm处理器数量:" + r.availableProcessors());
        Log.d("jvm空闲内存数:" + r.freeMemory() / (1024.0 * 1024 *1024) + "GB");
        Log.d("jvm总内存数:" + r.totalMemory() / (1024.0 * 1024 *1024) + "GB");
        Log.d("jvm可用最大内存数:" + r.maxMemory() / (1024.0 * 1024 *1024) + "GB");

        Log.d();
        Log.d("启动记事本");
        Log.d("启动word");
        try {
            r.exec("notepad.exe");
            r.exec("C:\\Program Files\\Microsoft Office\\root\\Office16\\WINWORD.EXE");
        } catch (IOException e) {
            e.printStackTrace();
        }

        Log.d();
        Log.d("强制垃圾回收");
        r.gc();
    }
}

结果: 

jvm处理器数量:2
jvm空闲内存数:0.11694317311048508GB
jvm总内存数:0.1201171875GB
jvm可用最大内存数:1.76416015625GB

启动记事本
启动word

强制垃圾回收

 

有个博客介绍关于exec方法的很多干货:https://www.cnblogs.com/mingforyou/p/3551199.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值