Java程序设计教程(第2版) 课件 张延军 第6、7章 JDK常见类的使用-上、下_第1页
Java程序设计教程(第2版) 课件 张延军 第6、7章 JDK常见类的使用-上、下_第2页
Java程序设计教程(第2版) 课件 张延军 第6、7章 JDK常见类的使用-上、下_第3页
Java程序设计教程(第2版) 课件 张延军 第6、7章 JDK常见类的使用-上、下_第4页
Java程序设计教程(第2版) 课件 张延军 第6、7章 JDK常见类的使用-上、下_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6周JDK常见类的使用一11JDKAPI帮助文档2System和Math类4Date、Calendar和SimpleDateFormat类5让我们一起来编程学习提纲3String和StringBuffer类21.JDKAPI帮助文档为了方便查阅,Oracle公司提供JDKAPI帮助文档(JDKSpecification),详细介绍了Java类库中类和接口的定义、介绍、示例用法、继承关系、属性、构造方法、方法等内容。JDKAPI帮助文档以两种形式提供:【分别展示两种形式的文档】1.Oralce公司官方JDKAPI文档(英文在线版),地址:/en/java/javase/11/docs/api/index.html。2.Java爱好者根椐官方文档制作而成的CHM版,检索功能更为强大。本课程提供了英文版JDK1.6EN.chm和中文版JDK1.6CN.chm。1.1API文档简介

31.JDKAPI帮助文档1.2API文档提供的类或接口的信息41.JDKAPI帮助文档Since

1.0,本类或接口从JDK哪个版本开始提供。See

Also:提供了本类或接口有关的一些链接。Filed

Summary:成员变量概述列表。Constructor

Summary:构造方法概述列表,其中,粗体Deprecated表示该方法随着版本的更新已经被淘汰不再推荐使用。Method

Summary:成员方法概述列表。Field

Detail:成员变量详细列表。Constructor

Detail:构造方法详细列表。1.2API文档提供的类或包的信息51.JDKAPI帮助文档Fields

inherited

from

class:从父类…中继承的成员变量链接。Methods

inherited

from

class:从父类…中继承的成员方法链接。

1.2API文档提供的类或包的信息61.JDKAPI帮助文档1.2API文档提供的方法的信息71JDKAPI帮助文档2System和Math类4Date、Calendar和SimpleDateFormat类5让我们一起来编程学习提纲3String和StringBuffer类82.System和Math类System类提供了对外部定义的属性和环境变量的访问,加载文件和库的方法,还有快速复制数组的一部分的实用方法。System类的常用属性:publicstaticfinalInputStreamin:标准输入设备-键盘;publicstaticfinalPrintStreamout:标准输出设备-Eclipse控制台(Console);publicstaticfinalPrintStreamerr:标准出错设备。

2.1System类92.System和Math类System类的常用方法:

publicstaticlongcurrentTimeMillis():提供了获取当前时间到1970-01-0100:00:00之间毫秒数的方法。Java程序运行时间的计算也是Java编程的常用技巧,用来测试程序的运行效率。2.1System类102.System和Math类2.1System类112.System和Math类java.lang.Math类提供常用的数学常量和数学方法。Math类中所有的变量和方法都是static和final,因此我们可以直接使用“类名.方法()”的形式调用。

【编程实践】publicstaticfinaldoubleE:2.72publicstaticfinaldoublePI:3.14publicstaticdoubleabs(doublea):绝对值方法2.2Math类122.System和Math类publicstaticdoubleceil(doublea):上取整publicstaticdoublefloor(doublea):下取整publicstaticdoublesqrt(doublea):开平方根publicstaticlonground(doublea):四舍五入publicstaticdoublepow(doublea,doubleb):幂函数publicstaticdoublerandom():生成[0,1)之间的随机小数随机生成’A’-’Z’之间的一个大写字母随机生成’0’-’9’之间的一个数字字符2.1System类131JDKAPI帮助文档2System和Math类4Date、Calendar和SimpleDateFormat类5让我们一起来编程学习提纲3String和StringBuffer类143.String和StringBuffer类String类是不可改变的字符串常量,在String对象销毁之前只能赋值一次。如果再次给String变量赋值,则废弃原来的存储空间,另外申请存储空间来存储新的字符串内容。String常用构造方法:publicString(char[]value):将一个字符数组构建成一个字符串。publicString(StringBufferbuffer):将StringBuffer变量转换为String变量。publicString(StringBuilderbuilder):将StringBuilder变量转换为String变量。

