Java基础--- 其它对象


其它对象API

System类
System类中的字段和方法都是静态的。
常见方法:long currentTimeMillis();获取当前时间毫秒值,可以通过此方法检测程序的执行时间。
示例1:(检查程序执行的时间)
class SystemDemo 
{
	public static void main(String[] args) 
	{
		long l1 = System.currentTimeMillis();
		//code...
		long l2 = System.currentTimeMillis();
		System.out.pirntln(l2-l1);
	}
}
ProPerties getProperties();明确当前的系统属性。
Properties集合中存储的都是String类型的建和值。
示例2:(获取系统属性信息)
import java.util.Set;
import java.util.Properties;
class SystemDemo 
{
	public static void main(String[] args) 
	{
		//获取系统的属性信息,并存储到了Properties集合中
		Properties prop = System.getProperties();
		Set<String> nameSet = prop.stringPropertyNames();
		for(String name : nameSet)
		{
			String value = prop.getProperty(name);
			System.out.println(name+"="+value);
		}
	}
}

Windows系统中换行为\r\n两个转义字符,Linux只有一个\n。
示例3:(获取系统属性换行符)
class SystemDemo 
{
	public static void main(String[] args) 
	{
		System.out.println("hello-\r\n world");
		final String LINE_SEPARATOR = System.getProperty("line.separator");
		System.out.println("hello"+LINE_SEPARATOR+"world");
	}
}

给系统属性设置一些属性信息,这些信息是全局的,其他程序都可以使用。例:
System.setPeroperty("myclasspath","c:\myclass");。
Runtime类
Runtime:没有构造方法摘要,说明该类不可以创建对象。又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法。而且只有一个,说明Runtime类使用了单例设计模式。
示例1:
import java.io.IOException;
class SystemDemo 
{
	public static void main(String[] args) throws InterruptedException,IOException
	{
		Runtime r = Runtime.getRuntime();
		Process p = r.exec("notepad.exe D:\\javaExc\\SystemDemo.java");
		Thread.sleep(5000);
		p.destroy();
	}
}

Math类
Math:提供了操作数学运算的方法,都是静态的。
常用方法:
ceil():返回大于参数的最小整数。
floor():返回小于参数的最大整数。
round():返回四舍五入的整数。
pow(a,b):a的b次方。
示例:
import java.util.Random;
class MathDemo
{
	public static void main(String[] args)
	{
		double d1 = Math.ceil(12.56);
		double d2 = Math.floor(12.56);
		double d3 = Math.round(12.56);
		System.out.println(d1);//13.0
		System.out.println(d2);//12.0
		System.out.println(d3);//13.0
		double d4 = Math.pow(10,2);
		System.out.println(d4);//100

		for(int i = 0;i<5;i++)
		{
			double d5 = Math.random();
			System.out.println("d5="+d5);
		}
		Random r = new Random();
		for(int i=0;i<5;i++)
		{
			double d6 = r.nextDouble();
			System.out.println("d6="+d6);
		}
	}
}

Date、DateFormat类
示例1:
import java.util.Date;
class DateDemo
{
	public static void main(String[] args)
	{
		long time = System.currentTimeMillis();
		System.out.println(time);
		//将当前日期和时间封装成Date对象

		Date d1 = new Date();
		System.out.println(d1);

		//将指定毫秒值封装成Date对象
		Date d2 = new Date(1405244787235l);
		System.out.println(d2);
	}
}

日期对象和毫秒值之间的转换
毫秒值-->日期对象:
1. 通过Date对象的构造方法 new Date(timeMillis);
2. 还可以通过setTime设置。
因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。

日期对象-->毫秒值:
1. getTime方法。
因为可以通过具体的数值进行运算。

