第5章JavaAPI理解JavaAPI的概念了解Object类熟悉String类和StringBuffer类基本数据类型的对象类Hashtable与Properties类System类与Runtime类Date与Calendar,DateFormat类Math与Random类学习方法:多看代码,查API文档5.1JavaAPI的概念Java的类库是Java语言提供的已经实现的标准类的集合,是Java编程的API(ApplicationProgramInterface),它可以帮助开发者方便、快捷地开发Java程序。这些类根据实现的功能不同,划分为不同的集合,每个集合组成一个包,称为类库。Java类库中大部分都是由Sun公司提供的,这些类库称为基础类库。Java常用基础包java.lang包java.awt包java.util包java.applet包java.io包java.net包java.sql包Java基础包…System、Object、Class、Runtime基本数据类型包装类:Float、Double、Byte、Short、Integer、Long、Character、Boolean、Math、String、ThreadButton、TextField、TextArea、CheckBox、Label等控件类Color、Font、Point等Panel、Frame、Windows等容器类java.awt.event包ActionListener、TextListener、KeyListener、MouseListener、WindowsListener等事件监听器接口和适配器ActionEvent、TextEvent、ItemEvent、KeyEvent、MouseEvent等事件类Vector、Stack、LinkedList、Hashtable、TreeMap等容器类和用于遍历容器元素的迭代器Date、Time、Calender、Random、scanner等字节输入/输出流:InputStream、OutputStream字符输入/输出流:Reader、WriterFile、FileName、FilterConnection、StateMentRecordSet、DriverDatagramPacket、DatagramSocketSocket、ServerSocketMultiCastSocket、URL5.2Object类Object类是Java程序中所有类的直接或间接父类,处在类的最高层次。一个类在声明时若不指定父类,系统就会认为该类直接继承Object类Object类包含了所有Java类的公共属性和方法,这些属性和方法在任何类中均可以直接使用。Object类中主要的方法方法方法说明publicBooleanequals(Objectobject)比较两个类变量所指向的是否为同一个对象,是则返回truepublicfinalClassgetClass()获取当前对象所属类的信息,返回Class对象publicStringtoString()将调用toString()方法的对象转换成字符串protectedObjectclone()生成当前对象的一个备份,并返回这个副本publicinthashCode()返回该对象的哈希代码值protectedvoidfinalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。Object类的equals方法比较两个对象是否相等对于任何非空引用型变量x和y,当且仅当x和y引用同一个对象时,此方法返回trueclassEp{intx=1;}classep5_1{publicstaticvoidmain(Stringargs[]){epone=newEp();eptwo=newEp();System.out.println(“one.equals(two)是+(one.equals(two)));System.out.println(“one==two是+(one==two));one=two;System.out.println(赋值后,one.equals(two)是+(one.equals(two)));System.out.println(赋值后,one==two是+(one==two));Classb=one.getClass();System.out.println(对象one所属的类为:+b);}}P104例5-1默认调用b.toString()方法5.3String类和StringBuffer类String类和StringBuffer类用来处理字符串String类是不可变字符串类,即一个String对象所包含的字符串内容永远不会被改变;而StringBuffer类是可变字符串类,一个StringBuffer对象所包含的字符串内容可以被添加或修改。String常量字符串,一旦赋值或实例化后就不可更改。Strings=newString(“hello”);s=s+”,world!”StringBuffer可变字符串构造器,如频繁的修改字符串值,可以使用StringBuffer。5.3.1String类java.lang.String类代表字符串。Java程序中的所有字符串常量(如“abc”)都可作为此类的实例。如:Strings=“abc”字符串是常量,在创建之后值不能改变。String对象值不可变,字符串常量可共享classEp{intx=1;}classep5_1{publicstaticvoidmain(Stringargs[]){Stringa1,a2,a3=abc,a4=abc;a1=newString(abc);a2=newString(abc);System.out.println(a1.equals(a2)是+(a1.equals(a2)));System.out.println(a1==a2是+(a1==a2));System.out.println(a1.equals(a3)是+(a1.equals(a3)));System.out.println(a1==a3是+(a1==a3));System.out.println(a3.equals(a4)是+(a3.equals(a4)));System.out.println(a3==a4是+(a3==a4));}}P104例5-11.String类常用构造方法:publicString():一个空字符序列publicString(Stringoriginal):构造了初始字符串的一个副本。publicString(char[]value):由字符数组构造了一个新的StringpublicString(char[]cA,intoffset,intcount)publicString(byte[]bytes):由字节数组构造了一个新的String2.String类常用方法:publicintlength()publiccharcharAt(intindex)publicbooleanequals(ObjectanObject)IntcompareTo(StringanotherString)Stringconcat(Stringstr)byte[]getBytes()IntindexOf(intch)IntindexOf(Stringstr)Stringreplace(charoldChar,charnewChar)StringreplaceAll(StringoldStr,StringnewStr)Stringsubstring(intbeginIndex,intendIndex)StringtoLowerCase()StringtoUpperCase(Localelocale)Stringtrim()staticStringvalueOf(char/boolean/intc)P108例5-4P110例5-5publicString[]split(Stringregex,intlimit)功能:根据给定的正则表达式来拆分字符串Regex:指定需匹配的正则表达式Limit:指定模式使用次数若:Strings=“boo:and:foo”1、s.split(“:”,2);2、s.split(“:”,5);3、s.split(“:”,-2)4、s.split(“o”,5)5、s.split(“o”,-2)6、s.split(“o”,0)数量限定修饰符:+:1次或多次*:0次或多次?:0次或1次{n}:恰巧n次{n,m}:n到m次Strings1=boo:and:foo;String[]as=s1.split(o+);System.out.println(Arrays.toString(as));Strings2=boo.and.foo;String[]as2=s2.split(\\.);System.out.println(Arrays.toString(as2));考虑如何从表达式中拆分出操作数和操作符?如:3*8+8-7/9Strings3=12*4+8/9-9;String[]as3=s3.split(\\*|\\+|\\/|\\-);System.out.println(Arrays.toString(as3));String[]as4=s3.split(\\d+);System.out.println(Arrays.toString(as4));输出结果:[12,4,8,9,9][,*,+,/,-]5.3.2StringBuffer类java.lang包中的StringBuffer类表示可变字符序列。通过某些方法调用可以改变该序列的长度和内容。StringBuffer上的主要操作是append和insert方法。append方法始终将这些字符添加到缓冲区的末端;而insert方法则在指定的点添加字符。1.StringBuffer类的构造方法StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为16个字符。StringBuffer(intcapacity):构造一个不带字符,具有指定容量的字符串缓冲区。StringBuffer(Stringstr):构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。2.StringBuffer的常用方法:toString():返回此序列中数据的字符串表示形式。append(booleanb):将boolean参数的字符串表示形式追加到序列。length():返回长度(字符数)。charAt(intindex):返回此序列中指定索引处的char值。setCharAt(intindex,charch):将给定索引处的字符设置为ch。getChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin):将字符从此序列复制到目标字符数组dst。substring(intstart):返回一个新的String,它包含此字符序列当前所包含的字符子序列。insert(intoffset,Stringstr):将字符串插入此字符序列中。classep5_6{publicstaticvoidmain(Stringargs[]){StringBufferstr=newStringBuffer(62791720);str.insert(0,010-);str.setCharAt(7,'8');str.setCharAt(str.length()-1,'7');System.out.println(str);str.append(-446);System.out.println(str);str.reverse();System.out.print