黑马程序员——Java基础之其他对象

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

 

你可能感兴趣的:(java)