其他API

来源:互联网 发布:峰会策划知乎 编辑:程序博客网 时间:2024/06/06 03:58

Api中的其他常见对象,这些对象都具备着一些小特点:

1, System类:

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

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

     常见方法:exit().cunrrentTimeMillis();gc(); getProperties();

getProperties方法是用来获取系统属性的。

   系统属性信息:就是程序在运行时获取到jvm以及所在操作系统的一些固有信息。

   这些信息获取后,为后面的程序运行提供了数据。

public static void systemMethodFemo(){

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

Propertiesprop=System.getProperties();

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

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

Set<String>nameSet=prop.stringPropertyNames();

for(Stringname:nameSet){

   String value=prop.getProperty(name);

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

}

}

//获取系统中指定的信息。

public static void systemMethodDemo2(){

  Properties prop=prop.getProperty(“os.name”);

  System.out.println(value);

}

  System类的小应用。

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

2,Runtime:

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

 

   该类没有构造函数。可是我们发现,该类中居然有特有的非静态方法,说明它不让其他程序创建该类对象,肯定会给我们提供一个方法获取它的对象。而且这个方法肯定是静态的。返回值一定Runtime

   这个方法就是getRuntime

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

   Runtime r=Runtime.getRuntime();

   Processp=r.exec(“notepad.exe c:\\other.txt”);

  Thread.sleep(4000);

   p.destroy();

3,Math:

   方法都是静态的

   //大于参数的最小整数。

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

   //小于参数的最大整数。

  double d2=Math.ceil(12.34)//12

//四舍五入

doubled3=Math.round(12.54);//13

Math.pow(10,3)//1000

For(inti=0;i<10;i++){

   double d=Math.random()*10;//随机数

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

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

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

  }

随机数对象

Random r=newRandom();

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

  int num=r.nextInt(10)+1;//获取下一个随机整数 

}

4,Date

   日期类

   //获取当前日期时间对象。直接new Date即可

Date d=newDate();

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

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

如果知道一个毫秒值,如何获取该种年与日呢?这时就需要将该毫秒值封装成Date对象。

因为有了对象后就可以通过方法来获取。

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

Date d=new Date();

Long time=d.getTime();

//将毫秒值转成日期对象

//通过Date构造函数完成

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

Date d2=new Date(13438759030l);//要加L

Date d3=new Date();

d3.setTime(13438759030l);

*将日期对象转成指定格式的日期字符串   格式化

使用到了DateFormat对象中的format方法。

Public static void dateFormate(){

1, 获取DateFormat对象。该类的静态方法getDateInstance();该方法返回的是日期默认的格式化对象

Date d=newDate();

//默认风格。就是MEDIUM

DateFormatdateFormat=DateFormat.getDateInstance();

//使用指定风格

dateFormat=DateFormat.getDateInstance(DateFormat.SHORT); //LONG FULL

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

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

//想要将该日期或者时间转换成自定义风格。如xxx#mm#  2012/8/21

dateFormat=newSimpleDateFormate(“yyyy/MM/dd HH:mm:ss”);

Stringstr_date=dateFormate.format(d);

System.out.println(d);

System.out.println(str_date);

}

*将日期字符串转成日期对象

为了获取其中的日期或者时间字段方便。

解析使用的是DateFormat类中的parse方法

public static void deteFormat() throwsParseException{

  //日期字符串。

  String str_date=“2012/3/2“;

   //定义一个日期格式化对象。要解析一个具体格式的日期字符串,必须要让该日期格式对象具备解析该格式的能力

   DateFormatdateFormat=DateFormat.getDateInstance();

   dateFormat=newsimpleDateFormat(“yyyy/MM/dd”);

   Datedate=dateFormat.parse(str_date);

  System.out.println(date);

}

计算两个时间之间的相隔天数

public static void main(String[] args) throwsParseException {

       String d1="2012/3/4";

       String d2="2012/5/4";

       DateFormat d=DateFormat.getInstance();

       d=new SimpleDateFormat("yyyy/MM/dd");

       Date da1=d.parse(d1);

       Date da2=d.parse(d2);

       long t1=da1.getTime();

       long t2=da2.getTime();

       long t=Math.abs(t1-t2);

       System.out.println(t/1000/60/60/24);

    }

Calendar:日历类 在util包中

 java.util 包抽象类,通过静态方法static Calendar getInstance();,返回本类实例对象

 构造函数供子类使用。

      获取方法

import java.util.*;

import java.text.*;

 

class CalendarDemo

{

 public static void main(String[] args)

 {

 Calendar c=Calendar.getInstance();

 

 //sop(c);

 

  //查表法

 String[] mons = {"一月","二月","三月","四月","五月","六月",

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

 String[] weeks = {"","星期日","星期一","星期二","星期三",

      "星期四","星期五","星期六"};

  intindex = c.get(Calendar.MONTH);//使用查表法获取大写的月份

 

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

 }

}

修改方法

      add(int field, int amount)//根据日历的规则,为给定的日历字段添加或减去指定的时间量

 指定方法

      set(int field, int value)//将给定的日历字段设置为给定值

      set(int year, int month, int date)

      set(int year, int month, int date, int hourOfDay, int minute)

       set(int year, int month, int date, inthourOfDay, int minute, int second)

 

  例

 Calendar c = Calendar.getInstance();

 c.set(2013,2,1);//指定年与日

 c.add(Calendar.DAY_OF_MONTH,-1);//月份减一

  intnum = c.get(Calendar.DAY_OF_MONTH);//获取

 sop(num);

练习:获取任意年的2月有多少天?

Public Calendar getDay(int year){

  Calendar c=Calendar.getInstance();

  c.set(year,2,1);

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

  return c;

}

原创粉丝点击