常用工具类(System,Runtime,Date,Calendar,Math)
一、System: 一个java.lang包中的静态工具类。
三大字段:
static PrintStream err “标准”错误输出流。
static InputStream in “标准”输入流。
static PrintStream out “标准”输出流。
其他常用方法:
描述系统信息:
获取系统属性信息: static Properties getProperties();
(Properties是Hashtable的子类,也就是Map 的子类,于是可以使用Map集合中的方法获取其中的信息
该集合中存储的都是字符串,没有泛型定义。)
static String getProperty(String key) 获取指定键指示的系统属性。
如: System.getProperty("os.name"); : 返回系统名称。
设置系统属性信息:
static String setProperty(String key, String value) :
设置一个系统属性信息,并返回原来该键上的信息,如果原来没有该键、或者该键上没有信息,返回null。
动态加载属性信息: 在启动jvm的时候动态加入属性信息, dos中输入命令时: java -D键字符串=值字符串 class文件名。
注意: 系统信息都是成键值对存在的。
这类语句作用,判断操作系统信息,为程序运行做准备,
二、Runtime
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例。
static Runtime getRuntime() :返回与当前 Java 应用程序相关的运行时对象。
通过调用此方法拿到该对象,于是就可以调用该类中的方法。(这是单列设计模式)
如: Runtime r = Runtime.getRnutime();
Process exec(String command) : 在单独的进程中执行指定的字符串命令。(能在本线程中打开一个其他程序,返回一个Process对象)
Process: 一个对象,表示这被打开的进程(只能通过一些方法拿到这个对象,java不能建立这个类对象,其由
Windows操作系统建立)
示例: Runtime r = Runtime.getRnutime(); //获得当前运行时对象。
Process p1 = r.exec("notepad.exe.Test.java"); //用记事本打开一个Test.java文件,并使用p1记录这个进程(不写程序路径时要保证其在path下,)
Process p2 = r.exec("F:\\qq音乐\\qqyyueanzhuang\\QQMusic1297.11.5.44\\QQMusic.exe"");//打开QQ音乐,
//因为转义字符的原因,要使用双斜线表示路径。
p1.destroy(); //关闭两个程序。
p2.destroy();
三、Date
位置:java.util
类 Date 表示特定的瞬间,精确到毫秒。
Date类中相关联的类: SimpleDateFormat
Date相关方法: 除了构造函数,一般不用,其toString返回一个英文的日期字符串,一般会需要对其进行转换。
这就需要用到 java.text包中的 DateFormat 类
DateFormat: 抽象类, 其有子类 SimpleDateFormat。
SimpleDateFormat 常用方法:
构造函数之一:SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
(pattern格式查找api表格)
StringBuffer format(Date date):将传入date转换为构造函数中指定的格式,保存到StringBuffer中。
代码示例: Date d = new Date();
System.out.println(d);
SimpleDateFormat s = new SimpleDateFormat("yyy年MM月dd日Ehh:mm:ss"); (格式化多少就有多少内容)
String s1 = s.format(d);
System.out.println(s1);
四、Calendar
位置: java.util
抽象类, 其直接子类:GregorianCalendar
Calendar中的方法:
对象获取:
构造方法: protected Calendar() 构造一个带有默认时区和语言环境的 Calendar。
protected Calendar(TimeZone zone, Locale aLocale) 构造一个带有指定时区和语言环境的 Calendar。
其为抽象类,protected权限的构造函数,只能被子类调用。(只能构造子类对象)
返回对象:
static Calendar getInstance() 使用默认时区和语言环境获得一个日历。
static Calendar getInstance(TimeZone zone, Locale aLocale)使用指定时区和语言环境获得一个日历
(可只传一个,另一个默认)。
(此日历时间默认在当时瞬间)
其他方法: int get(int field) 返回给定日历字段的值。 字段表示方法: Calendar.YEAR
void set(int year, int month, int date, int hourOfDay, int minute, int second)
设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
相对于将日历翻到指定位置。
void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
如: c.add(Canendar.DAY_OF_MOUTH,-1);
五、Math
位置: java.lang
工具类,全静态方法。
字段: PI E
方法: 大部分进行基本数学运算的方法都在其中。
如:static double ceil(double a) 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数(大于指定数的最小整数)。
static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数(小于指定数的最大整数)。
static long round(double a) 返回最接近参数的 long。(四舍五入)
static double pow(double a, double b) 返回第一个参数的第二个参数次幂的值。a的b次幂。
static double abs(double a) 返回 double 值的绝对值。
重:static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。(返回一个随机数)
在第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同
new java.util.Random
之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。
注: new java.util.Random 得到的随机数生成器还有许多关于随机数的操作方法。
等