JavaAPI

理解API的概念
(Application Programming Interface)
JDK文档:http://download.oracle.com/javase/6/docs/
**********************************************************************************************
String类和StringBuffer类
 位于java.lang包中
 String类对象中的内容一旦被初始化就不能再改变。
 StringBuffer类用于封装内容可以改变的字符串。
 
 String x="a"+4+"c"编译时等效于:String x=new StringBuffer().append("a").append(4).append("c").toString();
 StringBuffer做+运行效率高

 String s1="hello";String s2="hello"; s1与s2指向同一个地址 ==true .equals()true
 String s1=new String("hello");String s2=new String("hello"); s1与s2指向不同的地址 ==false .equals()true
 .equalsIgnoreCase()判断相等时忽略大小写

 构造方法:String(byte[] byte,int offset开始,int length长度)
 .toString方法转换成String类型
 .indexOf(int ch,int offset开始)用于返回字符位置
 .substring(int beginIndex)
 .substring(int beginIndex开始,int endIndex结束<不含>)用于返回子字符串

**********************************************************************************************
基本数据类型和对象包装类
 基本数据类型boolean/byte/char/short/int/long/float/double
 对象包装类Boolean/Byte/Character/Short/Integer/Long/Float/Double

 .toString方法转换成String类型
 .intValue() 返回this Integer as a int
 Integer.parseInt(String s,int radix) 返回s的int
 Integer.valueOf(String s,int radix) 返回s的Integer

**********************************************************************************************
集合类
 Vector类 (动态数组)(线程同步)v.addElement(); Enumeration e=v.elements();
 Enumeration接口 e.hasMoreElement()判断该地址是否有值 e.nextElement()返回值并指向下一个地址

 Collection接口 (各元素对象之间没有指定顺序,允许有重复元素和多个null元素对象)
 Set接口 (Collection接口子类)(各元素对象之间没有指定顺序,不允许有重复元素,最多允许有一个null元素对象)
 List接口 (Collection接口子类)(各元素对象之间有指定顺序,允许有重复元素和多个null元素对象)

 ArrayList类 (List接口实现)a.add();
 Iterator接口 Iterator i=a.iterator(); i.hasNext()判断该地址是否有值 i.next()返回值并指向下一个地址
 Collections静态类 (操作集合对象) Collections.sort(a);

**********************************************************************************************
Hashtable与Properties类 (import java.util.*;)
Hashtable类 (动态存储"关键字与值"相关联对象)
 .put(Object gjz,Object zh)
 .get(Object gjz)返回zh (用作关键字的类必须覆盖Object.hashCode方法和Object.equals方法)

/**
 * 关键字的类
 */
