本章概述:
第一部分:System
第二部分:Runtime
第三部分:Date
第四部分:Math
第一部分:System
1、特点:
方法和属性都是静态的
用于描述系统的一些信息
2、字段
in 标准输入流:默认键盘
out 标准输出流:默认控制台
3、方法:
currentTimeMillis 获取当前时间到世界协调时间的毫秒值
gc 向JVM发送垃圾收集请求
getProperties() 获取系统当前属性信息
exit 退出系统
setProperty 在系统中设置一些特有属性信息
在JVM启动时动态加载属性信息
Java -Dhaha=qqqqq Java文件
getProperty(String) 获取系统指定属性信息
setIn 设置默认输入流
setOut 设置默认输出流
4、properties类
是HashTable的子类,那么可以用Map的方法取出该集合中的元素
该集合中存储的都是字符串,没有泛型定义
方法StringPorpertiesName 返回此属性列表中的键集
代码示例:
/* 需求:System类代码示例 */ import java.util.*; //定义类 class SystemDemo { //主函数 public static void main(String[] args) { //System的方法和属性都是静态的 System.out.println(System.currentTimeMillis()); //其实大家,我们天天写的打印语句就是System类中的out字段的功能 //获取当前系统属性,用Properties类接收 Properties prop = System.getProperties(); //使用Map的方法来操作Properties集合 //取出迭代器遍历集合 Set<Map.Entry<Object,Object>> set = prop.entrySet(); Iterator<Map.Entry<Object,Object>> it = set.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } }
第二部分:Runtime
1、特点:
是Java应用程序与其运行环境相连接
没有可供创建对象的构造函数,有一个静态方法创建本类对象返回给调用者使用, 使用了单例设计模式
2、方法
getRuntime 返回一个该类对象
exec(command) 创建一个单独的进程执行指定的字符串命令,返回Process
Process类
方法(用本机方法创建进程)
destroy():杀掉子进程
代码示例:
/* 需求:Runtime类代码示例 */ import java.util.*; //定义类 class RuntimeDemo { //主函数 public static void main(String[] args) { //获取一个Runtime对象,用Runtime中的静态方法getRuntime Runtime run = Runtime.getRuntime(); //创建一个进程引用 Process pro = null; //以下两个方法都抛出异常,处理一下 try { //创建一个本机进程 pro = run.exec("C:\\Windows\\System32\\calc.exe"); //线程睡3秒后杀掉子进程 Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); } finally { //如果子进程创建成功才把它杀掉 if (pro!=null) { //杀掉子进程 pro.destroy(); } } } }
第三部分:Date
DateFormat
格式化日期
SimpleDateFormat
new SimpleDateFormat("yyyy年MM月dd日")
方法:
对象.format(让模式格式化指定Date对象)
模式(pattern)
y年
M 年中的月份
w 年中的周数
W 月份中的周数
D 年中的天数
d月份中的天数
F 月份中的星期
E 星期中的天数
H 一天中的小时数(0~23)(h 12小时制)
k 一天中的小时数(1~24)(K 12小时制)
n 一小时的分钟数
s 一分钟的秒数
S 毫秒数
示例:yyyy年MM月dd日E HH:nn:ss
Calendar(日历)
字段
Calendar.YEAR
Calendar.MONTH
Calendar.DAY_OF_MONTH
...
方法:
Calendar.get(字段)
对象.set(2012,0,23)
add(要加的字段,添加的量)
getInstance 获取日历示例
Calendar.getInstance().get(YEAR)
可以用查表法格式化
代码示例:
<pre name="code" class="java">/* 需求:Date类代码示例 */ import java.util.*; import java.text.*; //要导入格式化日期的2015/4/28类 //定义类 class DateDemo { //主函数 public static void main(String[] args) { //创建一个Date类 Date date = new Date(); //打印一下Date类的信息 System.out.println(date); //创建一个格式化时间对象,传入一个格式化的模式 DateFormat df = new SimpleDateFormat("yyyy年MM月dd日"); //调用格式化方法,传入要格式化的时间对象,打印 System.out.println(df.format(date)); } }
练习:获取任意年的二月的天数
思路:根据指定年设置一个时间
设置三月一号
往前推一天
第四部分:Math
静态的
方法:
abs 返回绝对值
double ceil(double) 返回大于指定数据的最小整数
double floor(double) 返回小于指定数据的最大整数
long round(double) 四舍五入
double floor(double) 返回小于等于参数的最大整数的double值
double pow(double底数,double指数) 求幂
double random() 返回[0~1)的伪随机数
Random类
nextInt
nextDouble
代码示例:
/*
需求:常用类代码示例
*/
import java.util.*;
//定义类
class OtherDemo
{
//主函数
public static void main(String[] args)
{
//获取绝对值
System.out.println("-323绝对值:"+Math.abs(-323));
//四舍五入
System.out.println("3.14四舍五入:"+Math.round(3.14));
//···(都打印出来了)
System.out.println("大于等于3.14的最小整数:"+Math.ceil(3.14));
System.out.println("3的5次方求幂:"+Math.pow(3,5));
System.out.println("\r\n获取10个1~10的随机整数");
for (int i = 0;i<10 ;i++ )
{
//用Math类中的生成0~1的伪随机数的方法
System.out.println((int)((Math.random()*10)+1));
}
System.out.println("或者:");
for (int i = 0;i<10 ;i++ )
{
//用Random中生成伪随机整数的方法,参数表示1~不包含该参数的整数范围
System.out.println(new Random().nextInt(10)+1);
}
}
}
本章总结:
1、本章的方法是处理一些程序与环境交互信息的类的讲解,属于基础信息处理的类,在日后开发中将会很常用,所以需要特别讲解和重点掌握它们的使用。
2、System类是描述一些系统信息的类,可以同过该方法获取当前运行平台的信息,以便使用这些信息确定程序的一些特定加载内容,还要掌握Properties中属性的使用。
3、Runtime类可以实现跟运行平台信息的动态交互,还可以进行调用平台的本地进程等操作。
4、Date类及DateFormat类可以处理日期类信息,及获取当前日期、指定日期、格式化日期格式等操作。
5、Math等类可以对数据进行各种数学运算,获取随机数的功能比较常用,要做必要掌握。