黑马程序员_Runtime、Calendar、Date、Math类的简单介绍


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

今天学习了几个简单的对象的使用现在来简单介绍一下:

       1、Runtime

       2、Date

       3、Calendar

       4、Math

一、Runtime

java程序启动起来以后是跨平台的,所以每个java程序都应该有一个Runtime应用实例,使应用程序能与其运行环境相连接。想要java应用程序在某一个系统下出现进程并进行封装的话,那么就要使用Runtime来进行封装。查询API知道,该类并没有提供构造方法,这样一来就不可以建立对象。但是却有使用对象调用的非静态方法,所以断定该类肯定有一个静态方法提供了该类的实例对象,且该方法返回的本类类型,该方法就是static Runtime getRuntime()。由这个特点知道了该类使用的单例设计模式,保证了实例对象的唯一性。

获得实例对象后,就可以调用Runtime的非静态方法了

①exec()的重载方法:在单独的进程中执行字符串命令,如可以执行.exe文件等;

②Process中的destroy方法:exec是创建一个进程来执行comandante,可以创建进程,那么就有杀死进程方法。

package cn.itheima.date;

import java.io.IOException;

public class RunttimeDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Runtime r = Runtime.getRuntime();
		
		try {
			Process p=r.exec("指定要执行的文件路劲");
			//打开指定程序,并向其中写入数据,比如说打开记事本,arg1为记事本程序,arg2则是要加入记事本的数据(该数据可以是一个文件)
			//Process p = r.exec("要开启的文件路径,比如说打开笔记本", "向前一个参数中添加的内容");
			
			
			//r.exec()启动了一个进程来执行某个文件,开启进程,则需要把进程销毁
			
			p.destroy();//销毁进程,但是前提条件是只能是在获取Runtime驱动的对象,因为在系统进程一开始就启动了,导致了无法获得进程启动对象
			//所以无法杀死该线程
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println(e.toString());
		}

	}

}

二、Date类

Date类可以获得当前时间

package cn.itheima.date;

import java.util.Date;

public class DateDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	Date d = new Date();
	
	System.out.println(d);

	}

}
//得到的时间结果:Tue Apr 22 23:05:08 CST 2014

得到这样的时间虽然没有错误,但是不符合中国人的习性啊,所以要变为大家所适应,这里用到了DateFromat类及其子类SimpleDateFormat模式,SimpleDateFormat模式主要是规定了我们想要显示的时间格式是怎么样的,比如说这样“yyyy-MM-dd”;当然也可以指定详细的时间看”yyyy-MM-dd hh:mm:ss“,其方法format()则是将得到的时间按SimpleDateFormat模式进行转换

例子如下:

package cn.itheima.date;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	//得到当前时间
		Date d = new Date();
	//设定时间的显示模式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		
		//将得到的时间变成指定的模式中
		String str = sdf.format(d);
		
		System.out.println(str);

	}

}
//得到的时间结果:2014-04-22 11:18:29

三、Calendar类

想要获取某段时间中的年份、月份、或者日期、可以使用Date类的getYear()等方法,但是这些在java5开始已过时,想要得到这具体的时间值,使用Calendar类将会更加的明确、方便。下面以一个例子来讲述:

  

package cn.itheima.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class CalendarDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		// TODO Auto-generated method stub
		
		//从键盘输入一个时间格式得到输入时间
		/*Scanner s = new Scanner(System.in);
		
		String str = s.nextLine();*/
		Date d = new Date();
		
		//时间的接受模式、
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		
		//
		Calendar c = Calendar.getInstance();
		
		try {
			//将输入的字符串时间按照SimpleDateFormat的模式转换
			
			//将日期对象装入Calendar类中
			c.setTime(d);
			//获得输入的时间时刻的年份、月份以及号数
			System.out.println(c.get(Calendar.YEAR));
			System.out.println(c.get(Calendar.MONTH)+1);
			System.out.println(c.get(Calendar.DATE));
		//得到这是一年中的第几天,一个月中的第几天,以及是第几个星期,星期几
			System.out.println(c.get(Calendar.DAY_OF_YEAR));
			System.out.println(c.get(Calendar.DAY_OF_MONTH));
			System.out.println(c.get(Calendar.DAY_OF_WEEK_IN_MONTH));
			System.out.println(c.get(Calendar.DAY_OF_WEEK));//这里说的是一个星期的第几天,
			                                                 //由于国外是从周末开始为新的一天,故星期三是第四天
			//获取明天是几号
			System.out.println((c.get(Calendar.DATE) + 1));
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}



通过这个例子只能了解到简单的一些关于Calendar的用法,当然他的用法还不止这些,比如说可以通过add(int field ,int amount)某个时间的移量,这样就可以得到比如说某一年的二月有多少天,只需得到这一年的三月一日,再使用add方法减去一即可得到。还有得到明天的这个时刻,也只需使用Calendar的DAY属性加上一即使明天的这个时刻。当然,更多的内容请查询API文档;


四、Math

Math类有很多的方法,要意义介绍是不可能的,这里主要介绍的有:

   ceil(double a):返回大于a的所有数中的最小整数

   floor(double a)  :放回小于a的说有数中的最大整数

   round(double a): 四舍五入

   Random():产生0-1的随机数,包含0,不包含1

下面通过一个例子来简单了解这几个方法的使用:

package cn.itheima.date;

import java.util.Random;

public class MathDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		double n = 78.23;
		double m = -78.52;
		System.out.println(Math.ceil(n));
		System.out.println(Math.ceil(m));
		
		System.out.println(Math.floor(n));
		System.out.println(Math.floor(m));
		
		System.out.println(Math.round(n));
		System.out.println(Math.round(m));
		
		System.out.println("-----------产生随机数-----------");
		
		//产生一到十的随机数
		for (int i = 0; i < 10; i++) {
			
			System.out.print((int)(Math.random()*10+1)+"  ");
		}
		System.out.println();
		Random r =new Random();
		//产生0-10的随机数,包含0 ,不包含10
		int num = r.nextInt(10);
		System.out.println(num);
		
		System.out.println("==产生一个随机数,并保留小数后两位==========");
		double num1 = r.nextDouble();
		
		System.out.println(String.format("%.2f", num1));
	}

}

运行结果:

79.0
-78.0
78.0
-79.0
78
-79
-----------产生随机数-----------
2  8  9  3  10  3  3  7  5  8  
5
==产生一个随机数,并保留小数后两位==========
0.30






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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值