------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); // 返回保留了指定小数位的小数 } }