2009-12-20 22:15:02
今天花了一天时间把传智播客的JAVA SE高级视频1 API看完了,还看了一部分高级视频 IO的视频,以下是API的笔记。
API: Application Programming Interface 应用程序编程接口
windows API:windows系统提供的
JAVA API:JDK中提供的各种java类(掌握常用的API就可以了,API可现学现用,现用现学)。
怎么算学会一门编程语言:以够用为原则,适可而止。
JAVA IDE:JBuilder、Eclipse、NetBeans、Jcreator等。
String、StringBuffer、StringBuilder类
String类对象中的内容一旦被初始化就不能再改变。(String常量池)
StringBuffer:可改变的字符串,toString(),线程安全的。
StringBuilder:可改变的字符串,线程不安全,更快。(常用)
StringBuffer、StringBuilder都继承自AbstractStringBuilder。
集合类:
Collection、Set、List区别:
Collection:各元素之间没有指定顺序,允许重复,允许多个null元素。
Set:各元素之间没有指定顺序,不允许重复元素,最多允许一个null元素。
List:各元素之间有指定顺序,允许重复,允许多个null元素。
Hashtable类:<key, value>
用作key的类必须覆写Object的hashCode方法和equals方法。
StringBuffer和StringBuilder类不能用做key,它们没有覆写hashCode方法和equals方法。
Properties类:Hashtable子类
增加了将Hashtable中key和value保存到文件和从文件中读取的方法。
如果要使用Properties的store方法存储,则key和value必须为String对象,否则抛出ClassCastException异常。
System、Runtime类:
System类(方法和属性都是static)
-exit()
-currentTimeMillis():返回当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
-Java虚拟机系统属性
-getProperties、setProperties
Runtime类:一个Runtime对应一个JVM,所以只能有一个Runtime实例存在(单例模式:将构造方法私有,然后提供一个获取实例的方法)。
-Runtime.getRuntime()
-exec():在单独的进程中执行指定命令,比如可以调用windows的记事本和计算器:
Runtime.getRuntime().exec("notepad.exe");
Runtime.getRuntime().exec("calc.exe");
与日期、时间相关的类
Date、DateFormat、Calendar
Calendar类:
-add()
-get(), set()
-getInstance() 一般返回的是GregorianCalendar 。
Date类:
DateFormat/SimpleDateFormat
new SimpleDateFormat("yyyy年MM月dd日HH小时:mm分:ss秒").format(new Date());
Timer和TimerTask类
Timer类的schedule(TimerTask,...)定时启动一个任务线程或定期调用任务线程。
TimerTask类:实现了Runnable接口。
Math、Random类
学习API方法:
1.有某一领域专业知识,再参看范例程序,才能更容易掌握和理解一些新的API类。
2.不要看什么Java API大全之类的书籍。
3.多结交程序员朋友,多上技术论坛。
4.动手实践。
Vector和ArrayList区别(网上查的):
1.Vector 1.0开始:是同步的,线程安全,同步会有额外性能开销;
ArrayList 1.2开始:是异步的,不是线程安全的。
2.两者内部都采用数组来控制,如果元素数量超出内部数组长度,需要扩展时,Vector会缺省增长原来的一倍长度,ArrayList是增加50%+1。
尽量使用List和HashMap(1.2 异步),而不是Vector和Hashtable(1.0 同步)。