现在的位置: 首页 > 综合 > 正文

黑马程序员—-Java中其它常用类

2013年09月16日 ⁄ 综合 ⁄ 共 4037字 ⁄ 字号 评论关闭

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

55、             System

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

out:标准输出

描述系统一些信息。

获取系统属性信息:Properties getProperties( );

示例代码:

package
day30;

import
java.util.Properties;

publicclass
SystemDemo {

        publicstaticvoid
main(String args[]){

                  Properties pro = System.getProperties();

                  /*因为PropertiesHashtable的子类,也是Map集合的一个子类对象

                   *
那么可以通过Map的方法取出该集合的元素

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

                   * */

                  //如何在系统中自定义一些特有属性?

                  System.setProperty("myKey","myValue");

                  //获取指定属性信息

                  System.out.println("value:"+System.getProperty("os.name"));

                  //获取所有属性信息

                  for(Object
obj :pro.keySet()){

                           String value = (String)pro.get(obj);

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

                  }

        }

}

可不可以再JVM启动时,动态加载一些属性信息呢?

答案是可以的,形式:java –D属性名称属性值类名

56、             Runtime

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

由以上特点,可以看出该类使用单力设计模式完成。

该方式是:static Runtime getRuntime( );

Java能杀掉自己启动的进程,系统提供的进程java是杀不掉的!

示例代码:

package
day30;

publicclass
RuntimeDemo {

        publicstaticvoid
main(String args[])
throws Exception {

                  Runtime run = Runtime.getRuntime();

                  //
C:\\Windows\\System32\\notepad.exe
或者以下

                  //如果想要在调用记事本程序的时候,打开某一个文件的话,如果这个文件是项目文件的话

                  //就应该放在根目录下,不是src目录下,例如demo.txt

                  //记事本可以打开电影文件,只不过显示的都是二进制数据而已。可能会超过记事本空间

                  Process pro = run.exec("notepad.exe      demo.txt");

                  Thread.sleep(4000);

                  //杀死进程

                  pro.destroy();

        }

}

57、             Date

示例代码:

package
day30;

import
java.util.Date;

import
java.text.SimpleDateFormat;

publicclass
DateDemo {

        publicstaticvoid
main(String args[])
throws Exception {

                  Date 
d =
new Date();

                  //将模式封装到SimpleDateFormat对象中,当把HH小写,就变成12进制的小时

                  SimpleDateFormat sdf =
new SimpleDateFormat("yyyyMMdd  E 
HH:mm:ss"
);

                  //调用format方法,让模式格式化指定Date对象

                  String date = sdf.format(d);

                  System.out.println(date);

        }

}

遗留问题?

问题:在DateFormatCalendar抽象类中,为什么有构造方法?抽象类允许有构造函数吗?

58、             Calendar

程序里面设计到查表法:利用月份的排序与数组角标的排序一致而进行的。

示例代码:

package
day30;

import
java.util.Calendar;

publicclass
CalendarDemo {

        publicstaticvoid
main(String args[]) {

                  Calendar c = Calendar.getInstance();

                  printCalendar(c);

                  //Calendar里面重要的一个方法:set()这个方法比较特殊

                  //可以设置时间,其中月份设置为2时,真实月份为3

                  c.set(2015,6,17);

                  printCalendar(c);

                  //add方法可以操作指定的字段

                  c.add(Calendar.MONTH,-4);

                  printCalendar(c);

        }

        publicstaticvoid
printCalendar(Calendar c) {

                  //现在开始写查表法

                  String months[] = {
"一月","二月","三月","四月","五月","六月","七月","八月",

                                    "九月","十月","十一月","十二月"
};

                  String weeks[] = {
"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"
};

                  int
index_month = c.get(Calendar.
MONTH);

                  int
index_week = c.get(Calendar.
DAY_OF_WEEK);

                  sop(c.get(Calendar.YEAR)
+
"");

                  //月份是从0,1,2……11结束

                  //sop(c.get(Calendar.MONTH)+"");

                  sop(months[index_month]);

                  sop(c.get(Calendar.DAY_OF_MONTH)
+
"");

                  //星期排序:星期日、星期一、星期二……星期六

                  //sop(c.get(Calendar.DAY_OF_WEEK));

                  sop(weeks[index_week]);

        }

        publicstaticvoid
sop(Object obj) {

                  System.out.println(obj);

        }

}

 

 

练习:

1、 获取任意年的二月有多少天?

思路:根据指定年设置一个时间

c.set(year,2,1)//设置为31

c.add(Calendar.DAY_OF_MONTH,-1);//31日往前推,就是2月最后一天,在获取Calendar.DAY_OF_MONTH

2、获取昨天的现在这个时刻

      c.add(Calendar.DAY_OF_MONTH,-1);

3、怎样判断有效的上课时间(周六、周日不算)

 

59、             Math

注意Math.ceil( )Math.round(
)
Math.floor( )

示例代码:

package day30;

import java.util.Random;

publicclass
MethDemo {

        publicstaticvoid
main(String args[]) {

                  show();

抱歉!评论已关闭.