黑马程序员 Java基础九

、java学习型技术博客、期待与您交流! ————

第一节 System 类

一、概述:

1、System类是描述系统一些信息的类,不可以实例化,也无构造函数。

2、System类中的方法和属性都是静态的。

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

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

二、方法:

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

Properties getProperties();

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

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

2、获取指定属性信息:

String System.getProperty(String key);

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

void System.setProperty(String key,String value);

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

通过命令:java -D<name>=<value> 可以设置特有的系统属性信息

示例:

……String s = getProperty("os.name");System.out.println("os.name|:" + s);System.setProperty("name—-:","xixi");System.out.println("————————-");String v = System.getProperty("myName");System.out.println("v = " + v);Properties pop = System.getProperties();for(Object obj : pop.keySet()){String value = (String)pop.get(obj);out.println(obj + ":" + value);}……

第二节 Runtime 类

一、概述:

1、每个java应用程序都有一个Runtime类实例,使用应用程序能与其中运行的环境相连接,应用程序不能创建自己的Runtime类的实例,是由系统底层自己创建的。

2、该类并未提供构造函数:说明不可以new对象,那么会直接想到该类中的方法都是静态的。查阅API文档发现,该类中还有非静态方法,说明该类中肯定会提供方法获取该类对象,并且该方法是静态的,且返回值类型是该类类型。

3、由这个特点可以看出该类使用了单例设计模式。

二、方法:

1、获取本类对象:

static Runtime getRuntime();

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

Process exec(String command);

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

void destroy();

示例:

……Runtime r = Runtime.getRuntime();Process p = r.exec("winmine.exe");//System.out.println(r);Thread.sleep(6000);p.destroy();……

第三节 时间类

一、Date类

1、概述:

java中默认的格式如:Sun Jan 16 10:20:48 CST 2011

这样的格式不一定满足每个人的需求,那么就需要自定义格式,需要格式化模式。具体步骤:

1)创建Date对象2)将模式封装到SimpleDateFormat对象中3)调用format方法让模式格式化指定Date对象

示例:

……Date d = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss");String time = sdf.format(d);System.out.println("Time =" + time);……二、Calendar类

1、概述:

1)Calendar是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH等日历字段之间的转换提供了一些方法。

2)Calendar可以对年月日等时间进行获取。并提供了相应的子段值。可参阅API文档。

2、方法:

2.1、基本获取时间

1)获取年份:Calendar.YEAR2)获取月份:Calendar.MONTH3)获取日期:Calendar.DAY_OF_MONTH4)获取星期:Calendar.DAY_OF_WEEK5)获取小时:Calendar.HOUR_OF_DAY6)获取分钟:Calendar.MINUTE7)获取秒数: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 set(int year,int month,int date);

3、关于Calendar中的常量值理解:

当我在获取时间的时候,会少写get方法,而直接写的是Calendar.DAY_OF_MONTH,结果发现不是自己想要的值,而是一个固定为5的值,为什么呢?

今天我翻阅了api文档,查看了一下关于Calendar中的DAY_OF_MONTH字段数字,没错,它被称为get 和 set 的字段数字,而且你细心一点就会发现,它是这样被定义的:

public static finalintDAY_OF_MONTH

发现这些字段数字都是静态的常量值,那为什么还能对其修改呢?还可以使用add,set等方法对其设置呢?我对这个问题开始也很迷惑,百度了之后,才大概有些明白,我的理解是这样的:

你可以把这个Calendar中的YEAR的常量值理解为它的小名,打个比方说,一个人大名叫张三,你可以叫他的小名为小张,这个张三就相当于YEAR,而这个小张就是YEAR的常量值,为什么要这么设置呢?

在开始时却总是不厌其烦地渗透入生活的缝隙,

黑马程序员 Java基础九

相关文章:

你感兴趣的文章:

标签云: