Java的核心APIppt课件_第1页
Java的核心APIppt课件_第2页
Java的核心APIppt课件_第3页
Java的核心APIppt课件_第4页
Java的核心APIppt课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 Java的中心API 本章内容: java中的中心API,Object、System、Math、String、StringBuffer、Date、Calendar、DateFormat类的功能和运用方法,数组的定义和运用。要求: 重点掌握String、StringBuffer的区别,数组的运用,以及Java协助文档的运用。第四章 Java的中心API 4.1 言语根底类库4.2 数组 4.3 字符串4.4 日期类多数编程言语都有预选编译好的类库以支持各种特定的功能在Java中,类库以包package的方式提供不同版本的Java提供不同的包,以面向特定的运用Java2平台包括规范版J2S

2、E、企业版J2EE和微缩版J2ME三个版本4.1 Java开发类库组成Standard EditionJ2SE包含那些构成Java言语中心 (规范版)的类。数据库衔接、接口定义、输入/输出、网络编程Enterprise Edition J2EE 包含J2SE 中的类,并且还包 (企业版) 含用于开发企业级运用的类。EJB、servlet、JSP、XML、事务控制Micro Edition J2ME 包含J2SE中一部分类,用于 (微缩版) 消费类电子产品的软件开发。呼机、智能卡、手机、PDA、机顶盒4.1 Java开发类库组成Java2的三个版本 Java提供了丰富的规范类来协助程序设计者更方

3、便快捷地编写程序,这些规范类组成了类包,主要有:java.lang java.awtjava.applet java.awt.imagejava.awt.peer java.io java.util 除了java.lang之外,其他类包都不是java言语所必需的。4.1 Java开发类库组成J2SE的类包Languagejava.lang构成Java言语中心的类Object, Math, String, Number, Exception, System, Runtime Utilitiesjava.util提供适用的数据构造 Vector, Stack, Hashtable / Colloe

4、ction, List, Set, Map I/Ojava.io提供多种类型的输出/输出InputStream, OutputStream, Reader, Writer, RandomAccessFile, FileTextjava.text文本/日期/数字/音讯的本地化支持NumberFormat, DateFormat, and CollatorMathjava.math提供恣意精度的整数和浮点数运算AWT java.awt用户接口设计和事件处置Swingjavax.swing提供全Java的,在任何平台上表现都一样的轻量级构件4.1 Java开发类库组成J2SE的类包Javaxjava

5、x 对Java言语的扩展Appletjava.applet 用于创建Applet的类Beansjava.beans 用于开发JavaBeans的类Reflectionjava.lang.reflect 用于动态获取类信息的类SQLjava.sql 提供对数据库中数据的访问和处置Connection, ResultSet, StatementRMIjava.rmi 支持分布式编程Networking 支持开发网络运用的类Socket, URL, URLConnectionSecurityjava.security支持访问控制和信息平安的类用于访问控制,防止非信任代码执行关键操作认证相关的类,实现

6、了音讯摘要和数字签名与数字认证等4.1 Java开发类库组成J2SE的类包1java.lang 本类包中包含了各种定义java言语时必需的类,这些类可以以其他类不能运用的方式访问java的内部。任何java程序都将自动引入这个包。其中的类包括: Object类:java中最原始、最重要的类,每个java类都是它的子类,它实现了每个类都必需具有的根本方法。 根本类型包装器:Boolean, Character, Number, Double, Float, Integer, Long。 String类:字符串类。 Math类:数学函数的集合。 执行线程:类Thread, ThreadGroup,

7、 接口Runable。 异常和错误:类Exception, Error, 接口Throwable。4.1 Java开发类库组成J2SE的类包1java.lang 运转环境:可以经过类Runtime和System访问外部系统环境。System类的两个常用功能就是访问规范输入/输出流和错误流、退出程序。 其他类:接口Cloneable、运转时的类等。2java.applet Java Applet是Java编程的一个主要魅力,java.applet类包提供了Applet的运转机制以及一些编写Applet非常有用的方法。4.1 Java开发类库组成J2SE的类包3 java.awt 本类包是各种窗口

