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文档:
-
-
static PrintStream
err
“标准”错误输出流。
static InputStream
in
“标准”输入流。
static PrintStream
out
“标准”输出流。
-
-
-
Modifier and Type Method and Description static void
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
将指定源数组中的数组从指定位置复制到目标数组的指定位置。
static String
clearProperty(String key)
删除指定键指定的系统属性。
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 name)
获取指定环境变量的值。
static Properties
getProperties()
确定当前的系统属性。
static String
getProperty(String key)
获取指定键指示的系统属性。
static String
getProperty(String key, String def)
获取指定键指示的系统属性。
static SecurityManager
getSecurityManager()
获取系统安全界面。
static int
identityHashCode(Object x)
返回与默认方法hashCode()返回的给定对象相同的哈希码,无论给定对象的类是否覆盖了hashCode()。
static Channel
inheritedChannel()
返回从创建此Java虚拟机的实体继承的通道。
static String
lineSeparator()
返回与系统相关的行分隔符字符串。
static void
load(String filename)
加载由filename参数指定的本机库。
static void
loadLibrary(String libname)
加载
libname
参数指定的本机库。static String
mapLibraryName(String libname)
将库名称映射到表示本地库的平台特定字符串。
static long
nanoTime()
以纳秒为单位返回正在运行的Java虚拟机的高分辨率时间源的当前值。
static void
runFinalization()
运行任何对象等待定稿的最终化方法。
static void
runFinalizersOnExit(boolean value)
已弃用这种方法本质上是不安全的。 它可能导致在活动对象上调用finalizer,而其他线程同时操作这些对象,导致不稳定的行为或死锁。
static void
setErr(PrintStream err)
重新分配“标准”错误输出流。
static void
setIn(InputStream in)
重新分配“标准”输入流。
static void
setOut(PrintStream out)
重新分配“标准”输出流。
static void
setProperties(Properties props)
将系统属性设置为
Properties
参数。static String
setProperty(String key, String value)
设置由指定键指示的系统属性。
static void
setSecurityManager(SecurityManager s)
设置系统安全性。
-
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