3.1String类153.String和StringBuffer类【编程实践】String常用方法:字符数组和String之间的转换publiccharcharAt(intindex)publicintlength()publicStringreplace(charoldChar,charnewChar)publicStringsubstring(intbegin,intend)取子字符串publicbooleanequals(ObjectanObject)publicbooleanequalsIgnoreCase(StringanotherString)3.1String类163.String和StringBuffer类【示例程序6-1】String的split方法应用示例(SplitTest.java)涉及正则表达式。3.1String类173.String和StringBuffer类如果经常要对字符串数据进行插入、修改、删除等操作,请采用StringBuffer类。StringBuffer是线程安全的,所以效率相对较低。如果不考虑线程安全问题,建议采用StringBuilder类。StringBuilder除了不是线程安全的之外,其它与StringBuffer类基本相同,拥有更快的速度和效率。3.2StringBuffer类183.String和StringBuffer类StringBuffer类的常用构造方法:StringBuffer():建立一个长度16个字符的空的StringBuffer。StringBuffer(Stringstr):以指定String去初始化StringBuffer,并提供另外16个字符的空间供再次分配。3.2StringBuffer类193.String和StringBuffer类【编程实践】StringBuffer类的常用方法:publicintcapacity():返回此StringBuffer对象的最大容量。publicintlength():返回此StringBuffer对象的实际长度。publicStringBufferdelete(intstart,intend):将本StringBuffer对象中[start,end)之间的字符删除。publicStringBufferreplace(intstart,intend,Stringstr):将本StringBuffer对象中[start,end)之间的字符串用给定str字符串替换。3.2StringBuffer类203.String和StringBuffer类publicStringBufferinsert(intoffset,Stringstr):将给定str字符串插入到本StringBuffer对象的offset位置之前。publicStringBufferreverse():将本StringBuffer对象中的所有字符全部翻转。publicStringtoString():将本StringBuffer对象转换成String对象。

3.2StringBuffer类211JDKAPI帮助文档2System和Math类4Date、Calendar和SimpleDateFormat类5让我们一起来编程学习提纲3String和StringBuffer类224.Date、Calendar和SimpleDateFormat类Date类表示特定的瞬间,精确到毫秒。Date类中的大部分构造方法和一般方法都已经不推荐使用,建议采用Calendar类中的方法代替。

publicDate():当前系统时间。publicDate(intyear,intmonth,intdate)4.1Date类234.Date、Calendar和SimpleDateFormat类Calendar类是一个抽象类,它为某一时刻和日期时间字段的转换以及操作日期时间字段提供了很多方法。java.util.Calendar类常用的字段值列举如下,详细请参考JDK文档。Calendar.YEAR:四位年份;Calendar.MONTH:月份(0-11);Calendar.DATE,Calendar.DAY_OF_MONTH:一月中的第几天;Calendar.DAY_OF_YEAR:一年中的第几天;Calendar.DAY_OF_WEEK:一周中的第几天,即星期几(1-7);4.2Calendar类244.Date、Calendar和SimpleDateFormat类Calendar.HOUR:12小时制的小时数;Calendar.HOUR_OF_DAY:24小时制的小时数;Calendar.MINUTE:分钟;Calendar.SECOND:秒;4.2Calendar类254.Date、Calendar和SimpleDateFormat类【示例程序6-2】Calendar常用方法和操作示例(CalendarTest.java)功能描述:本程序测试了Calendar抽象类的常用方法和操作示例。Calendar类的基本方法和技巧:Calendar如何转化为Date?Date转化如何为Calendar?

