JavaSe基础XX17——常用对象API-集合框架_6_其他对象API

*01-其他对象API(System类)

System

|--out

|--in

*
 * System:类中的方法和属性都是静态的。
 * 
 * 
 * 常见方法:
 * long currentTimeMillis();获取当前时间的毫秒值。 

JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第1张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第2张图片


用途:计算程序运行时间。

JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第3张图片



//获取系统的属性信息,并存储到了Properties集合中。 
/*
* properties集合中存储都是String类型的键和值。
* 最好使用它自己的存储和取出的方法来完成元素的操作。
*/


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第4张图片



package cn.itcast.p1.otherapi;

import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.Set;

public class SystemDemo {

	
	private static final String LINE_SEPARATOR = System.getProperty("line.separator");
	/**
	 * @param args
	 */
	public static void main(String[] args) {

		/*
		 * System:类中的方法和属性都是静态的。
		 * 
		 * 
		 * 常见方法:
		 * long currentTimeMillis();获取当前时间的毫秒值。 
		 * 
		 */
		
//		long l1 = 1335664696656l;//System.currentTimeMillis();
//		System.out.println(l1/1000/60/60/24);//1335664696656
//		code..
//		long l2 = System.currentTimeMillis();
//		System.out.println(l2-l1);

		
		System.out.println("hello-"+LINE_SEPARATOR+" world");
//		demo_1();
		//给系统设置一些属性信息。这些信息是全局,其他程序都可以使用。 
//		System.setProperty("myclasspath", "c:\myclass");
		
	}
	
	public static void demo_1(){
		//获取系统的属性信息,并存储到了Properties集合中。 
		/*
		 * properties集合中存储都是String类型的键和值。
		 * 最好使用它自己的存储和取出的方法来完成元素的操作。
		 */
		Properties prop = System.getProperties();
		
		Set nameSet = prop.stringPropertyNames();
		
		for(String name : nameSet){
			String value = prop.getProperty(name);
			
			System.out.println(name+"::"+value);
		}
		
	}
	
}

*02-其他对象API(Runtime类)

JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第5张图片


没有构造函数,

而这个类又具有非静态方法。

则这个类,至少是有一个类是静态的,能返回对象。——单例模式、


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第6张图片


package cn.itcast.p1.otherapi;

import java.io.IOException;

public class RuntimeDemo {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws IOException, InterruptedException {

		/*
		 * Runtime:没有构造方法摘要,说明该类不可以创建对象。
		 * 又发现还有非静态的方法。说明该类应该提供静态的返回该类对象的方法。
		 * 而且只有一个,说明Runtime类使用了单例设计模式。
		 * 
		 */
		
		Runtime r = Runtime.getRuntime();
		
//		execute: 执行。 xxx.exe 
		
		Process p = r.exec("notepad.exe");
		Thread.sleep(5000);
		p.destroy();
	}

}

只能杀死Runtime开启的。


*03-其他对象API(Math类)


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第7张图片


package cn.itcast.p1.otherapi;

import java.util.Random;

public class MathDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		/*
		 * Math:提供了操作数学运算的方法。都是静态的。
		 * 
		 * 常用的方法:
		 * ceil():返回大于参数的最小整数。
		 * floor():返回小于参数的最大整数。
		 * round():返回四舍五入的整数。
		 * pow(a,b):a的b次方。
		 * 
		 */
		double d1 = Math.ceil(12.56);
		double d2 = Math.floor(12.56);
		double d3 = Math.round(12.46);
		
//		sop("d1="+d1);
//		sop("d2="+d2);
//		sop("d3="+d3);
		
//		double d = Math.pow(10, 2);
//		sop("d="+d);
		
		Random r = new Random();
		for (int i = 0; i < 10; i++) {
			
//			double d = Math.ceil(Math.random()*10);
//			double d = (int)(Math.random()*6+1);
//			double d = (int)(r.nextDouble()*6+1);
			int d = r.nextInt(6)+1;
			System.out.println(d);
		}
	}

	public static void sop(String string) {
		System.out.println(string);
	}

}


*04-其他对象API(Date类)

