第六讲 Java API
API的概念
Application Programming Interface应用程序接口。Windows API就是Windows操作系统提供的各种函数。Java API就是JDK提供的各种Java类,例如System类。
Java辅助开发工具的使用
Java工具软件:Borland公司的Jbuilder,IBM公司Visual Age,Sun公司的Sun ONE Studio,赛门铁克的Visual café,Jcreator
编译文件时文件必须在当前打开窗口中。
String类和StringBuffer类
位于java.lang包中,java.lang包中的类不用引入,编译器会默认将其导入。
String类对象中的内容一旦被初始化就不能再改变。
StringBuffer类用于封装内容可以改变的字符串(用toString方法转换成String类型),允许在后面追加字符串符号(append)。
String x = “a” + 4 + “c”在编译时等效于
String x = new StringBuffer().append(“a”).append(4).append(“c”).toString();
如果匿名String对象已经存在,有可能会出现多个字符串变量共享匿名String对象的情况,以节省内存。(String s1 = “hello”;String s2 = “hello”;此时s1 == s2。
String s1 = new String(“hello”); String s2 = new String(“hello”);此时s1 != s2)
对于在方法内部定义的变量,必须对其进行显式初始化。
无论在Windows还是linux操作系统,’\n’都当作一行输入的结束。
Windows操作系统中,要考虑’\r’。在Windows操作系统中,按下回车相当于输入了’\r’和’\n’两个动作。
String类的常用成员方法:
String(byte[] bytes,int offset,int length)
equalsIgnoreCase方法,可以忽略字母的大小写
indexOf(int ch)
substring(int beginIndex),substring(int beginIndex,int endIndex)
基本数据类型的对象包装类
基本数据类型 | 包装类 |
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
字符运算符“+”,实际上是先将string类型对象转换成stringBuffer对象,然后调用stringBuffer对象的append方法,接着把stringBuffer对象转换回string对象,这样的效率是比较低的。所以应该尽可能直接使用stringBuffer对象。
string类几个常用函数:equalsIgnoreCase indexof substring
集合类
Vector类与Enumeration接口。Vector类是Java提供的一种高级数据结构,可用于保存一系列对象。Vector.addElements只能接受对象类型的数据,先用Integer类包装了整数后,才能用Vector.addElements方法向Vector对象中加入这个整数对象。
Enumeration.nextElement方法是返回指示器正指向的那个对象,并将指示器指向下一个对象,nextElement方法返回的Object类型。
Vector类中的所有方法都是线程同步的;ArrayList类中的所有方法是非同步的。如果没有多线程问题,最好用ArrayList,程序的效率会高些;否则则用Vector,保证线程的安全性。
Collection与Set、List的区别
Collection是Set和List的父类。Collection各元素对象之间没有指定的顺序,允许有重复元素和多个null元素对象。Set各元素之间没有指定的顺序,不允许有重复元素,最多允许有一个null元素对象。List各元素对象之间有指定的顺序,允许有重复元素和多个null元素对象。
Colletions提供的所有方法都是静态的。不用生成实例对象即可调用。
Hashtable与Properties类
要成功地从Hashtable中检索数据,用作关键字的对象必须正确覆盖了Object.hashCode方法和Object.equals方法。
System类和Runtime类
Runtime类不能直接创建实例。但可以通过静态方法Runtime.getRuntime获得正在运行的Runtime对象的引用。
Date、Calendar与DateFormat类
在Date类设计时没有考虑到国际化的问题,所以程序员又多设计了DateFormat和Calendar类。
可以通过Calendar.getInstance方法返回GregorianCalendar类对象,或者使用new关键字生成一个新的Calendar对象。
SimpleDateFormat类中的parse方法要对抛出异常进行处理。
Timer与TimerTask类
timer的schedule方法有点像Thread启动新的线程。
一个Runtime对象对应一个Java虚拟机,所以Runtime的实例对象采用单态设计模式,即将构造函数加上private关键字,同时通过一个public方法来访问该private成员。
Math与Random类