取给定时间域的最大可能值publicfinalvoidset(intyear,intmonth,intdate)4.2Calendar类264.Date、Calendar和SimpleDateFormat类java.text.SimpleDateFormat是一个格式化和解析日期的具体类。日期时间的格式由模式字符串指定。模式格式串中的模式字母用来表示日期或时间字符串元素:yyyy表示四位年份、MM表示两位月份、dd表示两位日、hh表示两位小时、mm表示两位分钟、ss表示两位秒。【编程实践】用SimpleDateFormat的相关方法实现Date和String之间的转换。4.3SimpleDateFormat类271JDKAPI帮助文档2System和Math类4Date、Calendar和SimpleDateFormat5让我们一起来编程学习提纲3String和StringBuffer类285.让我们一起来编程【编程作业5-3】从身份证号中提取身份信息(IDInfo.java)编程要求:输入18位身份证号,输出你的性别、出生年月日(格式:1980年10月10日)、年龄等信息。10105197212121835用键盘输入一个字符串用取子字符串方法分别提取性别、年份、出生年月日。用SimpleDateFormat类将出生年月日以指定格式输出。将年份转换为数字,计算年龄。5.1在身份证号中提取身份信息程序295.让我们一起来编程【编程作业5-4】月历(MonthlyCalendar.java)编程要求:从键盘输入年份和月份,输出该月的月历。编程提示:从键盘输入年份和月份(0-11)Calendar对象设置年,月,日。输出该年该月1日是星期几?Calendar.DAY_OF_WEEK。输出该年该月的天数?publicintgetActualMaximum(intfield)。日一二三四五六5.2月历程序敬请批评指正,谢谢!2023年第7周JDK常见类的使用二321Collection接口及其实现类2Map接口及其实现类4让我们一起来编程学习提纲3Java计算生态331.Collection接口及其实现类数组用来存储同一类型的多个数据,使用简单。但数组存在不能实现动态扩充、无法保存具有映射关系的数据、不能适应多线程编程环境等缺点。为解决以上问题,Java提供了集合框架,基于十几个集合接口及其实现类,通过提供数据结构和算法,有效减少了编程工作量,同时提高了性能和安全性。Java集合框架主要包括Collection和Map两大类。Collection接口及其实现类主要用来盛放对象(Object)。Map接口及其实现类用来盛放键值对(Key-Value)。

1.1Java集合框架简介

341.Collection接口及其实现类Java集合框架主要接口及其实现类

351.Collection接口及其实现类学习Java集合框架时要仔细阅读API帮助文档,重点学习每种集合类的功能和特点,综合考虑其存储结构、运行效率、线程安全、适用场景等因素,浏览构造方法和常用方法,掌握以下编程基本操作技巧:掌握怎样构造集合?怎样添加元素?怎样读取、修改元素?怎样删除元素?怎样遍历集合?……1.1Java集合框架简介361.Collection接口及其实现类Collection是集合框架中的根接口,对一些基本的集合操作方法(Add、Get、Del、Modify等)进行了约束性规定。Collection接口的两个主要子接口List、Set定义如下:publicinterfaceList<E>extendsCollection<E>:相当于动态数组,其实现类实现了有序存储、元素可重复的数据结构。publicinterfaceSet<E>extendsCollection<E>:相当于数学的集合,其实现类实现了无序存储、元素不可重复的数据结构。1.1Java集合框架简介371.Collection接口及其实现类接口List定义了一个有序存储、元素可重复的集合的实现要求。List相当于线性表或动态数组。List默认按元素的添加顺序作为元素的索引,与数组相同,索引从0开始。List允许通过索引来访问List中的元素。ArrayList在内存中采取连续存储,适合元素的随机存取。但在大量插入元素和删除元素时效率会下降。LinkedList在内存中采取随机存储,存取元素效率较低,但插入、删除元素时效率很高。

1.2List接口及其实现类381.Collection接口及其实现类1.ArrayList应用ArrayList是通过封装了一个Object[]数组来实现的List类。ArrayList类具有不是线程安全、查询速度快、增删效率低慢等特点。ArrayList类的常用构造方法:publicArrayList():构造一个初始容量为10的空列表。publicArrayList(intinitialCapacity):构造一个具有指定初始容量的空列表。初始存储空间用完时可以按一定策略进行容量的自动扩充。1.2List接口及其实现类391.Collection接口及其实现类【示例程序7-1】ArrayList应用示例(ArrayListTest.java)功能描述:本程序演示ArrayList的构造方法和常用方法的使用方法,重点要求掌握构建一个ArrayList实例、向集合中添加元素、读取元素、修改元素、删除元素、获取集合元素个数、遍历集合等基本操作。1.2List接口及其实现类401.Collection接口及其实现类LinkedList是功能最强大,使用最广泛的Java集合实现类。根据LinkedList类的JDK源码,可以知道LinkedList是通过链表来实现的List类。因此,LinkedList类增删元素快,但查询速度慢。堆栈(Stack)是一种操作受限的线性表,只能在栈顶插入元素,只能在栈顶删除元素,即先进后出(FirstInLastOut)。利用LinkedList提供的push()、pop()方法可以方便地实现堆栈。1.3LinkedList应用

411.Collection接口及其实现类队列是一种操作受限的线性表,只能在队尾插入元素,只能在队首删除元素,即FirstInFirstOut。利用LinkedList提供add()/offer()/addFirst()、poll()/removeFirst()方法可以方便地实现队列。1.3LinkedList应用

