Java补充常用类库

上传人:仙*** 文档编号:45541732 上传时间:2021-12-07 格式:PPT 页数:41 大小:627.02KB
收藏 版权申诉 举报 下载
Java补充常用类库_第1页
第1页 / 共41页
Java补充常用类库_第2页
第2页 / 共41页
Java补充常用类库_第3页
第3页 / 共41页
资源描述:

《Java补充常用类库》由会员分享,可在线阅读,更多相关《Java补充常用类库(41页珍藏版)》请在装配图网上搜索。

1、补充补充:常用类库常用类库Company L主要内容学习目标及重、难点1任务学习2课堂实践3总结与要求4任务:掌握常用系统类的使用,熟悉其中的任务:掌握常用系统类的使用,熟悉其中的常用方法常用方法方法:多用、多实践方法:多用、多实践学习目标 重点、难点Company Logo学习目标掌握系统常用类的使用熟悉常用类的应用场合学习内容Object类System类数据包装类Math类Date类Random类Calender类任务学习任务介绍任务分析任务实现Company Logov任务描述任务描述 任务一:系统常用类的使用任务学习任务介绍任务分析任务实现Company Logov 支撑知识介绍支撑知

2、识介绍 Object类 System类 Class类 Math类 基本数据类型包装类主要内容vJava核心核心API包包 Java.lang包 类Object,System 类String,StringBuffer 类Math,Class 基本数据类型包装类 java.util包 类Arrays,ArraysList 类Date,Calendar,Vector集合 Set,List,IteratorJava类库v Java的类库是的类库是系统提供系统提供的已实现的的已实现的标准类的集合标准类的集合,是,是Java编程的编程的API(Application Program Interface),

3、),它可以帮助开发者方便、快捷地开发它可以帮助开发者方便、快捷地开发Java程序。程序。v 这些系统定义好的类根据实现的功能不同,可以划分成不这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为同的集合,每个集合是一个包,合称为类库类库。v Java的类库大部分是由它的发明者的类库大部分是由它的发明者SUN公司提供公司提供的,这些类库称为基础类库(的,这些类库称为基础类库(JFC)。)。v API 应用程序编程接口应用程序编程接口 面向过程语言 函数库(子程序包) 面向对象语言 类库Java类库结构v类库的结构类库的结构 java.lang 语言基础类库(Sys

4、tem、Math、 Thread、基本数据类型类) java.util Java的工具类库(集合容器集合容器、日期) java.io Java的标准输入输出类库 java.applet 用于实现Java Applet小程序的类库 java.awt 用于构建图形用户界面的类库 java.awt.event 界面用户交互控制和事件响应类库 Java的用于实现网络功能的类库v使用使用JDK Document查看类库查看类库语言基础类库Object类v Java程序中所有程序中所有类的直接或间接父类,也是类库中类的直接或间接父类,也是类库中所有所有类的的父类类的的父类,所有的其他类都是从,所有的其他类

5、都是从Object类类派生。派生。v 构造方法:构造方法:Object( )v 一般方法:一般方法: Object clone( ) 生成当前对象的一个拷贝。 boolean equals(Object obj) 比较两个对象是否相等。 int hashCode() 返回该对象的哈希码值 Class getClass() 获取当前对象所属的类信息。 String toString() 用来返回当前对象本身的有关信息。 protected void finalize() 当垃圾收集器确定对象上没有其他的引用时,调用对象上的垃圾收集器。Object类上的此方法不执行任何特定行为,仅简单返回,其子类

6、会覆盖此方法。toString()方法 vObject类定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息v在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+Person),将自动调用该对象类的toString()方法v可以根据需要在用户自定义类型中重写toString()方法equals()方法v Object类定义有public boolean equals(Object obj)方法,判断对象是否“相等”v Object的equals方法定义为:x.equals(y),当x和y

7、是同一个对象的应用时返回true否则返回falsev J2SDK提供的一些类,如String、Date等,重写了equals()方法,当使用x.equals(y)时表示x和y所引用的对象是同一类对象且属性内容相等(并不一定是相同对象)返回true,否则返回falsev 可以根据需要在用户自已定义的类中重写equals()方法equals()重写步骤v 0.判断自身对象与obj是否“=”,若是,则返回true.(不是必须 )v1.判断对象是否为空判断对象是否为空,若为空若为空,返回返回false,若不为空若不为空,到到2; v2.判断判断obj是否判断是否为子类对象或自身对象是否判断是否为子类对

