第七章Java标准类库课件

上传人:痛*** 文档编号:241663025 上传时间:2024-07-14 格式:PPTX 页数:50 大小:547.24KB
返回 下载 相关 举报
第七章Java标准类库课件_第1页
第1页 / 共50页
第七章Java标准类库课件_第2页
第2页 / 共50页
第七章Java标准类库课件_第3页
第3页 / 共50页
点击查看更多>>
资源描述
JavaJava标准类库标准类库【目的要求】v1掌握基本数据类型的包装类Boolean、Character、Double、Float、Byte、Short、Integer、Long等的应用。v2掌握java.lang包中的Object、System、Runtime和Math等类的应用。v3掌握java.util包中的Date、Calendar类和java.text包中DateFormat、SimpleDateFormat等日期类的应用。v4了解java.util包中有关集合框架接口及其实现类的应用。7.1 Java7.1 Java标准类库简介标准类库简介v类库就是JavaAPI(ApplicationProgrammingInterface,应用程序接口),是系统提供的已实现的标准类的集合。在程序设计中,合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。vJava类库中的类和接口大多封装在特定的包里,每个包具有自己的功能。MyProgram.javaJava APIJava Virtual Machine操作系统Java平台java语言的内核非常小,其强大的功能主要由类库体现。从某种意义上说,掌握Java的过程也是充分利用Java类库中丰富资源的过程。vJava API帮助文档(帮助文档(index.html)vJava包的分类:包的分类:Java的核心包(Javacorepackage)Java的扩展包(Javaextensionpackage)v常用的常用的Java核心包核心包java.lang包:Java语言包。程序运行时,编译器自动引入该包。包名以java开始包名以javax开始java.applet包:这个包包含Applet类和几个接口,用于创建Java小程序,处理小程序和浏览器之间的关系。java.awt包:Java抽象窗口工具箱包。该包由构建图形用户界面(GUI)的类组成。java.io包:Java输入/输出包,包括所有的输入/输出类,完成不同的输入/输出功能。java.util包:实用程序包,提供实现不同功能的类。包:Java网络包,用于网络通信。注意:除了java.lang包中的类系统自动引入外,若要使用其他包中的类,应在程序的开始部分引入相应的包。例如:importjava.io.*;importjava.applet.Applet;improtjava.awt.*;7.2 java.lang7.2 java.lang包包 java.lang包是Java的语言基础类库,系统自动引入该包。它主要包含以下类:7.2.1 7.2.1 简单数据类型包装器类简单数据类型包装器类 java.lang包中为每个基本数据类型定义了一个相应的类,这些类中的方法用来处理相应类型的数据。简单数据类型包装器类简单数据类型包装器类基本数据类型基本数据类型BooleanbooleanBytebyteCharactercharDoubledoubleFloatfloatIntegerintLonglongShortshortDouble类中的属性和方法:静态属性(Field)publicfinalstaticintMIN_VALUE:得到该类型数据的最小值。publicfinalstaticintMAX_VALUE:得到该类型数据的最大值。publicstaticfinalClassTYPE:得到该类对应的基本数据类型的关键字。例如:System.out.println(Double.MAX_VALUE);System.out.println(Double.MIN_VALUE);System.out.println(Double.TYPE);构造函数publicDouble(doublevalue)publicDouble(Strings)throwsNumberFormatException例如:Doubledoub1=newDouble(12.34);Doubledoub2=newDouble(“12.34”);除字符串末尾可有字符f或d外,只能包含负号、小数点或数值字符,否则会抛出异常。q常用方法public double doubleValue();功能:返回该Double类对象的double值。例如:System.out.println(doub1.doubleValue();7.2.2 Math7.2.2 Math类类vMath类提供了用于几何学、三角学以及几种一般用途方法的浮点函数,来执行很多数学运算。v三角函数vpublicstaticdoublesin(doublea)-三角函数正弦。vpublicstaticdoublecos(doublea)-三角函数余弦。v指数函数vpublicstaticdoublepow(doubley,doublex)-返回以y为底数,以x为指数的幂值。vpublicstaticdoublesqrt(doublea)-返回a的平方根。v舍入函数vpublicstaticintceil(doublea)-返回大于或等于a的最小整数。vpublicstaticintfloor(doublea)-返回小于或等于a的最大整数。vpublicstaticintround(doublea)-返回四舍五入的整数。vpublicstaticintabs(inta)-返回a的绝对值。vpublicstaticintmax(inta,intb)-返回a和b的最大值。vpublicstaticintmin(inta,intb)-返回a和b的最小值。v其它数学方法vpublicstaticdoublerandom()-返回一个伪随机数,其值介于0和1之间。7.2.3System类vSystem是一个功能强大、非常实用的特殊的类,它提供了标准输入/输出、运行时的系统信息等功能。它所有的属性和方法都是static的,引用时以System为前缀即可。v1用System类获取标准输入和输出流vSystem类的属性有:系统的标准输入流、标准输出流和标准错误输出流。publicstaticInputStreamin;publicstaticInputStreamout;publicstaticInputStreamerr;v通过这三个属性,Java程序就可以从标准输入流读入数据并向标准输出流写出数据。通常情况下,标准输入流指的是键盘,标准输出流和标准错误输出流指的是屏幕。charc=System.in.read();/获取键盘的输入System.out.println(“HelloWorld!”);/向屏幕输出HelloWorld!,并换行System类v在System类提供的方法中,除标准输入流、标准输出流和错误输出流外,还可以对外部定义的属性和环境变量的访问;加载文件和库的方法;以及复制数组的一些实用方法。下面列出了部分常用的System类方法。staticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)/从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。staticvoidexit(intstatus)/终止当前正在运行的Java虚拟机。staticlongcurrentTimeMillis()/返回自1970年1月1日午夜至今以毫秒为单位的时间。例:ArrayCopyDemo.javaElapsed.java7.2.4Runtime类v在每一个Java应用程序里,都有惟一的一个Runtime对象。通过这个Runtime对象,应用程序可以与其运行环境发生相互作用。v该惟一的Runtime对象可以通过Runtime类的getRuntime()方法获得,应用程序不能创建自己的Runtime类实例。一旦获得了对当前对象的引用,就可以调用几个控制Java虚拟机的状态和行为的方法。7.2.4Runtime类(续一)由Runtime定义的常用方法有:staticRuntimegetRuntime()/返回与当前Java应用程序相关的运行时对象。Processexec(Stringcommand)/在单独的进程中执行指定的字符串命令。longfreeMemory()/返回Java虚拟机中的空闲内存量。voidgc()/运行垃圾回收器。例:ExecDemo.java7.3java.util包vjava.util包中,提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数。7.3.1Date类和SimpleDateFormat类vDate类描述了一个精度为毫秒的特定时间实例。Java在Date类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时间或设置日期和时间。vDate支持的构造方法:Date()/用当前的日期和时间初始化对象。Date(long)/参数表示构造的日期对象到1970年1月1日00:00:00之间相隔的毫秒数。SimpleDateFormat类vDated=newDate();获取系统日期某个瞬间。vSimpleDateFormat类:对日期进行格式化。format()方法可以对指定日期进行格式化。import java.util.*;import java.text.*;class E1public static void main(Stringargs)Date d=new Date();SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年年MM月月dd日日HH时时mm分分);System.out.println(sdf.format(d);7.3.2Calendar类v抽象类Calendar提供了一组方法,允许将以毫秒为单位的时间转换为一组有用的分量,如:年、月、日、时、分、秒,并定义了一些用来表示各个时间分量的变量。vCalendar类定义的一些常用的方法:staticCalendargetInstance()/对默认的地区和时区,返回一个Calendar对象abstractvoidadd(intfield,intamount)/将amount加到由field指定分量finalvoidclear()/对调用对象的所有时间分量置0finalintget(intfield)/返回调用对象的一个分量的值。该分量由field指定。finalDategetTime()/返回一个与调用对象的时间相等的Date对象finalvoidset(intfield,intval)/在调用对象中,将由field指定的日期和时间分量赋给由val指定的值。finalvoidset(intyear,intmonth,intday,inthours,intmin,intsec)/设置调用对象的各种日期和时间分量。finalvoidsetTime(Dated)/设置调用对象的各种日期和时间分量。该信息从Date对象d中获得。vCalendar类定义的一些常用的静态变量:类定义的一些常用的静态变量:YEAR/表示日期中的年MONTH/表示日期中的月DATE/表示日期中的日AM_PM/值为0表示是上午时间,为1表示是下午时间HOUR/表示小时MINUTE/表示分SECOND/表示秒MILLISECOND/表示毫秒Calendarc=Calendar.getInstance();c.get(Calendar.YEAR)c.get(Calendar.MONTH)(1月为0)c.get(Calendar.DATE)c.get(Calendar.HOUR)c.get(Calendar.MINUTE)c.get(Calendar.SECOND)c.getTime()c.set(Calendar.YEAR,2000)c.set(Calendar.MONTH,10)(11月)c.set(Calendar.DATE,7)c.set(2000,10,7)c.set(2000,10,7,17,48,20)7.3.3 Random类类构造函数vpublicRandom();用当前系统时间为种子生成一个随机数发生器。vpublicRandom(longseed);用seed为种子生成一个随机数发生器。vpublicvoidsetSeed(longnewSeed);该方法可以随时修改随机数发生器的种子。v例如:Randomrand1=newRandom();vRandomrand2=newRandom(5l);vrand2.setSeed(19l);生成各种类型的随机数的方法publicvoidnextBytes(bytebytes)生成字节类型的随机数数组。publicintnextInt()生成一个随机整数。publicintnextInt(intn)生成0,n)范围内的随机整数。publiclongnextLong()生成随机的长整型数。publicfloatnextFloat()生成随机的浮点数。publicdoublenextDouble()生成随机的双精度浮点数。7.4集合框架v集合是一系列对象的聚集,集合中的每个元素都是对象(基本数据类型则要使用其包装类才能作为集合的元素)。其最基本的接口是Collection,它将一组对象以对象元素的形式组织在一起,在其子接口和实现该接口的类中分别实现不同的组织方式。vCollection接口是集合框架的基础,它声明了所有类集合都有的核心方法。7.4集合框架vCollection接口中常用的方法有:booleanadd(Objectobj)/将obj加入到调用类集合中。如果obj被加入到类集中了,则返回true;否则返回false。voidclear()/删除所有元素。booleancontains(Objectobj)/若此类集合包含有指定的元素,则返回true,否则返回false。booleanisEmpty()/如果此类集合不包含元素,则返回true。Iteratoriterator()/返回在此类集合的元素上进行迭代的迭代器。booleanremove(Objectobj)/从此类集合中删除指定的元素obj。intsize()/返回此类集合中的元素数。ObjecttoArray()/返回包含此类集合中所有元素的数组。7.4.1Set接口与实现该接口的类vSet接口定义了一个集合。它继承了Collection接口,而且它不允许集合中存在重复元素。实现Set接口的类如图6-2所示。图图 6-2 实现实现Set接口的类接口的类 7.4.1Set接口与实现该接口的类v1HashSet类HashSet类实现Set接口。它创建一个集合,该集合使用散列表进行存储,它不保证集合的迭代顺序。此类允许使用null元素。HashSet的构造函数如下:HashSet()/构造一个空set。HashSet(Collectionc)/构造一个包含指定collection中的元素的新set。HashSet(intinitialCapacity)/构造一个新的空set,其底层HashMap实例具有指定的初始容量和默认的加载因子(0.75)。HashSet(intinitialCapacity,floatloadFactor)/构造一个新的空set,其底层HashMap实例具有指定的初始容量和指定的加载因子。2TreeSet类vTreeSet类实现Sorted接口,此类中的元素使用树结构存储,并按照升序排列,访问和检索速度快。TreeSet类的对象按照升序排列,并且也没有重复的元素.vTreeSet的构造函数如下:TreeSet()/构造一个新的空set,该set根据其元素的自然顺序进行排序。TreeSet(Collectionc)/构造一个包含指定collection元素的新TreeSet,它按照其元素的自然顺序进行排序。TreeSet(Comparatorc)/构造一个新的空TreeSet,它根据指定比较器进行排序。TreeSet(SortedSetss)/构造一个与指定有序set具有相同映射关系和相同排序的新TreeSet。7.4.2List接口与实现该接口的类vList接口继承Collection并声明了一些新特征。List中的元素可以通过它们在列表中的位置被访问。与Set接口不同,List接口允许重复的元素。实现List接口的类如图6-3所示。图图6-3 实现实现List接口的类接口的类 7.4.2List接口与实现该接口的类v除了由Collection接口继承来的方法外,List还定义了一些自己的方法,主要有:voidadd(intindex,Objectobj)/在列表的指定位置index插入指定元素obj。booleaaddAll(intindex,Collectionc)/将c中的所有元素都插入到列表中的指定位置。Objectget(intindex)/返回列表中指定位置的元素。intindexOf(Objecto)/返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回-1。intlastIndexOf(Objecto)/返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回-1。7.4.2List接口与实现该接口的类ListIteratorlistIterator()/返回此列表元素的列表迭代器(按适当顺序)。ListIteratorlistIterator(intindex)/返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。Objectremove(intindex)/移除列表中指定位置的元素。Objectset(intindex,Objectobj)/用指定元素替换列表中指定位置的元素。ListsubList(intfromIndex,inttoIndex)/返回列表中指定的fromIndex(包括)和toIndex(不包括)之间的部分视图。ObjecttoArray()/返回按适当顺序包含列表中的所有元素的数组(从第一个元素到最后一个元素)。1ArrayList类vArrayList类继承AbstractList接口并实现了List接口,它支持可随需要而增长的数组。ArrayList的对象以一个初始大小被创建,当元素个数超过了它的大小时,ArrayList自动增大,当对象被删除后,就可以自动缩小。ArrayList类的对象允许重复元素。vArrayList有如下构造函数:ArrayList()/构造一个初始容量为10的空列表。ArrayList(Collectionc)/构造一个包含指定collection的元素的列表,这些元素是按照该collection的迭代器返回它们的顺序排列的。ArrayList(intinitialCapacity)/构造一个具有指定初始容量的空列表。2LinkedList类vLinkedList类是由List接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括null)。除了实现List接口外,LinkedList类还为在列表的开头及结尾get、remove和insert元素提供了统一的命名方法。这些操作允许将链接列表用做堆栈、队列或双端队列。LinkedList类的对象也允许重复的元素。vLinkedList具有如下的两个构造方法:LinkedList()/构造一个空列表。LinkedList(Collectionc)/构造一个包含指定collection中的元素的列表,这些元素按其collection的迭代器返回的顺序排列。6.4.3Map接口与实现该接口的类v映射是一个存储关键字/值对的集合。给定一个关键字,可以得到它的值。关键字和值都是对象,每一对关键字/值叫做一项。关键字是惟一的,但值可以重复。vMap接口是将键映射到值,一个映射不能包含重复的键;每个键最多只能映射一个值。实现Map接口的类如图6-4所示。图图6-4 实现实现Map接口的类接口的类 Map接口vMap接口定义的主要方法:intsize()/返回映射中关键字/值对的个数。booleanisEmpty()/判断映射是否为空。booleancontainsKey(Objectkey)/判断映射中是否包含关键字key。booleancontainsValue(Objectvalue);/判断映射中是否包含值value。Objectget(Objectkey)/返回与关键字key相关联的值。Objectput(Objectkey,Objectvalue)/将关键字/值对加入调用映射。Objectremove(Objectkey)/删除关键字为key的项。voidputAll(Mapm)/将所有来自m的项加入映射。voidclear()/从映射中删除所有关键字/值对。SetkeySet()/返回一个包含调用映射中关键字的集合。Collectionvalues()/返回一个包含调用映射中的值的集合。SetentrySet()/返回一个包含调用映射中的项的集合。Map接口v另外Map接口内部定义了一个接口Entry:interfaceEntryObjectgetKey();ObjectgetValue();ObjectsetValue(Objectvalue);booleanequals(Objectobj);inthashCode();v该接口表示一个关键字/值对,我们可以将一个Map看成是一个Entry的Set。1HashMap类vHashMap类是基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序。vHashMap的构造方法如下:HashMap()/构造一个具有默认初始容量和默认加载因子的空HashMap。HashMap(intinitialCapacity)/构造一个带指定初始容量的空HashMap。HashMap(intinitialCapacity,floatloadFactor)/构造一个带指定初始容量和加载因子的空HashMap。HashMap(Mapm)/构造一个映射关系与指定Map相同的HashMap。2TreeMap类vTreeMap类使用树实现Map接口,此类保证了映射按照升序顺序排列关键字。根据使用的构造方法不同,可能会按照键的类的自然顺序进行排序,或者按照创建时所提供的比较器进行排序.其构造方法:TreeMap()/构造一个空映射,该映射按照键的自然顺序排序TreeMap(Comparatorc)/构造一个空映射,该映射根据给定的比较器进行排序。TreeMap(Mapm)/构造一个新映射,包含的映射关系与给定的映射相同,这个新映射按照键的自然顺序进行排序。TreeMap(SortedMapsm)/构造一个新的映射,包含的映射关系与给定的SortedMap相同,该映射按照相同的排序方式进行排序。7.4.4Iterator接口和ListIterator接口v如果希望一个一个地获取集合中的元素,最简单的方法是使用迭代器。迭代器是一个实现Iterator接口或ListIterator接口的对象。Iterator可以遍历类集中的元素。ListIterator继承Iterator,并允许双向遍历。vIterator接口中定义了三个方法:hasNext():检查集合中是否还有元素,如果有则返回truenext():返回集合中的下一个元素remove():删除集合中最后一个返回的元素7.4.5泛型vJDK5.0后,集合框架中的大部分类和接口都增加了泛型类型声明。v在使用集合时,泛型提供了一种编译时类型安全检查的功能,并能减少类型强制转化的麻烦。vpublicclassStackvvprivateintm_item;vpublicintPop().vpublicvoidPush(intitem).vpublicStack(inti)vvthis.m_item=newinti;vvStack类只能用来存放整形数据。如果要存放double或String类型的数据怎么办?vpublicclassStackvvprivateobjectm_item;vpublicobjectPop().vpublicvoidPush(objectitem).vpublicStack(inti)vvthis.m_item=newi;vvvv/*Node1x=newNode1();vstack.Push(x);vNode2y=(Node2)stack.Pop();v*/vpublicclassStackvvprivateTm_item;vpublicTPop().vpublicvoidPush(Titem).vpublicStack(inti)vvthis.m_item=newTi;vvv/实例化只能保存int类型的类vStacka=newStack(100);va.Push(10);va.Push(8888);/这一行编译不通过,因为类a只接收int类型的数据vintx=a.Pop();v/实例化只能保存string类型的类vStackb=newStack(100);vb.Push(10);/这一行编译不通过,因为类b只接收string类型的数据vb.Push(8888);vstringy=b.Pop();7.4.5Collections类的算法应用v在Collections类中定义了一些用于类集和映射的算法,这些算法被定义为静态方法。其常用的方法有:staticvoidsort(Listlist)/按自然顺序对list中的元素进行排序staticvoidComparatorreverseOrder()/返回一个逆向比较函数staticvoidsort(Listlist,Comparatorc)/按c指定的顺序对list进行排序。staticvoidreverse(Listlist)/将list中的元素逆向排序。Collections类常用的方法staticintbinarySearch(Listlist,Objectvalue)/折半查找StaticObjectmax(Collectionc)/返回集合中的最大值。staticObjectmin(Collectionc)/返回集合中的最小值。staticvoidslist,inti,intj)/交换list中i和j两个位置的值。一、简答题(续一)v1下列程序中构造了一个set并且调用其方法add(),输出结果是()。importjava.util.*;publicclassT1_2publicinthashCode()return1;publicbooleanequals(Objectb)returntrue;publicstaticvoidmain(Stringargs)Setset=newHashSet();set.add(newT1_2();set.add(newString(ABC);set.add(newT1_2();System.out.println(set.size();二、编程题二、编程题v1编程生成10个1100之间的随机数,并统计每个数出现的概率。v2使用HashMap类保存由学号和学生姓名所组成的键-值对,比如200709188和JohnSmith,然后按学号的自然顺序将这些键-值对一一打印出来。v3编写一个程序,使用Map实现对学生成绩单的存储和查询,并将成绩排序存储到TreeSet中,求出平均成绩、最高分和最低分。v4编写一个程序,实现将十进制整数转换为二进制、八进制和十六进制形式。v5编写一个程序,在其中调用操作系统的注册表编辑器“regedit.exe”。v6使用java.text.SimpleDateFormat类将系统日期格式化为“2007年8月20日”的形式输出。v7编写程序实现:定义一个Float类型的数组,随机往其中填充元素,并打印该数组内容。实验五Java标准类库应用v一、实验目的1掌握基本数据类型的包装类的应用。2掌握java.lang包中System、Runtime、Math等类的应用。3掌握Java中有关日期和日历类的应用。4掌握Java集合框架接口及其实现类的应用。5掌握Java泛型技术的应用。p经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后谢谢你的到来学习并没有结束,希望大家继续努力Learning Is Not Over.I Hope You Will Continue To Work Hard演讲人:XXXXXX 时 间:XX年XX月XX日
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!