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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

第一讲   System类

一、概述

1、System是描述系统一些信息的类,类中的方法和属性都是静态的。不能被实例化,没有提供构造函数。

2、字段摘要

out:标准输出,默认是控制台。

in:  标准输入,默认是键盘。

二、方法

1、获取系统的属性信息:

Properties getProperties();

说明:

1)此方法返回的双列集合,即键值对;因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。那么可以通过map的方法取出该集合中的元素。

2)该集合中存储都是字符串。没有泛型定义。

2、获取指定属性信息:

String getProperty(String key);

3、在系统内定义特有信息:

String setProperty(String key,String value);

4、如何在jvm启动时,加载一些属性信息:

通过命令:java -D=可以设置特有的属性信息。

示例:

import java.util.*;
class SystemDemo 
{
	public static void main(String[] args) 
	{

		Properties prop = System.getProperties();
		
		//在系统中自定义一些特有信息
		System.setProperty("mykey","myvalue");

		//获取指定属性信息。
		String value = System.getProperty("os.name");

		System.out.println("value="+value);

		//在jvm启动时,动态加载一些属性信息
		String v = System.getProperty("haha");

		System.out.println("v="+v);

		/*
		//获取所有属性信息。
		for(Object obj : prop.keySet())
		{
			String value = (String)prop.get(obj);

			System.out.println(obj+"::"+value);
		}
		*/
	}
}

第二讲   Runtime类
一、概述
1、每个应用程序都有一个Runtime实例,使应用程序与其中运行的环境相连接。应用程序不能创建自己的Runtime类的实例。是由系统底层自己创建的。
2、该类并没有提供构造函数。说明不可以new对象。那么会直接想到该类中的方法都是静态的。查阅API文档,发现该类中还有非静态方法。说明该类肯定会提供了方法获
取本类对象。而且该方法是静态的,并返回值类型是本类类型。
3、由以上特点可以看出该类使用了单例设计模式完成。

二、方法

1、获取本类对象

static Runtime getRuntime();

2、在单独的进程中执行指定字符串命令

Process exec(String command);

3、在Process中有一个杀掉子进程的方法,可以将exec开启的进程结束

void destory();

示例:

class  RuntimeDemo
{
	public static void main(String[] args) throws Exception
	{
		Runtime r = Runtime.getRuntime();//获取本类对象
		Process p = r.exec("notepad.exe  SystemDemo.java");//用记事本打开指定文件
		
		//Thread.sleep(4000);
		//p.destroy();//杀掉指定进程

	}
}

 第三讲   时间类
一、Date
1、概述
Date类表示特定的时间,可以精确到毫秒。
java中的默认显示格式为:Sat Oct 17 11:03:47 CST 2015
2、自定义格式
默认的格式有些地方看不懂,那么就需要自定义格式化格式。因为Date类中的大部分方法已过时,所以只能找其子类来实现。子类DateFormat中有format方法可以实现。但是DateFormat是抽象类,不能实例化。但是其下有一个子类SimpleDateFormat子类,可以定义时间模式。
具体步骤:
1)创建Date对象
2)将时间模式封装到SimpleDateFormat对象中
3)调用format方法让格式化模式指定Date对象
代码:
import java.util.*;
import java.text.*;
class DateDemo 
{
	public static void main(String[] args) 
	{
		Date d = new Date();//创建对象
		System.out.println(d);

		//将模式封装到SimpleDateformat对象中。
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss");
		
		//调用format方法让模式格式化指定Date对象。

		String time = sdf.format(d);

		System.out.println("time="+time);

	}
}

二、Calendar类
1、概述
1)Calendar是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等日历字段之间的转换提供了一些方法。
2)Calendar可以对年月日等时间进行获取。并提供了相应的字段值。可参阅API文档。
2、方法
2.1、基本获取时间
1)获取年份:Calendar.YEAR
2)获取月份:Calendar.MONTH
3)获取日期:Calendar.DAY_OF_MONTH
4)获取星期:Calendar.DAY_OF_WEEK
5)获取小时:Calendar.HOUR_OF_DAY
5)获取分钟:Calendar.MINUTE
6)获取秒数:Calendar.SECOND
2.2、设置时间
1)根据日历的规则,为给定的日历字段添加或减去指定的时间量:
void add(int field,int amount);
2)获取指定的日历字段对应的时间值:
int get(int field);
3)将给定日历字段对应的时间值设置为给定值:
void set(int field,int value);
设置日历字段YEAR、MONTH和DAY_OF_MONTH:
void(int year,int month,int date);
示例:
import java.util.*;