8、环境的一致界面AWT代表Abstract Windows Toolkit,即笼统窗口工具包,其中的类使得创建诸如窗口、菜单、滚动条、文本区、按钮以及复选框等图形用户界面GUI的元素变得非常容易。4 java.awt.image 类包可以以独立于设备的方式加载并过滤位图图象。5 java.awt.peer java.awt.peer是全部awt组件的对等对象接口的集合,每个接口都提供了机器相关根本的方法,awt运用这些方法来实现GUI,而不用关怀是何种机器或操作系统。4.1 Java开发类库组成J2SE的类包6 java.io Java的输入/输出方式是完全建立在流的根底之上的。流是一种字节从一

9、个地方到另一个地方的单向流动,可以把流附加于文件、管道和通讯链路等。 java.io类包中定义的许多种流类经过承继的方式进展组织,其中也包括一些用来访问本地文件系统上的文件的流类。7 类包用来完成与网络相关的功能:URL、WWW衔接以及更为通用的Socket网络通讯。8 java.util java.util类包包含了一些适用类和有用的数据构造,如字典(Dictionary)、散列表(Hashtable)、堆栈(Stack)、向量(Vectro)以及枚举类(Enumeration)等。4.1 Java开发类库组成J2SE的类包4.1 言语根底类库Object类数据类型类Math类System类

10、一Object类Object类是Java中一切类的直接或间接父类。它的主要方法如下:protected Object clone();要实现Cloneable接口,覆盖publicclone()方法,调用super.clone()生成当前对象的一个拷贝,并前往这个复制对象public boolean equals(Object obj);比较两个对象能否一样,是那么前往truepublic final Class getClass();获取当前对象所属的类信息,前往Class对象ptotected void finalize();定义回收当前对象所需完成的清理任务public String t

11、oString();前往当前对象的有关信息,按字符串对象前往二数据类型类JRE5.0开场提供自动拆装箱机制,自动完成类型转换数据类型类基本数据类型BooleanbooleanCharactercharDoubledoubleFloatfloatIntegerintLonglong三Math类public final static double E;/数学常量epublic final static double PI; /圆周率常量public static double abs(double a); /绝对值public static double acos(double a); /反余弦p

12、ublic static double exp(double a); /e的参数次幂public static double log(double a); /自然对数public static double ramdom(); /产生0到1(不含1)之间的伪随机数public static double pow(double a, double a);/乘方public static double sqrt(double a); /平方public static double rint(double a); /四舍五入四System类System不能实例化,所以它的一切方法和属性都是stati

13、c的。三个属性:public static PrintStream err; /规范错误输出public static InputStream in; /规范输入public static PrintStream out; /规范输出常用方法public static void exit(int status); /强迫退出运转形状,并把形状信息前往给运转虚拟机的操作系统。例子:System.exit(0);其中0是正常退出,非0是异常退出public static getProperties(); /前往当前系统属性集合4.2、数组一维数组:定义一维数组的定义方式为: type arrayN

14、ame ; 其中类型(type)可以为Java中恣意的数据类型,包 括简单类型和组合类型,数组名arrayName为一个 合法的标识符, 指明该变量是一个数组类型变量。 例如: int intArray ; 声明了一个整型数组,数组中的每个元素为整型数据。 我们还可以定义一个复合类型的数组,例如: Date dateArray ;声明了一个包容复合数据类型Date的数组。 与C、C+不同,Java在数组的定义中并不为数组元素分配内存,因此 中不用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。必需经过初始化后,才干运用数组的元素。4.2 、数组一维数组:定

15、义 除了这种定义数组的方式之外,java言语还提供了其他的定义方式,如下所示:type arrayName; 对于以上举出的例子,我们也可以这样定义:int intArray; Date dateArray;4.2 、数组一维数组:定义一维数组定义之后,必需经过初始化才可以援用。数组的初始化分为静态初始化和动态初始化两种: 静态初始化:在定义数组的同时对数组元素进展初始化,例如: int intArray =1,2,3,4;/定义了一个含有4个 / 元素的int型数组。1、数组一维数组:初始化 动态初始化:运用运算符new为数组分配空间,对于简单类型的数组,其格式如下: type arrayN