对日期对象进行格式化:
将日期对象-->日期格式的字符串。
使用的是DateFormat类中的format方法。
示例2:(对日期进行格式化)
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
class DateDemo
{
	public static void main(String[] args)
	{
		Date date = new Date();

		//获取日期格式对象,具备这默认的风格。也可以指定为FULL、LONG风格。
		DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
		String str_date1 = df.format(date);
		System.out.println(str_date1);

		df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
		String str_date2 = df.format(date);
		System.out.println(str_date2);

		//如果风格是自定义
		df = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");
		String str_date3 = df.format(date);
		System.out.println(str_date3);
	}
}
将日期格式的字符串-->日期对象。
使用的是DateFormat类中的prase方法。
示例3:
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
class DateDemo
{
	public static void main(String[] args) throws ParseException
	{
		String str_date1 = "2012年4月18日";
		String str_date2 = "2012--4--19";
		
		DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
		Date date1 = dateFormat.parse(str_date1);
		System.out.println(date1);

		dateFormat = new SimpleDateFormat("yyyy--MM--dd");
		Date date2 = dateFormat.parse(str_date2);
		System.out.println(date2);
	}
}

示例4:(计算”2015-11-1“到“2015-11-23”中间有多少天)
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
/**
1. 将日期格式的字符串转成Date对象。
2. 将Date对象转成毫秒值。
3. 相减,编程天数。
*/
class DateDemo
{
	public static void main(String[] args) throws ParseException
	{
		String str_date1 = "2015-11-1";
		String str_date2 = "2015-11-23";
		
		test(str_date1,str_date2);
	}

	public static void test(String str_date1,String str_date2) throws ParseException
	{
		//1、将日期字符串转成日期对象
		DateFormat dateFormat = DateFormat.getDateInstance();

		dateFormat = new SimpleDateFormat("yyyy-MM-dd");

		Date date1 = dateFormat.parse(str_date1);

		Date date2 = dateFormat.parse(str_date2);

		long time1 = date1.getTime();
		long time2 = date2.getTime();

		long time = Math.abs(time2-time1);
		System.out.println(time);
		int day = getDay(time);
		System.out.println(day);
	}

	private static int getDay(long time)
	{
		int day = (int)(time/1000/60/60/24);
		return day;
	}
}

Calendar类
Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
示例1:
import java.util.Calendar;
public class CalendarDemo
{
	public static void main(String[] args)
	{
		//GregorianCalendar
		Calendar c = Calendar.getInstance();
		showDate(c);
	}

	public static void showDate(Calendar c)
	{
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		int week = c.get(Calendar.DAY_OF_WEEK);
		System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
	}

	public static String getWeek(int i)
	{
		String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		return weeks[i];
	}
}

示例2:
import java.util.Calendar;
public class CalendarDemo
{
	public static void main(String[] args)
	{
		//GregorianCalendar
		Calendar c = Calendar.getInstance();
		c.set(2015,6,20);
		c.add(Calendar.YEAR,-2);
		showDate(c);
	}

	public static void showDate(Calendar c)
	{
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		int week = c.get(Calendar.DAY_OF_WEEK);
		System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
	}

	public static String getWeek(int i)
	{
		String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		return weeks[i];
	}
}

示例3:(打印每年2月有多少天)
import java.util.Calendar;
public class CalendarDemo
{
	public static void main(String[] args)
	{
		int year = 2015;
		showDays(year);
	}

	public static void showDays(int year)
	{
		Calendar c = Calendar.getInstance();
		//将日期设置为3月1日,然后减一天,打印出2月份的最后一天日期,即可知2月有多少天
		c.set(year,2,1);
		c.add(Calendar.DAY_OF_MONTH,-1);
		showDate(c);
	}

	public static void showDate(Calendar c)
	{
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		int week = c.get(Calendar.DAY_OF_WEEK);
		System.out.println(year + "年" + month + "月" + day + "日" + getWeek(week));
	}

	public static String getWeek(int i)
	{
		String[] weeks = { "","星期日" ,"星期一" ,"星期二" ,"星期三" ,"星期四" ,"星期五" ,"星期六" };
		return weeks[i];
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值