System类
System类不能被实例化,它提供的设施有,标准输入输出流和错误输出流;对外部定义属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一些方法。
常用字段:
in 标准输入流,默认是键盘;
out 标准输出流,默认是控制台。
常见方法:
void arraycopy() //复制数组
void exit(int status ) // 终止当前Java虚拟机
void gc() //运行垃圾回收器
重点讲的是
String getProperties() //返回当前系统的属性
Properties类属于java.util包,继承自Hashtable类,所以其中的元素都是键值对,键值是属性名,值是属性值。
也可以通过String setProperties()方法来自定义属性。
下面给出代码示例:
import java.util.*;
class SystemDemo
{
public static void main(String[] args)
{
Properties prop = System.getProperties();
System.setProperty("myKey", "myValue");
String v = System.getProperty("myKey");
System.out.println(v);
for(Object obj : prop.keySet())
{
String value = (String)prop.get(obj);
System.out.println(obj);
System.out.println(value);
}
}
}
Runtime类
Runtime也不可以被实例化,因为它不允许自定义Runtime对象,而是由系统创建。获取当前系统的Runtime对象的方法就是使用这个类提供的静态方法:
Runtime getRuntime()来获取。所以这个类使用的是单例设计模式。
常用方法:
static Runtime getRuntime(); //获取当前系统Runtime类
Process exec(String command) //执行指定命令行
void destroy() //结束当前进程的所有子进程
代码示例:
import java.util.*;
class RuntimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("F:\\kankan\\Program\\XMP.exe 情怨.mp4");
Thread.sleep(5000);
p.destroy();
}
}
Date类
Date用来描述当前时间,如果直接输入Date对象,默认格式为:星期 月份 月份天数 小时:分钟:秒数 年份 。也可以自定义时间输出的格式,方法是通过Date子类DateFormat的format()方法来指定模式,也可以通过SimpleDateFormat类来指定时间
代码示例:
import java.util.*;
import java.text.*;
class DateDemo{
public static void main(String[] args)
{
Date d = new Date();
//将模式封装成到SimpleDateFormat对象中。
SimpleDateFormat sdf = new SimpleDateFormat("y年M月d日 E H:m:s a ");
//调用format方法,让模式格式化指定的Date对象。
String time = sdf.format(d);
System.out.println(time);
}
}
Calendar类
Calendar类定义了许多字段来获取时间。
常用字段:
获取年份:Calendar.YEAR
获取月份:Calendar.MONTH
获取日期:Calendar.DAY_OF_MONTH
获取星期:Calendar.DAY_OF_WEEK
获取小时:Calendar.HOUR_OF_DAY
获取分钟:Calendar.MINUTE
获取秒数:Calendar.SECOND
获取月份:Calendar.MONTH
获取日期:Calendar.DAY_OF_MONTH
获取星期:Calendar.DAY_OF_WEEK
获取小时:Calendar.HOUR_OF_DAY
获取分钟:Calendar.MINUTE
获取秒数:Calendar.SECOND
常用方法:
void add(int field, int amount); //给指定字段添加指定时间量。
int get(int field) // 获取指定字段的时间量。
void set(int field, int value) //设置指定字段的时间量。
小练习:
获取任意年的二月有多少天:
public static int howManyDays(int year)
{
Calendar c = Calendar.getInstance();
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH,-1);
return c.get(Calendar.DAY_OF_MONTH);
}
Math类
Math类中封装了用于数学运算的方法和字段。
常见字段:
static double E // e(即自然对数的底数)的 double 值
static double PI //pi(即圆的周长与直径之比)的 double 值。
常见方法:
double ceil(double d); //向上取整
double floor(double d); //向下取整
double pow(double a,double b); //a的b次方
long round(double b); //b的四舍五入的值
double random(); //返回大于等于0.0且小于1.0的随机数
double floor(double d); //向下取整
double pow(double a,double b); //a的b次方
long round(double b); //b的四舍五入的值
double random(); //返回大于等于0.0且小于1.0的随机数
Random类:
是一个单独的随机数类,用途和Math.random()相同,但是random()方法比较局限,而Random类可以指定随机数的范围,还可以转成对应的基本数据类型。
示例:
package com.otherObjectDemo;
class MathDemo
{
public static void main(String[] args)
{
double num=Math.random();
print(num);
Double d = new Double(num);
String s = d.toString();
char[] a = s.toCharArray();
for(int i = a.length-1; i > a.length-3; i--)
print(a[i]);
}
public static void print( Object obj)
{
System.out.println(obj);
}
}