8、象或自身对象,若是若是,则到则到3,若不是若不是,则返回则返回false;v3.转换转换obj为为自身对象自身对象v4.比较关键属性比较关键属性,若相等若相等,则返回则返回true,否则返回否则返回false.v注意注意:重写之后的重写之后的equals()方法应该满足其特征方法应该满足其特征语言基础类库System类v System类是一个特殊类,它是一个公共最终类,不能被类是一个特殊类,它是一个公共最终类,不能被继承,也不能被实例化,即继承,也不能被实例化,即不能创建不能创建System类的对象类的对象。 v System提供了标准输入输出、运行时的系统信息等工具提供了标准输入输出、运行时

9、的系统信息等工具,它所有的,它所有的属性和方法都是静态属性和方法都是静态(static)的的,引用时应,引用时应以以System为前缀。为前缀。 v获取系统标准输入获取系统标准输入/输出输出/错误输出错误输出 System.in(对应于键盘输入或用户指定输入源) System.out(对应于显示屏或用户指定的输出源) System.err(对应于显示屏或用户指定的输出源)System类相关方法v 获取系统时间获取系统时间 long currentTimeMillis(); 获取自1970年1月1日零时至当前系统时刻的毫秒数v 数组复制数组复制void arraycopy(Object src,

10、 int srcPos, Object dest, int destPos, int length) 将一个任意类型的数组快速地从一个地方复制到另一个地方v 强制关闭强制关闭Java虚拟机虚拟机void exit(int status); 强制Java虚拟机退出运行状态,并把状态信息status返回给运行虚拟机的操作系统。status非0描述非正常中断. v 垃圾回收器垃圾回收器void gc(); 强制调用Java虚拟机的垃圾回收功能。JAVA中的字符串(复习)v Java把字符串把字符串(常量或变量常量或变量)作为包作为包java.lang中中String类和类和StringBuffer类

11、的对象来分别处理字符串常量和字符串变量。类的对象来分别处理字符串常量和字符串变量。v 由于使用频繁,有时也被视为基本类型由于使用频繁,有时也被视为基本类型 遇到双引号自动创建String类的对象 提供字符串运算符,字符串的连接:+v 定长字符串:定长字符串:String类(效率较高)类(效率较高)String类对象表示的是不可变的字符串,如果需要修改String对象所表示的内容,必须重新创建一个对象String str=Peter“; str=str+&Bob+&Tom;不能更改,可用于比较、搜索之类的操作当修改操作频繁,或字符串的值很大时,会额外分配大量内存v 可变字符串:可

12、变字符串:StringBuffer类类(使用灵活)使用灵活)StringBuffer类对象是可变的字符串,有改变字符串内容和长度的若干方法,并且,StringBuffer在多线程中使用是安全的。可追加、插入、修改,但内存管理复杂练习v定义定义Student类,包括学号、姓名、身高、体重类,包括学号、姓名、身高、体重属性,重写其属性,重写其equals()方法,用来判断两个同方法,用来判断两个同学是否为同一个人,重写学是否为同一个人,重写toString()方法,输方法,输出每个同学的相关信息。出每个同学的相关信息。语言基础类库-Class类v Class类的实例代表一个正在运行的类的实例代表一

13、个正在运行的Java应用程序的类或接口,数应用程序的类或接口,数组以及组以及Java的基本数据类型的基本数据类型(boolean,byte,char,short,int,long,float和和double)和关键和关键字字void都是由都是由Class对象来表达对象来表达v Class类没有公共的构造器,类没有公共的构造器,用户无法自己生成用户无法自己生成Class类的对象类的对象,由,由JVM自动构造,自动构造,Object是是“万类之源万类之源”,Class是类的运行时表示是类的运行时表示,可以把每个,可以把每个Class类的对象当做众多类的代理类的对象当做众多类的代理 语言基础类库-C

14、lass类v Java运行时系统会对所有的对象进行类型识别运行时系统会对所有的对象进行类型识别v public final Class extends Objectv 一般方法:一般方法: String getName() 返回类名。 Field getFields() 返回类的public域对象。 Method getMethods() 返回类的public方法对象。 Package getPackage() 返回该类的包。v Field 类类 String getName() 取域名v Method 类类 String getName() 取方法名v Package 类类 String g

