您的位置:首页 > 职场人生

黑马程序员—java基础学习--API其他对象

2014-11-12 15:19 495 查看
能够熟练的使用java,必须会懂得JavaAPI,而除了我们经常使用的这些API对象以外,还有一些开发中其他的一些对象,这些对象同样这占着很大一步分的比例,所以也应该熟练的应用一切别的对象,如我们常用的Syste.out就是System对象的方法,今天,我们一起走入JavaAPI中的其他对象。

*System

java.lang.System类中的方法和属性都是静态的:

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

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

描述系统一些信息。

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

System类中的应用,代码如下:

import java.util.*;

class SystemDemo
{
public static void main(String[] args)
{
Properties prop = System.getProperties();
//因为Properties是HashTable的子类,也就是Map集合的一个子类对象,
//那么可以通过Map的方法取出集合中的元素
//该集合存储的都是字符串,没有泛型定义
/*
Iterator it = prop.keySet().iterator();
while(it.hasNext()){
String key = (String)it.next();
String value = (String)prop.get(key);
System.out.println(key+":"+value);
}
*/

//如何在系统中自定义一些信息呢?
System.setProperty("mykey","myvalue");

//获取所有属性信息:
for(Object obj : prop.keySet()){
String key = (String)obj;
String value = (String)prop.get(obj);
System.out.println(key+"::"+value);
}

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

System.out.println(System.getProperty("v")); //当没有键时返回的为null
}
}

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

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

Runtime类的应用如下:

class RuntimeDemo
{
public static void main(String[] args) throws Exception
{
//单例设计模式接受Runtime的本类对象
Runtime rt = Runtime.getRuntime();
//此方法可以代开程序,并关联本程序能打开的文件
Process p = rt.exec("notepad.exe SystemDemo.java");

Thread.sleep(4000);
//此方法杀掉子进程
p.destroy();
}
}

*Date
java.util.Date类表示特定的瞬间,精确到毫秒。

java.text.DateFormat 是日期/时间格式化子类的抽象类。

使用Date类和DateFormat类获取时间的代码如下:

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);
}
}


java.util.Calendar 类是一个抽象类,它为特定瞬间与一组诸如
YEAR
MONTH
DAY_OF_MONTH
HOUR

日历字段之间的转换提供了一些方法。
计算机Month对应的数值为0-11,表示的是一月到十二月。Week对应的数值为1-7,表示的是星期日到星期六

import java.util.*;
import java.text.*;

class CalendarDemo
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();

//可用此方法设置年月日
// c.set(2014,4,15);
//使日期添加或减少时间量
c.add(Calendar.YEAR,4);

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);

System.out.println(c.get(Calendar.YEAR)+"年");
//此处代码有些累赘,容易出错。可用查表法解决
// System.out.println((c.get(Calendar.MONTH)+1)+"月");
System.out.println(mons[index]);
System.out.println(c.get(Calendar.DAY_OF_MONTH)+"日");
// System.out.println("星期"+c.get(Calendar.DAY_OF_WEEK));
System.out.println(weeks[index1]);
}
}

*Math
java.lang.Math类是一个数学的工具类。

import java.util.*;

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

double d1 = Math.ceil(12.34); //ceil返回的是大于指定数据的最小整数
double d2 = Math.floor(12.34); //floor返回的是小于指定数据的最大整数
int d3 = Math.round(12.34); //round返回的是此数值的四舍五入值
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);

double d = Math.pow(2,3); //幂数运算
Systm.out.println(d);

for (int x=0; x<10 ; x++ )
{
int d = (int)Math.Random()*10+1; //Math.Random返回的是0-1之间的伪随机数
System.out.println(d);
}

//使用Random类返回1-10的随机数
Random r = new Random();
for (int x=0; x<10 ;x++ )
{
int d = r.nextInt(10)+1;
System.out.println(d);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: