黑马程序员--其它对象

------- android培训java培训、期待与您交流! ----------


Runtime对象

1.      该类没有构造函数:不能new对象,说明该类中方法都是静态的.

2.      发现该类中还有非静态方法:说明该类中还会提供一个获取本类对象的静态方法.

3.      由这些特性可以说明Runtime是使用单例设计模式.

4.      Runtime 对象可以调用exec(“notepad.exe  1.java”)(execute的简写)方法执行硬盘上的一些exe程序,并打开相应的文件

5.      Java找资源或文件时候先找指定目录->没有指定目录就找当前目录bin(所在目录)->去path执行的地方找

6.      Runtime调用exec后返回是进程,这些进程是由底层资源创建的,不能手动创建

7.      杀掉进程process.destroy().

测试代码:

import java.io.IOException;

public class TestRuntime {
	public static void main(String args[]) throws IOException, InterruptedException {
		
		Runtime r=Runtime.getRuntime();
		r.exec("notepad.exe hello.java");//打开记事本,并打开hello.java文件
		Process p=r.exec("calc.exe");//执行cal.exe程序
		Thread.sleep(5000);	//线程等待五秒
		p.destroy();	//关闭cal.exe的进程
	}
}


Date对象.

1.      精准的瞬间,精确到毫秒.

2.      Date date=new Date()  date 打印出来的格式 Mon Oct 27 20:11:58 CST 2014

3.      DateFormat:日期格式化,我们用它的子类SimpleDateFormat

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);

String s=sdf.format(date);

测试代码:把当前时间显示为xxxx年xx月xx日 HH:mm:ss的形式

public class TestDate {
	public static void main(String args[]) throws IOException, InterruptedException {
		
		Date date=new Date();
		System.out.println(date);//默认格式
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
		String s=sdf.format(date);//格式化
		System.out.println(s);
	}
}
运行结果:Tue Oct 28 19:20:08 CST 2014
 2014年10月28日  19:20:08


Calender

1.      Calendar calendar =Calendar.getInstance();

2.      calendar.get(Calendar.MONTH);

3.  查表法:当元素很多,而且这些元素和数组有对应的关系,而且这些数字都有角标的规律的时候就可以用查表法

4.      Calendar.set(int date,int month,int day):设置为指定的日期

5.      Calendar.add(int field,int amount):在指定的属性上偏移amount个单位

6.  calendar.getTime()获取Date格式的日期;

7.      练习题:

  • 利用查表法获取当前日期
  • 两个年份相差多少个工作日(星期一到星期五) 
  • 练习使用 Calendar.set(int date,int month,int day),Calendar.add(int field,int amount)方法
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Text3 {
	

	public static void main(String[] args) throws IOException {

		/**
		 * 利用查表法和calendar对象获取现在时间
		 */
		
		 String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月",
			"八月", "九月", "十月", "十一月", "十二月" };
		 String[] weeks={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
	  
		 Calendar calendar = Calendar.getInstance(); //获取日历对象;

		 Integer index = calendar.get(Calendar.MONTH);//得到月份数(比实际的少1)
		 
		 int day=calendar.get(Calendar.DAY_OF_MONTH);
		 int year=calendar.get(Calendar.YEAR);
		
		 Integer index1 = calendar.get(Calendar.DAY_OF_WEEK)-1;//获取星期几,外国的第一天是星期日

		 System.out.println(year+"年"+months[index]+" "+day+"日 "+weeks[index1]);//2014年十月月28日星期二
		 
		 
		 /**
		  * 计算两个日期的工作日(星期一到星期五视为工作日)
		  */
	//获取两个日期对象
		Calendar c = Calendar.getInstance();
		Calendar n = Calendar.getInstance();
		//设置两个指定的日期
		c.set(2010, 8, 1);
		n.set(2014, 10, 28);
		//初始化总天数为一天
		int totalDays = 1;
		while (!getDateFormat(c).equals(getDateFormat(n))) {//当两个日期转换后的日期不同时就继续循环
			c.add(Calendar.DAY_OF_MONTH, 1);//每次增加一天
			if (c.get(Calendar.DAY_OF_WEEK) != 1		//如果不为星期天和星期六(分别对应着1和7)
					&& c.get(Calendar.DAY_OF_WEEK) != 7) {
				totalDays++;						//总天数加一天
			}
		}
		System.out.println("总共天数:"+totalDays);

	}
/**
 *
 * @param 把calendar对象转换为date对象
 * @return
 */
	static String getDateFormat(Calendar c) {
		Date date = c.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//转换格式

		return sdf.format(date);
	}
}
运行结果:2014年十月 28日 星期二
总共天数:1108

Math

1.      Double Math.Ceil(double)返回大于指定数字的最小整数

2.      Double Math.floor(double)返回小于执行数字的最大整数

3.      Math.round()                      

4.      Math.pow(a,b)      求a的b次方

5.      Math.Random()                           返回[0-1)之间的伪随机数

6.      Random r=new Random()r.nextInt(10)  返回[0-10)之间的整数

7.    练习题给定一个小数,保留后两位.

import java.util.Random;

public class TestMath {
	public static void main(String[] args) {
		// 创建Random对象
		Random r = new Random();
		double num = r.nextDouble() + r.nextInt(100);// 获取随机的双精度小数
		System.out.println("转换前:" + num);
		System.out.println("转换后" + getNewNum(num));// 保留两位小数

	}

	/**
	 * 
	 * @param 把double类型的小数保留两位小数
	 * @return double result
	 */
	public static Double getNewNum(Double a) {
		String s = "" + a;// 转换为字符串
		int pointIndex = s.indexOf(".");// 计算小数点在小数的位子
		s = s.substring(0, pointIndex + 3);// 第一个字符开始直到小数点后3位前结束

		Double result = Double.parseDouble(s);// 把字符串转换为double类型,此时只有两位小数
		return result;

	}
}
某次运行结果: 
转换前:97.75135259824832
转换后97.75



------- android培训java培训、期待与您交流! ----------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值