一、System类
1、System类:
不可以被实例化。没有构造函数。
该类中的方法都是静态的。
常见方法:exit().currentTimeMillis(); gc(); getProperties()。
getProperties方法:是用来获取系统属性集的。
练习:
package myreview1;
import java.util.Properties;
import java.util.Set;
public class day21test5 {
public static void main(String[] args) throws ParseException {
// 练习一:System类中获取本地系统信息的方法。
// System.out.println(System.getProperties());
Properties pro=System.getProperties();
System.out.println(pro);
Set<String> name=pro.stringPropertyNames();
for(String s:name){
String value=pro.getProperty(s);
System.out.println(nam+value);
}
}
}
Runtime:代表应用程序运行时对象。该对象不需要创建,直接通过getRuntime获取即可,因为该Runtime类 是可以将应用程序和运行环境想结合的类。
该类没有构造函数。可是该类中有特有的非静态方法。 说明它不让其他程序创建该类对象,它给我们提供一个方法获取它的对象。 这个方法就是getRuntime,这个方法是静态的。 返回值类型是Runtime。
注意:该类就是用单例设计模式完成的。
Math中的方法都是静态的。
常用方法:
ceil():求大于参数的最小整数。
floor():求小于参数的最小整数。
round():四舍五入。
abs():求绝对值。
pow(a,b):求a的b次幂
创建随机对象:Random r = new Random();
练习:
package myreview1;
import java.util.Random;
public class MathDemo {
public static void main(String[] args) {
//大于参数的最小整数。
double d0 = Math.ceil(10.34);
System.out.println(d1);
//小于参数的最大整数。
double d1 = Math.floor(10.34);
System.out.println(d2);
//四舍五入。
double d2 = Math.round(10.54);
System.out.println(d3);
double d3 = Math.pow(10,3);
System.out.println(d4);
for(int x=0; x<10; x++){
// double d = Math.ceil(Math.random()*10);
// double d = Math.floor(Math.random()*10+1);
int d = (int)(Math.random()*10+1);
System.out.println(d);
}
//使用随机数对象。 Random
Random r = new Random();
for(int x=0; x<10; x++){
int num = r.nextInt(10)+1;
System.out.println("num="+num);
}
}
}
三、Date
(1)、日期对象和毫秒值之间的转换:
日期对象之间要进行基本运算,需要转成具体的毫秒数值才可以。
如果知道一个毫秒值,想要得到年月日,这时就需要将该毫秒值封装成Date对象。因为有了对象以后就可以通过方法来获取。
(2)、将日期对象转成毫秒值:使用的是Date对象中的getTime();
(3)、将毫秒值转成日期对象。
1、通过Date 构造函数完成。new Date();(如果超出范围则加上一个L)
2、通过Date类的setTime方法设置一个指定的毫秒值。
(4)、将日期对象转成指定格式的日期字符串。使用到了DateFormat对象 中的 format方法。
1,获取DateFormat对象,可以通过该类的静态方法getDateInstance(),该方法返回的是日期默认的格式化对象。
2,调用format方法转换成字符串。
(5)、日期字符串转成日期对象:
1,获得一个日期字符串。
2,定义一个日期格式化对象。要解析一个具体格式的日期字符串,必须要让该日期格式对象具备解析该格式的能力。(会抛出转化异常)。
3,为了获取其中的日期或者时间字段方便,解析使用的是DateFormat类中的parse方法。
练习:
package myreview1;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class day21test5 {
public static void main(String[] args) throws ParseException {
Date d=new Date();
System.out.println(d);
String str="2014/5/13";
DateFormat df=DateFormat.getDateInstance();
df = new SimpleDateFormat("yyyy/MM/dd");
d=df.parse(str);
System.out.println(d);
}
}
package myreview1;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class day21test6 {
public static void main(String[] args) throws Exception {
/*
*
* "2012/5/12"和"2012/6/2"相差多少天?
*
*
*/
String date1 = "2012/5/12";
String date2 = "2012/6/2";
//1,将日期格式的字符串转成日期对象。
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
//2,对日期字符串进行解析。
Date d1 = dateFormat.parse(date1);
Date d2 = dateFormat.parse(date2);
//3,将日期对象转成毫秒值。
long time1 = d1.getTime();
long time2 = d2.getTime();
//4,相减。
long time = Math.abs(time1 - time2);
System.out.println(time/1000/60/60/24);
}
}
四、Calendar
Calendar
类是一个抽象类,它为特定瞬间与一组诸如
YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar
提供了一个类方法 getInstance
,返回Calendar对象。
常用方法:get();返回给定日历字段的值。
set();对这个日历对象进行指定日期的设定。
add():日历在指定的日期上偏移。
练习:
package myreview1;
import java.util.Calendar;
public class day21test5 {
public static void main(String[] args) {
int year=2014;
int day=getdays(year);
System.out.println("二月有"+day+"天");
}
// 练习获取任意一年的二月份有多少天。
public static int getdays(int year) {
Calendar c=Calendar.getInstance();
c.set(year, 2, 1);
c.add(Calendar.DAY_OF_MONTH, -1);
int days=c.get(Calendar.DAY_OF_MONTH);
return days;
}
}