API(Application Programming Interface)
Java API--是JDK中提供的各种java类
Java开发工具
Borland公司的Jubilder
IBM公司的Visual Age
Sun公司的Sun ONE Studio
赛门铁克的Visual cafe
Jcreator
类
String和StringBuffer --位于java.lang
String类对象中的内容一旦被初始化就不能再改变
StringBuffer类用于封装内容可以改变的字符串
用toString方法转换成String类型
String x="a"+4+"c";编译时等效于
String x=new StringBuffer().append("a").append(4).append("c").toString();
字符串常量(“Hello”)实际上是一种特殊的匿名String对象
String s1=“hello”; String s2="hello" 用“=”操作符是ture
String s1=new String("hello"); String s2=new String("hello"); 用“=”操作符是false
编程实列:逐行读取键盘输入,知道输入的内容为“bye”时,结束程序。
public class ReadLine throws IOException{
public static void main(String args){
byte [] buf=new byte[1024];//输入的内容不能超过1024
String strInfo=null; //定义字符串对象
int pos=0;
int ch=0;
while(true){
ch=System.in.read();
switch(ch)
{
case '\r':
break;
case '\n':
strInfo=new String(buf,0,pos);
if(strInfo.equal("byte")){
return;
}
else{
System.out.println("strInfo");
pos=0;
break;
}
default:
buf[pos++]=(byte)ch;
}
}
}
String 类的常用成员方法
构造方法:
String(byte[] byte,int offset,int length)
equalslgnoreCase 方法:不区分大小写
indexOf(int ch)返回字符首次出现的问题
System.out.println("hell word!".indexOf('o'));
substing(int beginIndex)
System.out.println("hello word".substring(6));//意思就是用第六个字符开始,后面的都作为子字符串返回
substring(int beginIndex,int endIndex)返回的是从beginIndex到endIndex-1的字符
基本数据类型的对象包装类
基本数据类型 包装类
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
打印*矩形
public class TestInteger{
int w=new Integer(args[0].inValue());
int h=Integer.parseInt(args[1]);
for(int i=0;i<h;i++)
{
StringBuffer sb=new StringBuffer();
for(int j=0;j<w;j++)
{
sb.append('*');
}
System.out.println(sb.toString());
}
}
集合类
Vector Enumeration ArrayList Collection Lterator Set List
编程举例:将键盘输入的一个数字序列中的每位数字存储在Vector对象中,然后在屏幕上打印出每位数字相加的结果,例如,输入32,打印出5,输入1234,打印出10.
import java.util.*;
public class TestVector{
public static void main(String args[])throws
IOException{
int b=0;
Vector v=new Vector();
System.out.println("please enter number:");
while(true){
int b=System.in.read();
if(b=='\r'||b=='\n')
break;
else{
int num=b-'0';// '1'=49'0'=48;
v.addElement(new Integer(num));
}
}
int sum=0;
Enumeration e=v.elements();
while(e.hasMoreElements()){
Integer intObj=(Integer)e.nextElement();//返回指示元素--一个指示器--返回的是一个object
sum+=intObj.intValue();
}
System.out.println(sum);
}
}
public class TestSort{
public static void main(String args[]){
ArrayList al=new ArrayList();
a1.add(new Integer(1));
a1.add(new Integer(3));
a1.add(new Integer(2));
System.out.println(a1.toString());
Collection.sort(a1);
System.out.println("a1.toString()");
}
}
Collection各元素对象之间没有指定的顺序,允许有重复元素和多个null元素对象
Set各元素对象之间没有指定的顺序,不允许有重复元素最多允许有一个null元素对象
List各元素对象之间有指定的顺序,允许有重复元素和多个null元素对象
Hashtable类:
Hashtable numbers=new Hashtable();
numbers.put("one",new Integer(1));
numbers.put("two",new Integer(2));
numbers.put("three",new Integer(3));
Integer n=(Integer)numbers.get("two")
if(n!=null)
{
System.out.println("two="+n);
}
Properties类
Properties类是Hashtable的子类--所有的属性都是String
编程举例:使用Properties把程序的启动运行次数记录在men个文件中,每次运行时打印出他的运行次数
public class PropertiesFile{
public static void main (String args[]){
Properties setting=new Properties();
setting.load(FileInputStream("coun.txt"));
setting.get("count");//因为这个里得到的是object
try{
setting.getProperty("count");
}catch(Exception e){
setting.setProperty("count",String.valueOf(0));//整数转化为字符串
}
int c=Integer.parseInt(setting.getProperty());
System.out.println("这是第"++"运行");
setting.put("count",new Integer(c).toString());//
setting.setProperty("count",new Integer(c).toString());
try{
setting.store(FileOutputStream("count.txt"),"Program is used:");//存入的文件
}catch(Exception r){e.printStackTrace();}
}
}
SystemRuntime类
-exit方法--正常操作要终止程序传0,程序有异常,要异常终止程序传一个非0值
-currentTimeMillis方法--long--返回1970年1月1日0时0分0秒
public class PropertiesFile{
public static void main (String args[]){
long startTime=System.currentTimeMillis();
Properties setting=new Properties();
setting.load(FileInputStream("coun.txt"));
setting.get("count");//因为这个里得到的是object
try{
setting.getProperty("count");
}catch(Exception e){
setting.setProperty("count",String.valueOf(0));//整数转化为字符串
}
int c=Integer.parseInt(setting.getProperty());
System.out.println("这是第"++"运行");
setting.put("count",new Integer(c).toString());//
setting.setProperty("count",new Integer(c).toString());
try{
setting.store(FileOutputStream("count.txt"),"Program is used:");//存入的文件
}catch(Exception r){e.printStackTrace();}
}
long endTime=Sys.currentTimeMillis();//检测一段程序运行的时间值
System.out.println("total runtime time:"+(endTime-starTime));//从开始到最后用了多少时间
}
java虚拟机的系统属性
java -dAAA=b -DBB=a MyClass 增加系统属性一个AAA一个BBB
取出java虚拟机的系统属性
getProperties和setProperties
取出系统中所有属性的名称
public class TestProperties{
public static void main(String args[]){
Properties sp=Syste.getProperties();
Enumeration e=sp.propertyName();
while(e.hasMoreElements()){
String key=(String)e.netxElement();
System.out.println(key+"="+sp.getProperty(key));
}
}
}
Runtime类
-不能直接创建实例对象
Runtime.getRuntime--静态方法
编程实例:在java程序中启动一个Windows记事本程序的运行实例,并在运行实例中打开这个java程序的源文件,启动的记事本程序5秒钟后被关闭。
public class TestProperties{
public static void main(String args[]){
Properties sp=Syste.getProperties();
Enumeration e=sp.propertyName();
while(e.hasMoreElements()){
String key=(String)e.netxElement();
System.out.println(key+"="+sp.getProperty(key));
}
Process p=null;//启动的一个进程
try{
p=Runtime.getRuntime().exec("notepad.exe TestProperties.java");
Thread.sleep(5000);
p.destroy();//关闭
}catch(Exception ex){
e.pringStackTrace();
}
}
}
与日期和时间有关的类
Date,DateFormat,Calendar
Calendar类:
--Calendar.add--在他上面可以增加若干个年月日
--Calendar.get--获取
--Calendar.set--修改
--Calendar.getInstance静态方法
子类--GregorianCalendar
编程实例:计算出距当前日期时间315天后的日期时间,并用“XXX年XX月XX日XX小时:XX分XX秒”的格式输出。
public calss TestCalendar{
public static void main(Stringargs[]){
Calendar c1=Calendar.getInstance();
System.out.println(c1.get(Calendar,YEAR)+"年"+c1.get(c1.Month)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+"小时"+c1.get(c1.MINUTE)+"分"+c1.get(c1.SECONDS)+"秒");
C1.add(c1.DAY_OR_YEAR,315);
System.out.println(c1.get(Calendar,YEAR)+"年"+c1.get(c1.Month)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+"小时"+c1.get(c1.MINUTE)+"分"+c1.get(c1.SECONDS))+"秒";
}
}
Date类
java.text.DateFormat与java.text.SimpleDateFormat子类
编程实例:将"2002-03-15"格式的日期字符串换成"2002年03月15日"的格式
public calss TestCalendar{
public static void main(Stringargs[]){
Calendar c1=Calendar.getInstance();
System.out.println(c1.get(Calendar,YEAR)+"年"+c1.get(c1.Month)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+"小时"+c1.get(c1.MINUTE)+"分"+c1.get(c1.SECONDS)+"秒");
C1.add(c1.DAY_OR_YEAR,315);
System.out.println(c1.get(Calendar,YEAR)+"年"+c1.get(c1.Month)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+"小时"+c1.get(c1.MINUTE)+"分"+c1.get(c1.SECONDS))+"秒";
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){
e.printStackTrace();
}
}
}
Time与TimerTask类
schedule方法:
schedule(TimerTask,long delay)
schedule(TimerTask,Date time)
schedule(TimerTask,long delay,long period)
schedule(TimerTask task,Date firstTime,long period)
TimerTask类实现了Runnable接口,执行任务时由它里面实现的run方法类完成
编程实例:程序启动运行后30秒启动Windows自带的计数器程序。
public calss TestCalendar{
public static void main(Stringargs[]){
Calendar c1=Calendar.getInstance();
System.out.println(c1.get(Calendar,YEAR)+"年"+c1.get(c1.Month)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+"小时"+c1.get(c1.MINUTE)+"分"+c1.get(c1.SECONDS)+"秒");
C1.add(c1.DAY_OR_YEAR,315);
System.out.println(c1.get(Calendar,YEAR)+"年"+c1.get(c1.Month)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+"小时"+c1.get(c1.MINUTE)+"分"+c1.get(c1.SECONDS))+"秒";
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){
e.printStackTrace();
}
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(Exception e){
e.printStackTrace();
}
//结束任务线程的代码
tm.cancel();
TimerTask.cancel();//
}
}
Timer tm=new Timer();
tm.schedule(new MyTimerTask(tm),30000);
//new Thread(new MyTimerTask().star())
}
}
Math与Random
Math类包含了所有用于几何和三角运算的方法
Random类是一个伪随机数产生器