421.Collection接口及其实现类【示例程序7-2】LinkedList应用示例(LinkedListTest.java)功能描述:本程序演示LinkedList的构造方法和常用方法的使用方法,重点要求掌握构建一个LinkedList实例、向集合中添加元素、读取元素、修改元素、删除元素、获取集合元素个数、遍历集合等基本操作。1.2List接口及其实现类431.Collection接口及其实现类Set是数学中的集合在Java中的实现,具有无序性和唯一性(互异性)。Set主要有HashSet和TreeSet两种实现。HashSet:类采用Hash技术,其特性在于其内对象的散列对象。优点在于能够快速定位元素。HashSet类不是线程同步的。TreeSet:是Set接口的另一个实现子类,相当于有序集合,采用自平衡的排序二叉树实现有序的集合。TreeSet既能保证元素的互异性(没有重复的元素,即唯一性),并且自然顺序的升序进行排列。

1.4HashSet应用441.Collection接口及其实现类【示例程序7-3】HashSet应用示例(HashSetTest.java)功能描述:本程序演示HashSet的构造方法和常用方法的使用方法,重点要求掌握构建一个HashSet实例、向集合中添加元素、读取元素、修改元素、删除元素、获取集合元素个数、遍历集合等基本操作。1.4HashSet应用451Collection接口及其实现类2Map接口及其实现类4让我们一起来编程学习提纲3Java计算生态462.Map接口及其实现类Map主要用来存储键值对<Key/Value>对象的集合。一个Map的键(Key)是唯一的(不能重复)。Map中每个键和值一一对应,因此,根据键(Key)可快速查询出对应的值(Value)。Map接口主要的实现类包括:HashMap和TreeMap。Map.Entry:Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法。2.1Map接口简介

472.Map接口及其实现类Java集合框架中的接口及其实现类套路固定,注意知识的迁移和同化。查阅API帮助文档,熟悉构造方法和常用方法,了解共性和个性。【示例程序7-4】HashMap应用示例(HashMapTest.java)功能描述:本程序定义要Student类,学号做Key,Student对象做Value,将其加入HashMap中,演示了构建HashMap对象、添加元素、删除元素、三种方法遍历HashMap等基本操作。2.2HashMap应用

482.Map接口及其实现类TreeMap基于红黑树的NavigableMap实现。红黑树是一种自平衡二叉查找树。TreeMap根据其键的自然顺序进行排序,或者根据创建TreeMap时提供的Comparator进行排序。TreeMap和HashMap使用方法几乎完全一样。2.3TreeMap应用

492.Map接口及其实现类【编程任务】字符统计程序编程要求:通过键盘输入一个字符串,按字母顺序打印出每个字符及其出现次数。编程提示:用TreeMap<Character,Integer>实现。循环遍历该字符串的每一个字符,如果TreeMap中已经存储该字符,则出现次数加1,否则,存储该字符,出现次数为1。2.3TreeMap应用

501Collection接口及其实现类2Map接口及其实现类4让我们一起来编程学习提纲3Java计算生态513.Java计算生态开发Java应用程序就像搭积木一样,Java应用程序可以调用自己的类和方法,也可以调用JDKAPI提供的类和方法,当然还可以调用第三方提供的类和方法。Java拥有全球最大的开发者专业社群,构建了一个完整开放的计算生态。总之,我们可以编写极少的代码,完成更加强大的功能。

中文繁简转换包:ZHConverter汉语拼音工具包:PinYin4jOffice文档读写包:ApachePOI表达式求值引擎:Aviator523.Java计算生态对于中文的繁简体转换是一种很常见的需求。ZHConverter是一个简繁体中文互换的Java开源类库。JavaProject使用第三方Jar包的步骤:下载jar包:ZHConverter在JavaProject中建立专门存放第三方类为的folder:lib,如已建立可以略过本步骤。将jar包复制到lib中,右击BuildPath->AddtoBuildPath,Jar包就会添加到ReferencedLibrary中。 3.1中文简繁转换

533.Java计算生态【示例程序7-5】中文简繁转换应用示例(HashMapTest.java)功能描述:本程序使用ZHConverter包实现中文字符串的简体和繁体转换。3.1中文简繁转换

543.Java计算生态3.1中文简繁转换

553.Java计算生态Pinyin4j是一个功能强悍的汉语拼音工具包,是上的一个开源项目。Pinyin4j可以将中文(多音字,繁体字)转成拼音,并且拼音输出格式可以定制。下载jar包:下载地址:/artifact/com.belerweb/pinyin4j/2.5.0将jar包复制到lib中,右击BuildPath->AddtoBuildPath,Referenc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论