public class MyKey{
    private String name = null;
    private int age = 0;
    public boolean equals(Object obj){
        if(obj instanceof MyKey)
        {
            MyKey objTemp = (MyKey)obj;
            if(name.equals(objTemp.name) && age==objTemp.age)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    public int hashCode(){
        return name.hashCode() + age;
    }
 .keys()返回Enumeration对象,通过Enumeration对象获得所有的"关键字与值"。

Properties类 (Hashtable类子类,增加了保取到文件的方法)
 .setProperty(String gjz,String zh)
 .getProperty(String gjz)
 .load(InputStream in)
 .store(OutputStream out,String comments)
/**
 * 用文件记录程序运行次数
 */
import java.util.Properties;
import java.io.*;
public class PropertiesFile {
    public static void main(String[] args) {
        Properties setting = new Properties();
        try {
            setting.load(new FileInputStream("count.txt"));
        } catch (Exception e) {
            // TODO: handle exception
            setting.setProperty("count", String.valueOf(0));
        }       
        int c = Integer.parseInt(setting.getProperty("count"))+1;
        System.out.println("这是第"+c+"次运行。");   
        setting.setProperty("count", new Integer(c).toString());
        try {
            setting.store(new FileOutputStream("count.txt"), "Program is used:");
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
}

**********************************************************************************************
System类与Runtime类

System类 (静态类 类似全局变量和函数)
 .exit()终止虚拟机运行,如异常(非零)、操作正常(0)
 .currentTimeMillis()返回自1970年1月1日00:00:00起之当前的毫秒,long型
/**
 * 计算程序运行时间
 */
long startTime = System.currentTimeMillis();
//程序内容
long endTime = System.currentTimeMillis();
System.out.println("total running time:"+(endTime-startTime));
 Java虚拟机的系统属性(set a system property)(cmd中 java -DAAA=b -DBB=a MyClass)
 .getProperties()
 .setProperties()
/**
 * 获取和设置Java虚拟机的系统属性
 */
import java.util.Enumeration;
import java.util.Properties;
public class TestProperties {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Properties sp =System.getProperties();
        //System.setProperties(sp);
        Enumeration e = sp.propertyNames();
        while(e.hasMoreElements())
        {
            String key = (String)e.nextElement();
            System.out.println(key+"="+sp.getProperty(key));
        }
    }
}

 

Runtime类 (Java命令本身所启动的实例进程,也就是封装了Java虚拟机进程,一个Java虚拟机对应一个Runtime实例对象)
Runtime.getRuntime静态方法得到Runtime实例对象
/**
 * 在Java程序中启动一个Windows记事本,并打开本程序源文件,启动5秒后关闭
 */
        Process p = null;
        try {
            p = Runtime.getRuntime().exec("notepad.exe ./src/com/lyonte/java/TestProperties.java");
            Thread.sleep(5000);
            p.destroy();
        } catch (Exception ex) {
            // TODO: handle exception

        }

 

**********************************************************************************************
Date、Calendar与DateFormat类
Calendar类
 .add(c.XXX,int)
 .get(Calendar.XXX)
 .set()
 Calendar.getInstance()返回GregorianCalendar类(Calendar子类)对象
/**
 * 计算距当前日期时间315天后的日期时间,Calendar.MONTH加1,WEEK减1,DAY不用
 */
import java.util.Calendar;
public class TestCalendar {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Calendar c1 = Calendar.getInstance();
        System.out.println(c1.get(Calendar.YEAR)+"年"+(c1.get(Calendar.MONTH)+1)+"月"+c1.get

(Calendar.DAY_OF_MONTH)+"日"+c1.get(Calendar.HOUR)+":"+c1.get(Calendar.MINUTE)+":"+c1.get(Calendar.SECOND));
        c1.add(c1.DAY_OF_YEAR, 315);
        System.out.println(c1.get(c1.YEAR)+"年"+(c1.get(c1.MONTH)+1)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get

(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
    }
}

Date类
java.text.DateFormat类(抽象类)
java.text.SimpleDateFormat类(DateFormat子类)
/**
 * 将“2002-03-15”格式的日期字符串转换成“2002年03月15日”的格式
 */
import java.util.*;
import java.text.SimpleDateFormat;
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");//模式字符
        try {
            Date d =sdf1.parse("2003-03-15");
            System.out.println(sdf2.format(d));
        } catch (Exception e) {
            // TODO: handle exception
        }   

**********************************************************************************************
Timer与TimerTask类
  schedule方法指定过多长时间后启动一个任务线程来执行一段代码,或者定期的执行一段代码
 -schedule(TimerTask task,long delay) 过delay时间后,开始执行task
 -schedule(TimerTask task,Date time) 在time时间,开始执行task
 -schedule(TimerTask task,long delay,long period) 过delay时间后,开始period定期执行task
 -schedule(TimerTask task,Date firstTime,long period) 在firstTime时间,开始period定期执行task
TimerTask类实现了Runnable接口,要执行的任务由它里面实现的run方法来完成。
/**
 * 程序启动运行后10秒启动Windows自带的计算器程序
 */
        new Timer().schedule(new TimerTask()
        {
            public void run()
            {
                try {
                    Runtime.getRuntime().exec("calc.exe");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }, 10000);
/**
 * 程序启动运行后10秒启动Windows自带的计算器程序,加入结束任务线程的代码
 */
Timer tm = new Timer();
tm.schedule(new MyTimerTask(tm), 10000);
/相当于指定时间调用new Tread(new MyTimerTask(tm)).start();
class MyTimerTask extends TimerTask
{
    private Timer tm = null;
    public MyTimerTask(Timer tm)
    {
        this.tm=tm;
    }
    public void run()
    {
        try {
            Runtime.getRuntime().exec("calc.exe");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //结束任务线程的代码
        tm.cancel();
    }

}

 

**********************************************************************************************
Math与Random类

Math类 包含了所有用于几何和三角运算的方法

Random类 是一个伪随机数产生器
-Random()用当前时间做seed
-Random(long seed)根据seed种子生成随机数对象,seed相同生成对象产生的随机就相同

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值