System
System类中的方法和属性都是静态的
out:标准输出,默认是控制台
in:标准输入,默认是键盘
Properties
获取系统属性信息
getProperty()
自定义一些特有属性信息
setProperty()
因为Properties是Hashtable的子类,也就是Map集合的一个子类对象
那么可以通过map的方法取出该集合中的元素。
该集合存储的都是字符串,没有泛型定义。
c:\\>java -Dhaha=qqqqq Test | 虚拟机启动时加载信息 |
import java.util.*;
class Test
{
public static void main(String[] args)
{
Properties pro= System.getProperties();
//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象
//那么可以通过map的方法取出该集合中的元素。
//该集合存储的都是字符串,没有泛型定义。
///如何在系统中自定义一些特有信息。
System.setProperty("mykey","myvalue");
for( Object obj : pro.keySet())
{
String value = (String)pro.get(obj);
sop(obj+"----"+value);
}
获取指定属性信息
sop(System.getProperty("os.name"));
在jvm启动时,动态加载一些属性信息值。
:> java -Dhaha=qqqqq Test
sop(System.getProperty("haha"));
}
public static void sop( Object obj)
{
System.out.println(obj);
}
}
Runtime对象
每个java应用程序都有一个Runtime对象,使应用程序与系统运行的环境相连接。应用程序不可以自己创建Runtime实例。
该类并没有提供构造函数
说明不可以new对象,那么会直接想到该类中的方法都是静态的。
发现该类中还有非静态方法。
说明该类肯定会提供方法获取本类对象,而且该方法都是静态的,并返回值类型是本类类型。
由这个特点,可以看出该类使用了单例设计模式完成
该方法是static Runtime getRuntime ()
import java.util.*;
class Test
{
public static void main(String[] args) throws Exception
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("C:\\write.exe"); //运行程序
Process P2 = r.exec("notepad.exe 1.java");
Thread.sleep(400); //延时线程
p.destroy(); //关闭进程
}
public static void sop( Object obj)
{
System.out.println(obj);
}
}
Data
在util包中
输出格式 SimpleDateForamt()
输出格式 SimpleDateForamt()
SimpleDateForamt()需要导入 import java.text.*;
import java.util.*;
import java.text.*;
class Test
{
public static void main(String[] args)
{
Date d = new Date();
sop(d); //输出时间
//将模式封装在SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss");
//调用format方法,让模式格式化指定的Date对象。
String time = sdf.format(d);
sop(time);
}
public static void sop( Object obj)
{
System.out.println(obj);
}
}
Calendar
getInstance()从默认时间表中获取时间
set();设置时间
add();加减时间
import java.util.*;
class Test
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
sop(c.get(Calendar.YEAR)+"年"); //输出年份
sop(c.get(Calendar.MONTH)+"月");
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
sop("星期"+c.get(Calendar.DAY_OF_WEEK));
//
String [] month = {"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
String [] week = {"星期六","星期日","星期一","星期二",
"星期三","星期四","星期五"};
int monthIndex=c.get(Calendar.MONTH);
int weekIndex = c.get(Calendar.DAY_OF_WEEK);
sop(month[monthIndex]+" "+week[weekIndex]);
}
public static void sop( Object obj)
{
System.out.println(obj);
}
}
import java.util.*;
class Test
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
///
c.set(2011,11,1);//从0算起。。
Calendars(c);
///
c2.add(Calendar.YEAR,-4);//减4年
Calendars(c2);
}
public static void Calendars(Calendar c)
{
sop(c.get(Calendar.YEAR)+"年"); //输出年份
sop(c.get(Calendar.MONTH)+"月");
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
sop("星期"+c.get(Calendar.DAY_OF_WEEK));
//
String [] month = {"一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
String [] week = {"星期六","星期日","星期一","星期二",
"星期三","星期四","星期五"};
int monthIndex=c.get(Calendar.MONTH);
int weekIndex = c.get(Calendar.DAY_OF_WEEK);
sop(month[monthIndex]+"+"+week[weekIndex]);
}
public static void sop( Object obj)
{
System.out.println(obj);
}
}
练习
1获取任意年的二月有多少天。
思路,根据指定的年设置一个时间
c.set(year,3,1);//某一年的3月1日
c.add(Calendar.DAY_OF_WEEK,-1);//3月1日往前推一天,就是2月的最后一天
2获取昨天的现在这个时刻。
c.add(Calendar.DAY_OF_WEEK,-1);
sop(c.get(Calendar.DAY_OF_WEEK)+"+"+c.get(Calendar.HOUR_OF_DAY)
+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND))
Math
import java.util.*;
class Test
{
public static void main(String[] args)
{
sop(Math.ceil(123.4));//ceil返回大于指定数据的最小整数。
sop(Math.floor(323.4));//floor返回小于指定数据的最大整数。
sop(Math.round(323.4));//四舍五入算法。
sop(Math.pow(2,7));//2的7次方!
for (int x=1;x<10 ;x++ )
{
sop(Math.random());//random, 包含零且小于1的随机小数。伪随机数
sop((int)(Math.random()*10+1));//包含10但且大于1的随机数
Random r = new Random();
sop(r.nextInt(10)+1);//包含10但且大于1的随机数
}
}
public static void sop( Object obj)
{
System.out.println(obj);
}
}