黑马程序员_day21_其他api (一)

2014-11-24 11:49:48 · 作者: · 浏览: 18

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
一、System类:

不可以被实例化。没有构造函数。

该类中的方法都是静态的。

常见方法:

exit();currentTimeMillis()获取当前毫秒值;gc(); getProperties();


long time = System.currentTimeMillis();

System.out.println("hello:"+time);

systemMethodDemo2();

}

演示一下getProperties方法

是用来获取系统属性集的。

系统属性信息:就是程序在运行时获取到jvm以及所在操作系统的一些固有信息。这些信息获取后,为后面的程序运行提供了数据。

public static void systemMethodDemo(){

//将系统中的属性信息获取到存储到了Properties集合中。

Properties prop = System.getProperties();

//想要获取该集合中的信息。

可以使用该集合中的stringPropertyNames():先将其转成成set集合。而且这个方法已经指定了具体的类型。

Set nameSet = prop.stringPropertyNames();


for(String name : nameSet){

String value = prop.getProperty(name);

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

}

}


获取系统中的指定属性信息。

public static void systemMethodDemo2(){

Properties prop = System.getProperties();


String value = prop.getProperty("os.name");

System.out.println(value);

}

}


System类的小应用。

System.getProperty("line.separator"):获取不同系统平台中的换行符。

public class SystemTest {

private static final String LINE_SPARATOR = System.getProperty("line.separator");

public static void main(String[] args) {

System.out.println("hello"+LINE_SPARATOR+"world");

}

}


二、 Runtime:代表应用程序运行时对象。该对象不需要创建,直接通过getRuntime获取即可,因为该Runtime类是可以将应用程序和运行环境想结合的类。

该类没有构造函数。可是我们发现,该类中居然有特有的非静态方法。

说明它不让其他程序创建该类对象,肯定会给我们提供一个方法获取它的对象。

而且这个方法肯定是静态的。 返回值类型一定Runtime。

这个方法就是getRuntime。

注意:该类就是用单例设计模式完成的。

public class RuntimeDemo {

public static void main(String[] args) throws Exception {

Runtime r = Runtime.getRuntime();

Process p = r.exec("notepad.exe c:\\OtherApi.txt");

Thread.sleep(4000);

p.destroy();

}


}


三、Math类

Math:方法都是静态的。

大于参数的最小整数。

double d1 = Math.ceil(12.34); //13

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

小于参数的最大整数。

double d2 = Math.floor(12.34);//12

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

四舍五入。

double d3 = Math.round(12.54);

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

10的3次方

double d4 = Math.pow(10,3);

产生随机数的两种方式

1、通过math类的random():

for(int x=0; x<10; x++){

//double d = Math.ceil(Math.random()*10);

//double d = Math.floor(Math.random()*10+1);

int d = (int)(Math.random()*10+1);

System.out.println(d);

}

2、通过使用随机数对象:Random类的nextInt()方法

Random r = new Random();

for(int x=0; x<10; x++){

int num = r.nextInt(10)+1;

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

}

}


四、Date类。

Date:日期类。

//获取当前日期时间对象

直接new Date即可。

Date d = new Date();

System.out.println(d);

//日期对象和毫秒值之间的转换。

日期对象之间要进行基本运算,需要转成具体的毫秒数值才可以。


将日期对象转成毫秒值。使用的是Date对象中的getTime();

Date d = new Date();

long time = d.getTime();

System.out.println(time);

将毫秒值转成日期对象。

//通过Date 构造函数完成。

//通过Date类的set8Time方法设置一个指定的毫秒值。


Date d2 = new Date(1343807461796l); 或者:

Date d3 = new Date();

d3.setTime(1343807461796l);


}

}

五、DateFormat

1,获取DateFormat对象。通过查阅api说明,可以通过该类的静态方法getDateInstance();该方法返回的是日期默认的格式化对象。

Date d = new Date();

//默认风格。就是MEDIUM

DateFormat dateFormat = DateFormat.getDateInstance();

//使用指定风格。

dateFormat = DateFormat.getDateInstance(DateFormat.LONG);

//使用指定风格,包含着日期和时间。

dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);

System.out.println(dateFormat);

2、想要将该日期或者时间换成自定义风格。如:xxxx#mm# 2012/8/1

dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

String str_date = dateFormat.format(d);

System.out.println(str_date);

}

}


六、字符串转成日期对象