15、etName()取包名语言基础类库:数据类型包装类v 基本数据类型不是类,定义变量没有创建基本数据类型不是类,定义变量没有创建对象的过程,对象的过程,提高了性能提高了性能。v 基本数据类型基本数据类型 vs. 数据类型包装类数据类型包装类boolean vs Boolean, char vs Character,int vs Integer等v 数据类型包装类数据类型包装类规定了数据类型的最大值MAX_VALUE、最小值MIN_VALUE构造函数:如new Integer(10);完成不同数据类型间转换,注意不同的数据类使用的方法会有不同。Double.toString(0.08)、Integ

16、er.parseInt(“123”)、 Double.ValueOf(“0.08”).intValue ()等,详细见JDK Doc自动包装和自动解包v 包装包装:把基本数据类型(如:把基本数据类型(如int)转换成基础类型转换成基础类型封装类的对象(如封装类的对象(如new Integer()Integer a=new Integer(3); /手工包装手工包装Integer a=3; /自动包装自动包装Java1.5之后之后v 解包解包:把基础类型封装类的对象转换为基础数据:把基础类型封装类的对象转换为基础数据类型类型a.intValue /获取int形式的值a=a+3; /自动解包,a.

17、intValue()+3Wrapper(包装)类基本数据类型Wrapper 类booleanCharactercharBooleanBytebyteShortshortIntegerintLonglongFloatfloatDoubledoubleInteger类v整数类中包含了对整形数据整数类中包含了对整形数据(int)的各种常用操作的各种常用操作v属性属性 staticint MAX_VALUE 返回int型数据的最大值staticint MIN_VALUE 返回int型数据的最小值v构造方法构造方法vInteger a=new Integer();Integer(int value)In

18、teger(String s)v方法方法int intValue() double doubleValue()long longValue()String toString() static String toString(int i)static int parseInt(String s) static int parseInt(String s,int radix) throws NumberFormatException static Integer valueOf(String s) valueOf(int i) valueOf(String s,int radix)static i

19、nt parseInt(String s)Character类v 在处理字符串时,用在处理字符串时,用Character类中的一些方法进行字类中的一些方法进行字符分类符分类v 常用方法常用方法 Public static boolean isDigit(char ch) ch是否是数字字符 Public static boolean isLetter(char ch) ch是否是字母 Public static boolean isLetterorDigit(char ch) ch是否是数字或字母 Public static boolean isSpace(char ch) ch是否是空格 P

20、ublic static boolean toLowerCase(char ch) 返回ch的小写形式类型转换利用类/对象方法v利用类方法(静态方法)利用类方法(静态方法)Integer.parseInt(“23”)Integer.parseInt(23,16)Integer.parseInt(110,2)Integer.parseInt(110,8)Integer.toString(23)Double.parseDouble(“12.3”)Double.toString(12.3)v利用对象方法利用对象方法 Double d ; String s; / 声明 d=new Double(12.

21、3) ; /创建 s= d.toString(); Double.valueOf(“12.3”).doubleValue() ; /返回double d1=3;Double d2=4; = Double d2=new Double(4);语言基础类库:Math类v Math类用来完成常用的数学运算类用来完成常用的数学运算数学常量:E,PI数学运算:(一般运算都以double进行)Math.abs(- 8.09);Math.exp( 5.7);Math.random();Math.sqrt(9.08);Math.pow( 2,3); /乘方Math.round(99.6);均为static,使用

22、时无需创建实例 Math.method(variable);数学运算的Math类abs(x)x的绝对值的绝对值sin(a)a的正弦的正弦cos(a)a的余弦的余弦tan(a)a的正切的正切asin(v)v的反正弦的反正弦,v的范围的范围-1.0,1.0acos(v)v的反余弦的反余弦,v的范围的范围-1.0,1.0atan(v)v的反正切的反正切,返回的范围返回的范围-/2, /2atan2(x,y)x/y的反正切的反正切,返回的范围返回的范围-, v 属性属性public final static double E; / 数学常量epublic final static double PI;

23、 / 圆周率常量v 方法(均为静态方法方法(均为静态方法 public static )数学运算的Math类exp(x)expow(y,x)yxlog(x)x的自然对数的自然对数sqrt(x)x的平方根的平方根ceil(x)大于或等于大于或等于x的最小整数的最小整数floor(x)小于或等于小于或等于x的最小整数的最小整数rint(x)x取整取整,不舍入不舍入round(x)对对x四舍五入四舍五入,即即(int)floor(x+0.5)max(x,y)返回返回x,y的大者的大者min(x,y)返回返回x,y的小者的小者IEEEERemander(x,y)案案IEEE-754标准计算余数标准计算

24、余数(取模取模)random()返回范围在返回范围在0.0r1.0的伪随机数的伪随机数r示例: Math类public class MathMethodpublic static void main(String args) System.out.println(Math.abs(-23.7)=+Math.abs(-23.7);System.out.println(Math.abs(-1059)=+Math.abs(-1059);System.out.println(Math.ceil(23.7)=+Math.ceil(23.7);System.out.println(Math.floor(2

25、3.7)=+Math.floor(23.7);System.out.println(Math.exp(2)=+Math.exp(2);System.out.println(Math.log(Math.E)=+Math.log(Math.E);System.out.println(Math.pow(2,15)=+Math.pow(2,15);System.out.println(Math.sqrt(625)=+Math.sqrt(625);System.out.println(Math.max(6.25,10.35)=+Math.max(6.25,10.35);System.out.printl

26、n(Math.mix(6.25,10.35)=+Math.min(6.25,10.35);总结v父类Object,注意equals()、hashcode()、toString()方法v系统类System,了解获取系统信息的方法v数据包装器类 了解xxxValue(),parseXxx(),valueOf()和toString()的方法 要注意哪些是静态方法,哪些会跑出数据格式异常vMah类,要了解方法名vString和StringBuffer区别Company Logo实用工具类库java.utilv java.util 包提供了一些实用的方法和数据结构包提供了一些实用的方法和数据结构 提供日

27、期(Date)类、日历(Calendar)类来产生和获取日期及时间 提供随机数(Random)类产生各种类型的随机数 提供了堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构java.util包Random类v Random类允许创建多个类允许创建多个相互独立的随机数发生器相互独立的随机数发生器v 任何任何Random对象都能产生对象都能产生int、long、float或或double类型的伪类型的伪随机数,这些随机数是由一种算法创建的,先种下一粒种子并由它生随机数,这些随机数是由一种算法创建的,先种下一粒种子并由它生长出一

28、系列的数字长出一系列的数字v 用同一粒种子对该算法进行两次初始化将产生同样的随机数序列用同一粒种子对该算法进行两次初始化将产生同样的随机数序列v 构造方法:构造方法:Random() 和和Random(seed)v 常用方法:常用方法: nextInt() 返回一个int类型的随机数 nextInt(int limit) 返回一个大于等于0小于limit的int型的伪随机数 nextFloat() 返回一个float类型伪随机数 nextBytes(byte bytes) 使用伪随机值填充数组bytes setSeed(long seed) 重置随机数发生器java.util包Date类v日期

29、类中封装了有关日期和时间的信息,用户还可以通过调用相应的方日期类中封装了有关日期和时间的信息,用户还可以通过调用相应的方法来获取系统时间或设置日期和时间法来获取系统时间或设置日期和时间vDate类定义一个类定义一个精确到毫秒的瞬间时刻精确到毫秒的瞬间时刻,是从,是从1970年年1月月1日的日的00:00:00GMT开始计时的时刻值开始计时的时刻值v构造方法构造方法public Date()public Date(long date) /date以毫秒为单位,从1970.1.1 0:0开始v参数说明参数说明year值:需设定的年份-1900month(0-11)date(1-31)hrs(0-2

30、3)min,sec(0-59)java.util包-Date类v Date类的常用方法类的常用方法 boolean after(Date when) 测试此日期是否在指定日期之前 boolean before(Date when) 测试此日期是否在指定日期之后 boolean equals(Object obj) 比较两个日期是否是同一个日期 int compareTo(Date another) 比较两个日期的大小,当前对象大于、等于或小于实参返回正整数、零或负整数 string toString() 将日期值转换为String: dow mon dd hh:mm:ss zzz yyyy 形

31、式v SimpleDateFormat类,指定日期的格式类,指定日期的格式 SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年MM月dd日 北京时间”);示例: Date类import java.util.Date;public class DateTestpublic static void main(String args)Date curDate=new Date();System.out.println(Current Date=+curDate);Date newDate=new Date(10000);System.out.printl

32、n(New date=+newDate);System.out.println(curDate.after(newDate);System.out.println(curDate.before(newDate);System.out.println(MS since 1970-1-1:+curDate.getTime();java.util包Calendar类v Calendar描述一个特定日期内的某一特定的时刻,描述一个特定日期内的某一特定的时刻,Calendar是抽象类,不能创建对象是抽象类,不能创建对象v Calendar的常用方法的常用方法 getInstance( )得到表示当前时间

33、的实例 Calendar cal=Calendar.getInstance(); get(int)获取相应信息,如get(Calendar.YEAR) set(int,int)如 set(Calendar.YEAR,1999) set(year,month,date)set用来设置信息 Calendar.getTime()得到当前时间的Date对象java.util包-GregorianCalendarv GregorianCalendar是是Calendar的子类,它实现了世界上普的子类,它实现了世界上普遍使用的公历系统遍使用的公历系统(阳历阳历),它就像是一本台历,只显示一个日期,它就像是

34、一本台历,只显示一个日期,可以翻过几天、几个月或几年显示另一个日期,可以翻过几天、几个月或几年显示另一个日期v GregorianCalendar对象封装了时区信息及日期和时间数据对象封装了时区信息及日期和时间数据v 构造方法构造方法(共七个)共七个) GregorianCalendar() GregorianCalendar(int year,int month,int date) GregorianCalendar(int year,int month,int date,int hour,int minute) GregorianCalendar(int year,int month,in

35、t date,int hour,int minute,int second)用给定的日期和时间创建一个GregorianCalendar对象v 常用方法,见常用方法,见API文档文档v TimeZone是是java.util包中的一个类,其中封装了有关包中的一个类,其中封装了有关时区的信息时区的信息。每个。每个时区对应一组时区对应一组ID,类类TimeZone提供方法完成时区与对应提供方法完成时区与对应ID两者之间的转两者之间的转换。换。java.util包-GregorianCalendarv 设置日期和时间设置日期和时间可以用Date对象设置GregorianCalendar calend

36、ar=new GregorianCalendar();calendar.setTime(Date);用显式的值为设置日期或时间Calendar.set(2008,9,30);Calendar.set(int field,int value); /对字段进行设置v 获取日期和时间信息获取日期和时间信息使用使用get()方法并指定所需信息为实参,可获取日、月和年的信息,返回值是整数。方法并指定所需信息为实参,可获取日、月和年的信息,返回值是整数。int day=calendar.get(calendar.DAY_OF_WEEK);v 修改日期和时间修改日期和时间使用add()方法可以修改日历中的当

37、前实例calendar.add(calendar.YEAR,14); /在当前的年份上加在当前的年份上加14使用roll()方法可以对一个日历的某个字段增一或减一Calendar.roll(calendar.MONTH,false); /月份减1 示例: Calendar, GregorianCalendarimport java.util.*;public class CalendarTestpublic static void main(String args)String arrW=日日,一一,二二,三三,四四,五五,六六;System.out.println(当前时间:当前时间:+Ca

38、lendar.getInstance().getTime();Date d1=new GregorianCalendar(2005,8,1,1,1,00).getTime();Date d2=new Date();long diff=d2.getTime()-d1.getTime();System.out.println(d1+与与+d2+差距天数差距天数=+diff/(1000L*60*60*24);Calendar c=Calendar.getInstance();System.out.println(-当前时间当前时间- );System.out.println(年年:月月:日日+c.get(Calendar.YEAR)+:+(c.get(Calendar.MONTH)+1)+:+c.get(Calendar.DATE);System.out.println(时时:分分:秒秒+c.get(Calendar.HOUR)+:+c.get(Calendar.MINUTE)+:+c.get(Calendar.SECOND)+ +(c.get(Calendar.AM_PM)=1?PM:AM);System.out.println(星期星期 +arrWc.get(Calendar.DAY_OF_WEEK)-1);练习v以下图格式输出以下图格式输出2011年年10月的日历页,月的日历页,

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

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

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


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