Date(long date)
          分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第8张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第9张图片


	/**
	 * 日期对象和毫秒值之间的转换。
	 * 
	 * 毫秒值-->日期对象 : 
	 * 	1,通过Date对象的构造方法  new Date(timeMillis);
	 *  2,还可以通过setTime设置。 
	 *  因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。
	 *   void setTime(long time) 
         *     设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 
	 * 
	 * 日期对象-->毫秒值:
	 * 	2,getTime方法。
	 * 因为可以通过具体的数值进行运算。 
	 *long getTime() 
         *    返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 
	 * 
	 * 
	 */
	public static void methodDemo_1() {
		long time = System.currentTimeMillis();//
//		System.out.println(time);//1335671230671
		
		Date date = new Date();//将当前日期和时间封装成Date对象。
		System.out.println(date);//Sun Apr 29 11:48:02 CST 2012
		
		Date date2 = new Date(1335664696656l);//将指定毫秒值封装成Date对象。
		System.out.println(date2);
	}
	

boolean after(Date when)
          测试此日期是否在指定日期之后。
 boolean before(Date when)
          测试此日期是否在指定日期之前。
 Object clone()
          返回此对象的副本。
 int compareTo(Date anotherDate)
          比较两个日期的顺序。

*05-其他对象API(Date类-日期对象转成字符串)


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第10张图片



JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第11张图片



JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第12张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第13张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第14张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第15张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第16张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第17张图片



JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第18张图片



/**
	 * 对日期对象进行格式化。
	 * 将日期对象-->日期格式的字符串。
	 * 	使用的是DateFormat类中的format方法。
	 * 
	 * 
	 */
	public static void methodDemo_2() {
		
		Date date = new Date();
		
		//获取日期格式对象。具体着默认的风格。 FULL LONG等可以指定风格。
		DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
		dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
//		System.out.println(dateFormat);
		
		//如果风格是自定义的如何解决呢?
		dateFormat = new SimpleDateFormat("yyyy--MM--dd");
		
		String str_date = dateFormat.format(date);
		
		System.out.println(str_date);
	}


*06-其他对象API(Date类-字符串转成日期对象)


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第19张图片


	/**
	 * 将日期格式的字符串-->日期对象。
	 * 	使用的是DateFormat类中的parse()方法。 
	 * 
	 * @throws ParseException 
	 */
	public  static void methodDemo_3() throws ParseException {
		
		String str_date = "2012年4月19日";
		str_date = "2011---8---17";
		
				
		DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
		
		dateFormat = new SimpleDateFormat("yyyy---MM---dd");
		
		
		Date date = dateFormat.parse(str_date);
		
		System.out.println(date);
		
		
	}


*07-其他对象API(Date类-练习)

package cn.itcast.p1.otherapi.test;

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


/* 练习:
 * "2012-3-17"到"2012-4-6"
 * 中间有多少天?
 * 思路:
 * 两个日期相减就哦了。
 * 咋减呢?
 * 必须要有两个可以进行减法运算的数。
 * 能减可以是毫秒值。如何获取毫秒值?通过date对象。
 * 如何获取date对象呢?可以将字符串转成date对象。
 * 
 * 1,将日期格式的字符串转成Date对象。
 * 2,将Date对象转成毫秒值。
 * 3,相减,在变成天数 
 * 
 * 
 */

public class DateTest {

	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {

		String str_date1 = "2012-3-17";
		String str_date2 = "2012-4-18";
		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(time1-time2);
		
		
		int day = getDay(time);
		System.out.println(day);
		
	}

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



*08-其他对象API(Calendar类-基本演示)

JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第20张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第21张图片


package cn.itcast.p1.otherapi;

import java.util.Calendar;

public class CalendarDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Calendar c = Calendar.getInstance();
		
		int year = 2012;
		showDays(year);
	}

	/**
	 * @param c
	 */
	public static void showDays(int year) {
		
		Calendar c = Calendar.getInstance();
		c.set(year, 2, 1);
		
		c.add(Calendar.DAY_OF_MONTH, -1);
		
		showDate(c);
	}

	/**
	 * @param 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];
	}
	
	

}




*09-其他对象API(Calendar类-练习)

日期的偏移

set\get\add

JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第22张图片


JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第23张图片

JavaSe基础XX17——常用对象API-集合框架_6_其他对象API_第24张图片











你可能感兴趣的:(JavaSE)