System
:类中的方法和属性都是静态的,没有提供构造函数
out:标准输出,默认是控制台
in: 标准输入,默认是键盘
Properties getProperties :获取系统属性信息
Properties 是Hashtable的子类,也就是Map集合的一个子类对象
所以可以通过Map方法取出该集合中的元素;该集合存储的都是字符串,没有泛型的定义
操作示例:
import java.util.*; class SystemDemo { public static void main(String[] args) { Properties prop = System.getProperties();//包含全部属性信息 System.setProperty("mykey","myvalue");//在系统中自定义特有信息 String myvalue = System.getProperty("mykey");//获取指定属性信息 sop("myvalue: "+myvalue); //自定义的 String value = System.getProperty("os.name"); sop("value: "+value); //系统原有的 //在JVM启动时,加载一些属性信息,在命令行加载 String v= System.getProperty("haha"); sop("v= "+v); /* 获取所有属性信息 for (Object obj: prop.keySet() )//通过Map方法取出该集合中的元素 { String value = (String)prop.get(obj);//向下转型 sop(obj+" : "+value); } */ } public static void sop(Object obj) { System.out.println(obj); } }
Runtime
可以对当前系统进行相应的操作该类并没有提供构造函数,不可以new对象,可以联想到该类中方法都是静态的
而API中发现该类中还存在非静态方法,说明该类一定提供了方法获取本类对象而且该方法是静态的,返回值是本类类型
由此可以看出该类使用了单例设计模式完成
该静态方法是: static Runtime getRuntime();
使用示例:
class RuntimeDemo { public static void main(String[] args) throws Exception { Runtime r = Runtime.getRuntime(); //获取运行时类对象 // Process p = r.exec("D:\Program Files\yy\YY.exe");//根据运行时类执行本机程序 Process p = r.exec("notepad.exe SystemDemo.java ");//调用记事本打开文件 Thread.sleep(5000); //等待5秒 p.destroy(); //杀掉子进程 } }
Date
获取当前系统时间,更多方法参见APT文档import java.util.*; import java.text.*;//要记得导包 class DateDemo { public static void main(String[] args) { Date d = new Date();//获取当前时间 sop(d); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E hh点mm分ss秒"); String time = sdf.format(d);//调用formart方法让模式格式化指定Date对象 sop("当前时间: "+time); } public static void sop(Object obj){ System.out.println(obj); } }
Calendar
更加灵活地获取时间
import java.util.*; import java.text.*; class CalendarDemo2 { public static void main(String[] args) { Calendar c = Calendar.getInstance(); // c.set(2014,2,1); //设置时间,月份+1 // c.add(Calendar.MONTH,-4);//在当前时间上增减 // c.set(2012,2,1); //时间设定为2012年3月1日 c.add(Calendar.DAY_OF_MONTH,-1);//3月1日前推一天就是二月的最后一天 //获取昨天的现在时刻 printCalendar(c); } public static void printCalendar(Calendar c)//查表法应用,更灵活的定义日期输出格式 { String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}; String[] weeks = {"","周日","周一","周二","周三","周四","周五","周六"}; int index = c.get(Calendar.MONTH); int index0 = c.get(Calendar.DAY_OF_WEEK); sop(c.get(Calendar.YEAR)+"年"); //sop(c.get(Calendar.Month)+"月"); sop(months[index]); sop(c.get(Calendar.DAY_OF_MONTH)+"日"); //sop(+c.get("星期"+Calendar.DAY_OF_WEEK)); sop(weeks[index0]); } public static void sop(Object obj){ System.out.println(obj); } }
Math工具类
包含用于执行基本数学运算的方法import java.util.*; class MathDemo { public static void main(String[] args) { Random r = new Random(); for (int x=0 ;x<10 ;x++ ){ //5,获取1~6的随机数;骰子 // int d = (int)(Math.random()*6 +1);//Math类的方法 int d = r.nextInt(6)+1; //集合中Random类的方法,不需要再强转 sop(d); } } public static void show() { double d= Math.ceil(10.24); //1,返回大于指定数据的最小整数 double d1 = Math.floor(10.24);//2,返回小于指定数据的最大整数 long l = Math.round(10.24); //3,四舍五入 double d2= Math.pow(3,4); //4,次幂运算,a的b次方 sop("d ="+d); //返回11.0 sop("d1="+d1); //返回10.0 sop("l= "+l); //返回10.0 sop("d2="+d2); //返回81.0 } public static void sop(Object obj){ System.out.println(obj); } }Collections.shuffle(list); //集合的混洗在底层也调用了random
Math类中的random() 方法获取的是0.0~1.0的随机double数,如果要获得整数需要类型强转
还有另外一个获取随机整数的方法:java.util.包中的Random类
nextDouble();返回的是浮点型
nextInt()方法;返回的是int型,不需要再强转
这些工具类要进行掌握,以后开发会经常用到