------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.System——包含一些有用的类字段和方法,不能被实例化。
类中的方法和属性都是静态的(static)。
out:标准输出,默认是控制台。 in:标准输入,默认是键盘。
获取系统属性信息:Properties getProperties();
在系统中自定义特有信息:System.setProperty("mykey","myvalue");
*以在jvm启动时,动态加载一些属性信息:java -D[name]=[values]SystemDemo.class。
2.Runtime——使应用程序与运行的环境相连接,使用了单例设计模式,该类并没有提供构造函数。
该类不可以new对象,方法本应该都是静态的然而却有非静态方法。
获取本类对象:Runtime.getRuntime();
启动一个进程:Process p = r.exec("notepad.exe SystemDemo.java"),杀死进程:p.destroy()。
3.Date——表示特定的瞬间,精确到毫秒。
初始化对象:new Date(),通过Dateformat的子类格式化时间对象。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd h:mm:ss"),
通过 sdf.format(new Date())即可格式化时间。
另外可以通过System.currentTimeMillis()获取以毫秒为单位的当前时间,
然后newDate(System.currentTimeMillis())初始化时间对象。
4.Calendar——同样是特定的瞬间,日历抽象类。
初始化对象:Calendar.getInstance()返回当前的calendar对象
通过calendar.get(Calendar.year)即可获取年份等等。。
另外:比如月份、星期这个可以用数组脚分法实现。
*calendar.set(2018,1,14)——设置时间为2018年2月14日;
*calendar.add(Calendar.DAY_OF_MONTH,-18)——把当前时间加-18天。
5.Math_Random——有些特定的工具好用
Math.ceil(16.34);//ceil返回大于指定数据的最小整数17.0
Math.floor(12.34);//floor返回小于指定数据的最大整数12.0
Math.round(12.54);//round返回指定数据的四舍五入值13
Math.pow(2,3);//pow返回指定数据a的指数b次幂8.0
* (int)(Math.random()*10+1)和new Random().nextInt(10)+1都是生成1~10之间的随机数。
课后练习:
1、获取任意年的二月有多少天。
思路:根据指定年设置一个时间就是 c.set(year,2,1)//某一年的3月1日。c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。
/**
* 1、获取任意年的二月有多少天
*/
import java.util.*;
class Test1{
public static void main(String[] args) {
System.out.println("2012年二月份有"+whatDay(2012)+"天");
}
public static int whatDay(int year){
Calendar c=Calendar.getInstance();
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH,-1);
return c.get(Calendar.DAY_OF_MONTH);
}
}
2、获取昨天的现在这个时刻。
思路:c.add(Calenar.DAY_OF_MONTH,-1)。
/**
* 2、获取前一天的现在这个时刻
*/
import java.util.*;
class Test2 {
public static void main(String[] args) {
System.out.println("昨天的现在这个时刻:" + lastNowTime());
}
public static String lastNowTime() {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
return printCalendar(c);
}
public static String printCalendar(Calendar c) {
String time = c.get(Calendar.YEAR) + "年";
String[] mons = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月",
"10月", "11月", "12月" };
int index = c.get(Calendar.MONTH);
time += mons[index];
time += c.get(Calendar.DAY_OF_MONTH) + "日";
String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
index = c.get(Calendar.DAY_OF_WEEK);
time += weeks[index];
time += c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
return time;
}
}
3、给定一个小数,保留该小数的后两位。可以考虑,保留时进行四舍五入。
/**
* 3、给定一个小数,保留该小数的后两位。可以考虑,保留时进行四舍五入。
*/
class Test3 {
public static void main(String[] args) {
double d = retention(3.1415926, 2);
System.out.println("d=" + d);
}
public static double retention(double d, int n) {
double d1 = d * Math.pow(10, n); // 先将要保留的小数位变为整数
long l = Math.round(d1); // 将小数四舍五入
return l / Math.pow(10, n); // 返回保留了指定小数位的小数
}
}