1、System,里面全是静态方法和属性,常用的具有
out 标准输出,默认控制台,
in 标准输入,可以接收键盘的输入。
static Properties getProperties():确定当前的系统属性
类Properties是HashTable的子类。
import java.util.*;
class SystemDemo
{
public static void main(String[] args)
{
//jvm在启动时,需要加载一些系统信息,下面的prop保存的就是一些系统信息,我们可以自定一些信息,保存,并取出
Properties prop = System.getProperties();
//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。
//那么可以通过map的方法取出该集合中的元素
//该集合中存储的都是字符串,没有泛型定义
//如何在系统中自定义一些特有信息
System.setProperty("mykey","myvalue");
//获取指定属性信息
String value = System.getProperty("os.name");
sop(value);
//可不可以在虚拟机启动时,动态加载一些属性信息?
String v = System.getProperty("haha");
sop(v);//没有haha,返回null
for(Object obj:prop.keySet());
{
String value = (String)prop.get(obj);
sop(obj+"ddddd"+value);
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
2、Runtime,每个jvm应用程序都有一个Runtime类实例,使应用程序能与其运行的环境相连接,可以通过getRuntime方法获取当前运行时,应用程序不能创建自己的Runtime类实例。
该类中并没有提供构造函数,说明不可以创建其对象,那么该类中的方法都是静态的,该类中还有非静态方法,说明该类肯定会提供方法获取本类对象,而且该方法是静态的,,并且返回值类型是本类类型。
由这个特点可以看出,该类使用了单例设计模式。
该方法是 static Runtime getRuntime();
类Process,public abstract class Process extends object
ProcessBuilder.start()和Runtime.exec方法创建一个本机进程,并返回Process子类的一个实例,该实例可用于控制进程并获得相关信息。Process类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁进程的方法。
import java.util.*;
class RuntimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("c:\\thunder.exe");//可以用此命令打开所有的可执行文件,要准确路径,
Thread.sleep(4000);
p.destroy();//杀死进程p,表示p一执行,立刻被杀
//要注意的是斜线要两个,一个斜线表示转义字符
Process p1 = r.exec("notepad.exe");//打开空记事本
process p2 = r.exec("notepad.exe SystemDemo.java");
//用记事本打开SystemDemo.java
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
3、Date 表示特定时间的某瞬间,精确到毫秒
import java.text.*;
class DateDemo
{
public static void main(String[] args)
{
Date d = new Date();
System.out.println(d);
//将模式封装到SimpleDateFormat对象中,
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");
//调用format()方法,让模式格式化指定Date对象。
String time = sdf.format();
sop(time);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
4、Calendar类
class CalendarDemo
{
public static void main(String[] args)
{
/*
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String year =sdf.format();
*/
Calendar c = Calendar.getInstance();
sop(c.get(Calendar.YEAR));//获取年
sop(c.get(Calendar.YEAR)+"年");
sop((c.get(Calendar.MONTH)+1)+"月");
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
sop("星期"+c.get(Calendar.DAY_OF_WEEK));
Calendar c2 = Calendar.getInstance();
c2.set(2012,3,3);//可以设置时间
c2.add(Calendar.YEAR,4);//在当前时间下顺延四年。
c2.add(Calendar.MONTH,-1);//减一个月,
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
5、类Math,包含用于执行基本数学运算的方法。
abs(double d):返回绝对值,float也可以
static double ceil(double d):返回最小的(最接近负无穷大)double值,该值大于等于参数,并等于某个整数。直观的说:返回大于等于该参数的最小整数。
floor(double d);小于等于参数的最大整数。
round(floor d);四舍五入
pow(a,b):幂的运算,a的b次方
public static double random():返回带+的double值,该值大于等于0.0且小于1.0,是一个伪随机数。
类Random,里面有很多方法,可以获取随机double 或随机int
import java.util.*;
class Demo
{
public static void main(String[] args)
{
{
Random r = new Random();
double d = Math.ceil(12.36);//返回13
double d1 = Math.floor(12.36);//返回12
long l = Math.round(12.34);
double d2 = Math.pow(2,3);//2的3次方
for(int x=0;x<10;x++)
{
double d3 = Math.random();
int i = (int)(Math.random()*10+1);
int x = r.nextInt()+1
}
}
}