16、ame =new typearraySize; type arrayName=new typearraySize;对于复合类型的数组,需求经过两步空间分配。 首先: type arrayName =new typearraySize; 然后:arrayName0=new type(paramList); arrayNamearraySize-1=new type(paramList);4.2、数组一维数组:初始化例如:String stringArrar; /定义一个String类型的数组stringArray = new String3; /给数组stringArray分配3个运用 /空间,

17、初始化每个援用值为nullstringArray0=new String(“how);stringArray1=new String(“are);stringArray2=new String(“you);初始化各数组元素4.2、数组一维数组:初始化当定义了一个数组,并用运算符new为它分配了内存空间后,就可以援用数组中的每一个元素了。元素的援用方式为: arrayNameindex index为数组下标,可以是整型常数或表达式,如:arrayName1, arrayNamei, arrayName6*i等。下标是0序的,即从0开场,不断到数组长度减1。4.2、数组一维数组:援用 另外,与C、

18、C+中不同,Java对数组元素要进展越界检查以保证平安性。同时,对于每个数组都有一个属性length指明它的长度,例如: intArray.length指明数组intArray的长度。 4.2、数组一维数组:边境检查 public class ArrayTest public static void main( String args ) int i; int a = new int5; for( i=0; i=0; i- ) System.out.println(a+i+ = +ai); 该程序对数组中的每个元素赋值,然后按逆序输出。 4.2、数组一维数组:例如运转结果为:C:java Ar

19、rayTest a4 = 4a3 = 3 a2 = 2 a1 = 1a0 = 04.2、数组一维数组:例如在任何言语中,多维数组都被看作数组的数组。比如二维数组是一个特殊的一维数组,其每一个元素又是一个一维数组。我们主要以二维数组为例来阐明,高维数组与此类似。4.2、数组多维数组二维数组的定义方式 type arrayName ; 例如: int intArray ; 也可以采用另一种定义方式: type arrayName;与一维数组一样,这时对数组元素也没有分配内存空间,同样要运用运算符new来分配内存,然后才可以访问每个元素。4.2、数组二维数组:定义二维数组的初始化也分为静态和动态两种

20、。 静态初始化:在定义数组的同时为数组分配空间。 int intArray =1,2,2,3,3,4;不用指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的大小。4.2、数组二维数组:初始化动态初始化:对高维数组来说,分配内存空间有下面两种方法:1.直接为每一维分配空间,如: type arrayName =new typearraylength1arraylength2例如: int a =new int23;4.2、数组二维数组:初始化2.从最高维开场而且必需从最高维开场,分别为每一维分配空间,如: String s =new String2 ; s0=new

21、String2; s1=new String3; s00=new String(“Good); s01=new String(“Luck); s10=new String(“to); s11=new String(“you); s12=new String(“!);4.2、数组二维数组:初始化二维数组的援用 对二维数组中每个元素,援用方式为: arrayNameindex1index2 其中index1和index2为数组下标,为整型常数和表达式,都是0序的。二维数组举例 两个矩阵相乘,参照参考书在课余时间上机练习。4.2、数组二维数组:援用及例如数组是用来表达一组同类型数据的数据构造在Jav

