写在前面:
视频是什么东西,有看文档精彩吗?
视频是什么东西,有看文档速度快吗?
视频是什么东西,有看文档效率高吗?
张小飞:今天学习什么?
诸小亮:今天我们学习 JDK 中一些常见的类,比如:System
张小飞:System?很熟悉啊,它是做什么的?
诸小亮:看看你,这么快就忘了,经常用的——System.out.println(“hello world”);
张小飞:噢噢,想起来了,一直这样用,还真是没有很注意
System
诸小亮:首先看 System ——类中全是静态属性和静态方法
张小飞:其中 out 就是一个静态属性吧
诸小亮:是的,当然还有其他的,我们一个个介绍
out
out :静态属性,标准输出流,对应显示器
in
诸小亮:跟 out 对应的 还有一个 in
张小飞:让我猜猜,它也是静态属性,标准输入流,对应键盘,对吗?
诸小亮:是的,这个怎么记得这么清楚?
张小飞:原来用过嘛,接受用户的输入
诸小亮:嗯嗯,记得就好,之后我们还会用的
currentTimeMillis
诸小亮:currentTimeMillis——获取当前时间的毫秒数
结果:
张小飞:这一串数字是???
诸小亮:这是当前时间的毫秒值
张小飞:额。。。,不是很懂
诸小亮:来访问这个网站——https://www.beijing-time.org/shijianchuo/
张小飞:原来如此,明白了
exit
exit:退出java虚拟机,注意,执行后,finally中的代码不再执行
结果:
其中参数status的值为0代表正常退出,非零代表非正常退出
getProperty
getProperty(key):获取系统属性,比如:
结果:
获取系统文件分隔符(Windows是:\,Linux是:/)
结果:
其他属性:
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是"/“)
path.separator 路径分隔符(在 UNIX 系统中是”:“)
line.separator 行分隔符(在 UNIX 系统中是”/n")
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
Runtime(了解)
诸小亮:第二个类——Runtime
张小飞:这是—运行时间?
诸小亮:。。。。,当然不是了,Runtime——表示虚拟机运行时的状态
张小飞:什么意思?
诸小亮:我们每个 java 程序运行时,虚拟机都对应一个 Runtime 实例对象,并且只有一个
张小飞:噢噢,然后呢?
诸小亮:通过 getRuntime 这个静态方法,可以获取 Runtime 实例对象
张小飞:那么,为什么要获取这个对象呢?
诸小亮:可以查看我们当前程序占用的内存大小,比如:
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
System.out.println("系统处理器个数:" + runtime.availableProcessors());
System.out.println("JVM最大可用内存:" + runtime.maxMemory());
System.out.println("JVM当前占用内存:" + runtime.totalMemory());
System.out.println("JVM空闲内存:" + runtime.freeMemory());
}
张小飞:就这样?感觉没什么用啊
诸小亮尴尬的笑了笑:呵呵,确实没什么用,所以才说了解嘛,不过下面这个就有用了
exec
诸小亮:我们看这个 exec 方法
张小飞:这个方法有啥用?
诸小亮:exec——可以执行本地系统命令,比如:dir 、cd、mkdir等
张小飞:这个倒是有点儿意思,怎么用呢?
诸小亮:不要急,我们先在在命令行,打开记事本
结果:
张小飞:原来这样也能打开程序
诸小亮:使用 Runtime 对象的 exec 方法,也可以打开,比如:
Runtime runtime = Runtime.getRuntime();
//cmd和/C都是固定写法
String [] cmd={"cmd","/C","notepad"};
runtime.exec(cmd);
张小飞:这样就行了?
诸小亮:是的,你可以试试
诸小亮:另外,也可以用它创建文件夹,比如:
Runtime runtime = Runtime.getRuntime();
String [] cmd={"cmd","/C","mkdir test"};
//在 D 盘下,执行命令
runtime.exec(cmd, null, new File("D:"));
结果:D盘下就有一个 test 文件夹——
Math
诸小亮:下面这个是 Math 类
张小飞:不用说,肯定是跟数学有关系吧
诸小亮:是的,Math 类包含了一些基本数学运算的方法,比如:对数、平方根、四舍五入、绝对值等
public static void main(String[] args) throws IOException {
System.out.println("-2的绝对值是:" + Math.abs(-2));
System.out.println("3.4四舍五入是:" + Math.round(3.4));
System.out.println("3.5四舍五入是:" + Math.round(3.5));
System.out.println("0-1的随机数:" + Math.random());
System.out.println("-2的4次方:" + Math.pow(-2, 4));
System.out.println("3.14向上取整:" + Math.ceil(3.14));
System.out.println("3.14向下取整:" + Math.floor(3.14));
System.out.println("9的平方根:" + Math.sqrt(9));
}
结果:
Random
诸小亮:工作中也会有需要获取随机数的场景
张小飞:是啊,一直想问你这个问题呢
诸小亮:这就给你说说——Random对象
public static void main(String[] args) throws IOException {
Random random = new Random();
//1. 获取从 int 的取值范围中获取一个随机数
System.out.println(random.nextInt());
//2. 从指定范围内获取随机数
System.out.println(random.nextInt(10));// 获取的值范围:[0,10)
}
结果:
张小飞:有个问题
诸小亮:嗯?哪里有问题?
张小飞:代码没问题,我是想问,用这个可以买彩票吗?
诸小亮:。。。。。。,理论上是可以的,但是不要妄想了,踏踏实实干活儿才是正道
张小飞:你,不会是买过吧
诸小亮:唉,别说了,都是泪啊