版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章Java常用类库11.1API概念
11.2String类和StringBuffer类
11.3基本数据类型的包装类
11.4System类与Runtime类
11.5Date与Calendar、DateFormat类
11.6Math与Random类
11.1API概念
API(ApplicationProgrammingInterface)就是应用程序编程接口。假设现在要编写一个机器人程序去控制一个机器人踢足球,程序需要向机器人发出向前跑、向后转、射门、拦截等命令。没有编过程序的人很难想象如何编写这样的程序,但对于有经验的人来说,就知道机器人厂商一定会提供一些控制这些机器人的Java类,该类中就有操纵机器人的各种动作的方法,只需要为每个机器人安排一个该类的实例对象,再调用这个对象的各种方法,机器人就会去执行各种动作。这个Java类就是机器人厂家提供的应用程序编程的接口,厂家将这些Java类命名为XxxRobotAPI(也就是Xxx厂家的机器人API)。好的机器人厂家不仅会提供Java程序用的RobotAPI,也会提供Windows编程语言(如VC++)用的RobotAPI,以满足各类编程人员的需要。
在Windows编程时,经常提到的WindowsAPI其实也就是Windows操作系统提供的编写Windows程序的一些函数,如CreateWindow就是一个API函数,在应用程序中调用这个函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口。在Java中经常提到的API就是JDK中提供各种功能的Java类。
11.2String类和StringBuffer类
一个字符串就是一连串的字符,字符串的处理在许多程序中都用得到。Java定义了String和StringBuffer两个类来封装对字符串的各种操作。它们都被放到了java.lang包中,不需要用importjava.lang这个语句导入该包就可以直接使用。String类用于两个字符串的比较、串中字符或子串的查找和抽取、字符串与其他类型之间的相互转换等。String类对象的内容一旦被初始化就不能再改变。StringBuffer类用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以转置字符串中原来的内容。一旦通过StringBuffer生成了最终想要的字符串,就应该使用StringBuffer.toString方法将其转换成String类,随后就可以使用String类的各种方法操纵这个字符串了。
Java为字符串提供了特别的连接操作符( + ),可以把其他各种类型的数据转换成字符串,并前后连接成新的字符串。连接操作符( + )的功能是通过StringBuffer类和它的append方法实现的。例如:
Stringx="a"+4+"c";
编译时等效于
Stringx=new
StringBuffer().append("a").append(4).append("c").toString();
在实际开发中,如果需要频繁改变字符串的内容就需要考虑用StringBuffer类实现,因为其内容可以改变,所以执行性能会比String类更高。
11.3基本数据类型的包装类
Java既提供了基本数据的简单类型,也提供了相应的包装类(也叫包装类)。使用基本数据类型可以改善系统的性能,也能够满足大多数应用需求。但基本数据类型不具有对象的特性,不能满足某些特殊的需求。从JDK中可以知道,Java中很多类的很多方法的参数类型都是Object,即这些方法接收的参数都是对象,同时又需要用这些方法来处理基本数据类型的数据,这时就要用到包装类。比如,用Integer类来包装整数。
Java中的基本数据类型共有八种,那么与之相对应的基本数据类型包装类也同样有八种,表11-1列出了其对应关系。表11-1基本数据类型包装类与基本数据类型的对应关系输出结果:
124
程序说明:
本程序使用Integer类中的parseInt()方法将一字符串转换成基本数据类型。 11.4System类与Runtime类
11.4.1System类
Java不支持全局函数和变量。Java设计者将一些与系统相关的重要函数和变量收集到了一个统一的类中,这就是System类。System类中的所有成员都是静态的,引用这些变量和方法时,可直接使用System类名作前缀。在前面已经使用到了标准输入和输出的in和out变量。下面介绍System类中的几个方法,关于其他方法可参看JDK文档资料。
(1) exit(intstatus)方法用于提前终止虚拟机的运行。对于发生了异常情况而想终止虚拟机运行的情况,可传递一个非零值作为参数。若在用户正常操作下要终止虚拟机的运行,可传递零值作为参数。
(2) CurrentTimeMillis方法返回从1970年1月1日0点0分0秒起至今的以毫秒为单位的时间,这是一个long类型的大数值。在计算机内部,只有数值,没有真正的日期类型及其他类型。也就是说,平常用到的日期本质上就是一个数值,但通过这个数值能够推算出其对应的具体日期时间。
(3) getProperties方法与getProperties方法用于获得当前虚拟机的环境属性。Properties是Hashtable的子类,正好可以用于存储环境属性中的多个变量/值格式的数据,getProperties方法的返回值是包含了当前虚拟机的所有环境属性的Properties类型的对象。
下例打印出当前虚拟机的所有环境属性的变量和值。
【例11-2】SystemInfo.java。图11-1SystemInfo.java程序的输出结果在Windows中,增加一个新的环境属性是很容易的,但如何为Java虚拟机增加一个新的环境属性呢?在命令行窗口中直接运行Java命令,在显示的用法帮助中会看到Java命令有一个 -D<name>=<value> 格式的选项可以设置新的系统环境属性。按下面的格式运行:
java-DAuthor=lxhSystemInfo
运行后如图11-2所示。
可以看到,输出的结果中多了一行“Author=lxh”,即Java虚拟机中多了一个新的环境属性Author。图11-2运行结果11.4.2Runtime类
Runtime类封装了Java命令本身的运行进程,其中的许多方法与System中的方法重复。不能直接创建Runtime实例,但可以通过静态方法Runtime.getRuntime获得正在运行的Runtime对象的引用。Java命令本身是多任务操作系统上的一个进程,在这个进程中启动一个新的进程,即执行其他程序时使用exec方法。exec方法返回一个代表子进程的Process类对象,通过这个对象,Java进程可以与子进程交互。
【例11-3】RuntimeDemo.java。
11.5Date与Calendar、DateFormat类
Date类用于表示日期和时间,最简单的构造函数是Date(),它以当前的日期和时间初始化一个Date对象。由于开始设计Date时没有考虑到国际化,所以后来又设计了两个新的类来解决Date类中的问题,一个是Calendar类,另一个是DateFormat类。Calendar类是一个抽象基类,主要完成日期字段之间相互操作的功能,如Calendar.add方法可以实现在某一日期的基础上增加若干天(或年、月、小时、分、秒等日期字段),Calendar.get方法可以取出日期对象中的年、月、日、小时、分、秒等日期字段的值,Calendar.set方法修改日期对象中的年、月、日、小时、分、秒等日期字段的值,Calendar.getInstance方法可以返回一个Calendar类型(更确切地说是它的某个子类)的对象实例,GregorianCalendar类是JDK目前提供的唯一的Calendar子类,Calendar.getInstance方法返回的就是预设了当前时间的GregorianCalendar类对象。
下例计算出距当前日期时间230天后的日期时间,并用“xxxx年xx月xx日xx小时:xx分:xx秒”的格式输出。
【例11-4】CalendarDemo.java。虽然Calendar类几乎完全替代了Date类,但在某些情况下,开发者仍有可能要用到Date类。譬如,程序中用的另外一个类的方法要求一个Date类型的参数,有时要将用Date对象表示的日期以指定的格式输出或是将用特定格式显示的日期字符串转换成一个Date对象,而Java.text.DateFormat就是实现这种功能的抽象基类。java.text.SimpleDateFormat类是JDK目前提供的一个DateFormat子类,它是一个具体类,具有把Date对象格式化为本地字符串,或者通过语义分析把日期或时间字符串转换为Date对象的功能。
下例将“2005-8-1118:30:38”格式的日期字符串转换成“2005年08月11日06点30分38秒”的形式。
【例11-5】DateFormatDemo.java。
SimpleDateFormat类相当于一个模板,其中yyyy对应的是年,MM对应的是月,dd对应的是日。更详细的细节可查阅JDK文档,关于这些参数,JDK中写得非常清楚。在上面的程序中,定义了一个SimpleDateFormat类的对象sp1来接收和转换源格式字符串“2005-8-1118:30:38”,随后又定义了该类的另一个对象sp2来接收sp1转换成的Date类的对象,并按sp2所定义的格式转换成字符串。
在这个过程中,已经实现了利用SimpleDateFormat类把一个字符串转换成Date类对象及把一个Date对象按用户指定的格式输出这两个功能。 11.6Math与Random类
Math类包含了所有用于几何和三角的浮点运算函数,这些函数都是静态的,每个方法的使用都非常简单。
Random类是一个随机数产生器。随机数是按照某种算法产生的,一旦用一个初值创建Random对象,就可以得到一系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八十大寿贺词
- 人教版小学语文教学随笔
- 石蜡切片的制作过程
- 深圳科技业务管理系统
- 科室工作总结
- 秋季大班教师个人计划表
- 2024-2025学年八年级地理上册 1.1 位置和疆域教学实录 (新版)粤教版
- 2024年校园教育培训机构合作合同3篇
- 我的家乡小学作文
- 三年级英语上册 Unit 4 Family Lesson 22 How Old Are You教学实录 冀教版(三起)
- 产后饮食的健康宣教-课件
- (高清版)CJJT 64-2024 粪便处理厂技术标准
- 剖宫产史的妊娠的护理查房
- 儿科案例完整-川崎病课件
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 交通银行测评题库答案大全
- 新部编版小学语文四年级下册单元备课
- 质量管理与可靠性(可靠性)
- 快速反应:急诊的重要性
- 预防未成年人犯罪教育课件
- 直肠癌患者术后护理
评论
0/150
提交评论