22、a中数组是定长的,数组的大小不会动态变化数组变量的值是数组对象实例的援用在java.util包中的Arrays类提供了一些操作数组的方法在java.util包中的Vector提供了动态变长数组的功能,Vector的容量可以随着需求变化4.2、数组java.util.Arraysint binarySearch(type a, type key)数组a必需曾经排序,否那么前往值无意义当数组a中有反复的值时,该方法前往的值不确定假设key存在,那么前往它在数组a中的位置假设不存在,那么前往它的“-(插入位置-1)void fill(type a, type val)void fill(type a

23、, int fromIndx, int toIndex, type val)包括afromIndx,但不包括atoIndexfromIndx= toIndex时,范围是一个空的范围4.2、数组java.util.Arraysboolean equals(type a, type a2)两个数组大小一样,并且每一个元素相等两个null数组是相等的4.2、数组java.util.Arraysvoid sort(type a)void sort(type a, int fromIndx, int toIndex)void sort(type a, Comparatorc)void sort(type

24、 a, int fromIndx, int toIndex, Comparatorc)包括afromIndx,但不包括atoIndexfromIndx= toIndex时,范围是一个空的范围排序算法都具有n*log(n)的计算复杂性,效率高排序算法都保证稳定,即排序算法不会改动相等元素的顺序对不同类型的数组,算法的实现并不完全一样可以用本人的Comparator对象声明自定义的顺序4.2、数组java.util.ArraysCopyof(int a,int newlength):java.lang.Systemvoid arraycopy(Objectsrc, intsrc_position,

25、 Objectdst, intdst_position, intlength)范围不能越界可对任何同类型的数组进展复制数组复制过程中做严厉的类型检查更详细的内容参见JDK文档4.2、数组数组的复制 向量(Vector)是java.util类包提供的一个工具类。它对应于类似数组的顺序存储的数据构造,但是具有比数组更强大的功能。它是允许不同类型元素共存的变长数组。每个Vector类的对象可以表达一个完好的数据序列。Vector类的对象不但可以保管顺序的一列数据,而且还提供了许多有用的方法来操作和处置这些数据。 另外,Vector类对象所表达的序列中元素的个数是可变的,即Vector实现了变长数组。

26、4.2、向量 Java中的数组只能保管固定数目的元素,且必需把一切需求的内存单元一次性的恳求出来,而不能先创建数组再追加数组元素数量,为理处理这个问题Java中引入了向量类Vector。Vector也是一组对象的集合,但相对于数组,Vector可以追加对象元素数量,可以方便的修正和维护序列中的对象。4.2、向量向量比较适宜在如下情况下运用: 1. 需求处置的对象数目不定,序列中的元素都是对象或可以表示为对象。 2. 需求将不同类的对象组合成一个数据序列。 3. 需求做频繁的对象序列中元素的插入和删除。 4. 经常需求定位序列中的对象和其他查找操作。 5. 在不同的类之间传送大量的数据。 Vec

27、tor类的方法相对于数组要多一些,但是运用这个类也有一定的局限性,例如其中的对象不能是简单数据类型等。4.2、向量Vector类有三个构造函数: Vector():构造一个空的向量 Vector(int capacity):以指定的存储容量构造一个空的向量 Vector(int capacity, int capacityIncrement):以指定的存储容量和容量增量构造一个空的Vector。例如: Vector MyVector=new Vector(100,50); 这个语句创建的MyVector向量序列初始有100个元素的空间,以后一旦运用殆尽那么以50为单位递增,使序列中元素的个数变

28、化成150,200,。在创建Vector序列时,不需求指明序列中元素的类型,可以在运用时确定。4.2、向量 创建向量类的对象有两种添加元素的方法: addElement( Object obj):将新元素添加到序列尾部。 insertElementAt(Object obj, int index):将新元素插 入到指定位置。4.2、向量向向量序列中添加元素下面是运用这两种方法的例子:Vector MyVector=new Vector();for (int i=1;i=10;i+) MyVector.addElement(new Random();MyVector.insertElementA

29、t(middle,5);4.2、向量向向量序列中添加元素运用以下方法修正或删除向量序列中的元素: 1. setElementAt(Object obj,int index) 将向量序列index位置处的对象元素设置成为obj,如果这个位置原来有元素那么被覆盖。 2. removeElement(Object obj) 删除向量序列中第一个与指定的obj对象一样的元素,同时将后面的元素前提,补上空位。这个方法前往的是布尔值。 3. removeElementAt(int index) 删除index指定位置处的元素,同时将后面的元素前提。4.2、向量修正或删除向量序列中的元素4. removeAllElements() 去除向量序列中的一切元素。下例中先创建了一个Vector,再删除掉其中的一切字符串对象“to。Vector MyVector=new Vector(100);for (int i=0;ijava demoOfStringBuffer buffer=abclength=3capacity=192. append public synchronized StringBuffer append(对象类型 对象名) ap

温馨提示

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

评论

0/150

提交评论