class  CalendarDemo2
{
	public static void main(String[] args) 
	{

		Calendar c = Calendar.getInstance();

		//c.set(2012,2,23);

		c.add(Calendar.DAY_OF_MONTH,-18);
		
		printCalendar(c);//显示指定时间和时间
	}
	//设置指定日期和时间
	public static void printCalendar(Calendar c)
	{
		String[] mons = {"一月","二月","三月","四月"
					,"五月","六月","七月","八月"
					,"九月","十月","十一月","十二月"};


		String[] weeks = {
						"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",
							};		
		int index = c.get(Calendar.MONTH);
		int index1 = c.get(Calendar.DAY_OF_WEEK);
		//获取年份
		sop(c.get(Calendar.YEAR)+"年");
		//获取月份
		sop(mons[index]);
		//获取日期
		sop(c.get(Calendar.DAY_OF_MONTH)+"日");
		//获取星期
		sop(weeks[index1]);
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

练习:
/*
1,获取任意年的二月有多少天。
	思路:根据指定年设置一个时间就是 
	c.set(year,2,1)//某一年的3月1日。
	c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。



2,获取昨天的现在这个时刻。
	c.add(Calenar.DAY_OF_MONTH,-1);

*/
import java.util.*;

class CalendarTest
{
	public static void main(String[] args)
	{
		sop("2013年二月有:"+getDay(2013)+"天");

		sop("昨天的现在这个时刻:"+yesTime());
	}
	//练习1
	public static int getDay(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
	public static String yesTime()
	{
		Calendar c = Calendar.getInstance();
		c.add(Calendar.DAY_OF_MONTH,-1);
		return printCalendar(c);
	}
	//获取指定日期和时间
	public static String printCalendar(Calendar c)
	{
		String s = year(c)+month(c)+day(c)+ week(c)+""+time(c);
		return s;
	}
	//获取年份
	public static int year(Calendar c)
	{
		return c.get(Calendar.YEAR);
	}
	//获取月份
	public static String month(Calendar c)
	{
		String[] mons = {"一月","二月","三月","四月"
					,"五月","六月","七月","八月"
					,"九月","十月","十一月","十二月"};
		return mons[c.get(Calendar.MONTH)];
	}
	//获取日期
	public static int day(Calendar c)
	{
		return c.get(Calendar.DAY_OF_MONTH);
	}
	//获取星期
	public static String week(Calendar c)
	{
		String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		return weeks[c.get(Calendar.DAY_OF_WEEK)] ;
	}
	//获取时间 格式 时:分:秒
	public static String time(Calendar c)
	{
		String s = c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
		return s;
	}
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

第四讲   Math类
一、概述
Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数等。该类全为静态方法。
二、方法
1、double ceil(double a);//返回大于指定数据的最小整数。
2、double floor(double a);//返回小于指定数据的最大整数。
3、long round(double a);//四舍五入
4、double pow(double a,double b);//返回a的b次幂的值。
5、double random();返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
三、Random类
这是java.util中的一个单独的类,该类对象用于获取随机数。与Math中randm方法是一样的,不过这个类有自身的方法,将相应的随机数强转成指定的基本数据类型。
如:int nextInx(int n);//返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
练习:
import java.util.*;

class  MathDemo
{
	public static void main(String[] args) 
	{
		
		//获取0-10以内的整型随机数
		Random r = new Random();
		for(int x=0; x<10; x++)
		{
			int d = (int)(Math.random()*10+1);
			//int d = r.nextInt(10)+1;
			sop(d);
		}
	
	}
	//保留小数位的方法
	public static void keepDecimal()
	{
		double d = Math.ceil(16.34);//ceil返回大于指定数据的最小整数。
		double d1 = Math.floor(12.34);//floor返回小于指定数据的最大整数。

		long l = Math.round(12.54);//四舍五入
		sop("d="+d);
		sop("d1="+d1);
		sop("l="+l);

		double d2 = Math.pow(2,3);
		sop("d2="+d2);
	}
	public static void sop(Object obj)
	{
		
		System.out.println(obj);
	}
}

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------

你可能感兴趣的:(java学习笔记)