第6章 Java系统常用类.docx

上传人:b****5 文档编号:6660545 上传时间:2023-01-08 格式:DOCX 页数:42 大小:200.54KB
下载 相关 举报
第6章 Java系统常用类.docx_第1页
第1页 / 共42页
第6章 Java系统常用类.docx_第2页
第2页 / 共42页
第6章 Java系统常用类.docx_第3页
第3页 / 共42页
第6章 Java系统常用类.docx_第4页
第4页 / 共42页
第6章 Java系统常用类.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

第6章 Java系统常用类.docx

《第6章 Java系统常用类.docx》由会员分享,可在线阅读,更多相关《第6章 Java系统常用类.docx(42页珍藏版)》请在冰豆网上搜索。

第6章 Java系统常用类.docx

第6章Java系统常用类

第六章系统常用类

在有了前边的基础知识之后,本章将介绍程序中最常用的系统类。

为了简化程序设计的过程,Java系统事先设计并实现了一些常用功能的标准类,诸如,Object、System、数组类、字符串类、日期类、数学处理类等等。

6.1常用的基础类

6.1.1Objcet类

在Java中Object类是所有类的父类(直接的或间接的),也就是说Java中所有其他的类都是从Object类派生而来的。

下边列出Object类几个主要方法:

1)booleanequals(Objectobj)用来比较两个对象是否相同,相同时返回true,否则返回false。

2)ClassgetClass()获取当前对象所属类的信息,返回的是Class对象。

3)StringtoString()返回对象本身的相关信息,返回值是字符串。

4)Objectclone()创建且返回一个本对象的复制对象(克隆)。

5)voidwait()该线程等待,直到另一个线程叫醒它。

6)inthashCode()返回对象的哈希码值。

7)voidnotify()叫醒该对象监听器上正在等待的线程。

由于继承性,这些方法对于其他类的对象都是适用的。

因此,在后边章节中对类的介绍时,将不再重述这些方法而直接使用它们。

6.1.2System类

System类是最基础的类,它提供了标准的输入/输出、运行时系统(Runtime)信息。

下边我们简要介绍它的属性和常用的方法。

1)属性

System类提供了如下三个属性:

(1)finalstaticPrintStreamout用于标准输出(屏幕);

(2)finalstaticInputStreamin用于标准输入(键盘);

(3)finalstaticPrintStreamerr用于标准错误输出(屏幕)。

这三个属性同时又是对象,在前边的例子中已经多次使用过它们。

2)几个常用方法

(1)staticlongcurrentTimeMillis()用来获取1970年1月1日0时到当前时间的微秒数。

(2)staticvoidexit(intstatus)退出当前java程序。

status为0时表示正常退出,非0时表示因出现某种形式的错误而退出。

(3)staticvoidgc()回收无用的内存空间进行重新利用。

(4)staticvoidarraycopy(Object src,int srcPos,Object dest,int destPos,int length)将数组src中srcpos位置开始的length个元素复制到dest数组中以destPos位置开始的单元中。

(5)static StringsetProperty(String key,String value)设置由key指定的属性值为value。

(6)staticStringgetProperties(Stringproperties)返回properties属性的值。

表6.1列出了可以使用的属性。

表6.1属性

属性

说明

java.version

Java运行环境版本

java.vendor

Java运行环境vendor

java.vendor.url

JavavendorURL

java.home

Java安装目录

java.vm.specification.version

JVM规范版本

java.vm.specification.vendor

JVM规范vendor

java.vm.specification.name

JVM规范名

java.vm.version

JVM实现版本

java.vm.vendor

JVM实现vendor

java.vm.name

JVM实现名

java.specification.version

Java运行环境规范版本

java.specification.vendor

Java运行环境规范vendor

java.specification.name

Java运行环境规范名

java.class.version

Java类格式版本号

java.class.path

Java类路径

java.library.path

装入库时的路径表

java.io.tmpdir

默认的临时文件路径

piler

JIT编译器使用的名

java.ext.dirs

目录或延伸目录的路径

os.name

操作系统名

os.arch

操作系统结构

os.version

操作系统版本

file.separator

文件分割符(UNIX为"/")

path.separator

路径分割符(UNIX为":

")

line.separator

行分隔符(UNIX为"\n")

user.name

用户的帐户名

user.home

用户的基目录

user.dir

用户的当前工作目录

下边我们举例说明某些方法的应用。

例6.1获取系统相关信息。

/*程序名DisplayPropertyExam6_1.java*/

classDisplayProperty

{

publicstaticvoidmain(Stringargs[])//main()方法

{

//显示相关的属性信息

System.out.println(System.getProperty("java.version"));

System.out.println(System.getProperty("file.separator"));

System.out.println(System.getProperty("java.vm.version"));

System.out.println(System.getProperty("os.version"));

System.out.println(System.getProperty("os.name"));

System.out.println(System.getProperty("java.class.path"));

System.out.println(System.getProperty("java.specification.vendor"));

}

}

大家可以将要查看的属性放入程序输出语句中,运行程序,查看属性值。

例6.2设置目录属性,将临时文件存储目录设置为d:

/temp,用户工作目录设置为d:

\userwork。

/*程序名Set_dirExam6_2.java*/

publicclassSet_dir

{

publicstaticvoidmain(Stringargs[])

{

System.out.println("原临时文件存储目录名称:

"+System.getProperty("java.io.tmpdir"));

System.out.println("现将将其设置为d:

/temp");

System.setProperty("java.io.tmpdir","d:

/temp");

System.out.println("原用户工作目录名称:

"+System.getProperty("user.dir"));

System.out.println("现将将其设置为d:

/userwork");

System.setProperty("user.dir","d:

/userwork");

System.out.println("新的临时文件存储目录:

"+System.getProperty("java.io.tmpdir"));

System.out.println("新的用户工作目录名称:

"+System.getProperty("user.dir"));

}

}

注意:

System类不进行实例化,它的属性和方法均是static型,可直接用类名引用。

在程序的开头也不需要“importjava.lang.System”语句,系统默认它的存在。

6.1.3Runtime类

每个Java应用程序在运行时都有一个Runtime对象,用于和运行环境交互。

JavaJVM自动生成Runtime对象,得到Runtime对象后,就可以获取当前运行环境的一些状态,如系统版本、用户目录、内存使用情况等。

Runtime类常用的方法如下:

1)static RuntimegetRuntime()返回和当前Java应用程序关联的运行时对象。

2)Processexec(String command)在一个单独的进程中执行由command指定的命令。

3)Processexec(String[] cmdarray)在一个单独的进程中执行由cmdarra指定的带有参量的命令。

4)Processexec(String[] cmdarray,String[] envp,File dir)在一个单独的进程中,以envp中环境变量设置的环境和dir设置的工作目录执行由cmdarray指定的带有参量命令。

5)voidload(String filename)  作为动态库装入由filename指定的文件。

6)voidloadLibrary(String libname) 以libname指定的库名装入动态库。

7)voidtraceInstructions(boolean on) 能够/禁止指令跟踪。

8)voidtraceMethodCalls(boolean on) 能够/禁止方法调用跟踪。

9)voidexit(int status)结束程序执行,status表示结束状态。

10)longfreeMemory()返回Java系统当前可利用的空闲内存。

11)longmaxMemory()返回JVM所期望使用的最大内存量。

12)longtotalMemory()返回Java系统总的内存。

注意:

applet不能调用该类任何的方法。

下边举一个简单的例子说明Runtime类的应用。

例6.3测试系统内存的大小,并在Java中装入记事本程序notepad.exe编辑文本文件。

/*程序名RuntimeAppExam6_3.java*/

classRuntimeApp

{

publicstaticvoidmain(Stringargs[])throwsException

{

Runtimert=Runtime.getRuntime();//创建对象

System.out.println("最大内存:

"+rt.maxMemory());

System.out.println("总内存:

"+rt.totalMemory());

System.out.println("可用内存:

"+rt.freeMemory());

rt.exec("notepad");//调用记事本程序

}

}

6.1.4基本数据类型类

如前所述,每一种基本数据类型都对应有相应的类包装,这些类提供了不同类型数据的转换及比较等功能。

下边简要介绍一下Integer类。

对于其他的基本类型类及细节说明,需要时可查阅相应的手册。

1)Integer类的常用属性

(1)static intMAX_VALUE最大整型常量2147483647。

(2)static intMIN_VALUE最小整型常量-2147483648。

(3)static intSIZE能表示的二进制位数32。

2)构造器

(1)Integer(intvalue)以整数值构造对象。

(2)Integer(Strings)以数字字符串构造对象。

3)常用方法

(1)bytebyteValue()返回整数的字节表示形式。

(2)shortshortValue()返回整数的short表示形式。

(3)intintValue()返回整数的int表示形式。

(4)longlongValue()返回整数long的表示形式。

(5)floatfloatValue()返回整数float的表示形式。

(6)doubledoubleValue()返回整数double的表示形式。

(7)intcompareTo(Integer anotherInteger)与另一个整数对象相比较,若相等返回0;若大于比较对象,返回1;否则返回-1。

(8)staticIntegerdecode(String nm)把字符串nm译码为一个整数。

(9)staticintparseInt(String s)返回字符串的整数表示形式。

(10)staticintparseInt(String s,int radix)以radix为基数返回字符串s的整数表示形式。

(11)staticStringtoBinaryString(int i)返回整数i的二进制字符串表示形式。

(12)staticStringtoHexString(int i)返回整数i的十六进制字符串表示形式。

(13)staticStringtoOctalString(int i)返回整数i的八进制字符串表示形式。

(14)staticStringtoString(int i)返回整数i的字符串表示形式。

(15)staticStringtoString(int i,int radix)以radix为基数返回i的字符串表示形式。

(16)staticIntegervalueOf(String s)返回字符串s的整数对象表示形式。

(17)staticIntegervalueOf(String s,int radix)以radix为基数返回字符串s的整数对象表示形式。

(18)static intbitCount(int i)返回i的二进制表示中”1”位的个数。

下边我们写一个简单的例子看一下Integer类及方法的应用。

例6.4输出整数668的各种进制数的表示。

//IntegerAppExam6_4.java

publicclassIntegerApp

{

publicstaticvoidmain(String[]args)

{

intn=668;

System.out.println("十进制表示:

"+n);

System.out.println("二进制表示:

"+Integer.toBinaryString(n));

System.out.println("八进制表示:

"+Integer.toOctalString(n));

System.out.println("十二进制表示:

"+Integer.toString(n,12));

System.out.println("十六进制表示:

"+Integer.toHexString(n));

System.out.println("二进制表示中1位的个数:

"+Integer.bitCount(n));

}

}

编译、运行程序,结果如图6-1所示。

图6-1例6.4运行结果

6.1.5Math类

Math类提供了用于数学运算的标准方法及常数。

1)属性

(1)staticfinaldoubleE=2.718281828459045;

(2)staticfinaldoublePI=3.141592653589793;

2)常用方法

(1)static数据类型abs(数据类型a)求a的绝对值。

其中数据类型可以是int、long、float和double。

这是重载方法。

(2)static数据类型max(数据类型a,数据类型b)求a,b中的最大值。

数据类型如上所述。

(3)static数据类型min(数据类型a,数据类型b)求a,b中的最小值。

数据类型如上所述。

(4)staticdoubleacos(doublea)返回Arccosa的值。

(5)staticdoubleasin(doublea)返回Arcsina的值。

(6)staticdoubleatan(doublea)返回Arctga的值。

(7)staticdoublecos(doublea)返回cosa的值。

(8)staticdoubleexp(doublea)返回ea的值。

(9)staticdoublelog(doublea)返回lna的值。

(10)staticdoublepow(doublea,doubleb)求ab的值。

(11)staticdoublerandom()产生0~1之间的随机值,包括0而不包括1。

(12)staticdoublerint(doublea)返回靠近a的且等于整数的值,相当于四舍五入去掉小数部分。

(13)staticlonground(doublea)返回a靠近long的值.。

(14)staticintround(floata)返回a靠近int的值。

(15)staticdoublesin(doublea)返回sina的值。

(16)staticdoublesqrt(doublea)返回a的平方根。

(17)staticdoubletan(doublea)返回tga的值。

(18)staticdoubletoDegrees(doubleangrad)将angrad表示的弧度转换为度数。

(19)staticdoubletoRadians(doubleangdeg)将angdeg表示的度数转换为弧度。

Math类提供了三角函数及其它的数学计算方法,它们都是static型的,在使用时直接作为类方法使用即可,不需要专门创建Math类的对象。

6.2数组

数组是一种构造型的数据类型。

数组中的每个元素具有相同的数据类型,且可以用数组名和下标来唯一地确定。

数组是有序数据的集合。

在Java语言中,提供了一维数组和多维数组。

带一个下标的数组称为一维数组,带多个下标的数组称为多维数组。

6.2.1一维数组

和其他变量一样,数组必须先声明定义,而后赋值,最后被引用。

1.一维数组的声明

一维数组声明的一般格式如下:

数据类型数组名[];

或:

数据类型[]数组名;

其中:

1)数据类型说明数组元素的类型,可以是Java中任意的数据类型。

2)数组名是一个标识符,应遵照标识符的命名规则。

例如:

intintArray[];//声明一个整型数组

StringstrArray[];//声明一个字符串数组

数组的声明只是说明了数组元素的数据类型,系统并没有为其安排存储空间。

要使用数组,还必须为其定义大小(安排存储空间)。

2.一维数组大小的定义及初始化

一般情况下,使用new运算符定义数组大小,例如下边的程序语句:

intintArray[];//声明一个整型数组

intArray=newint[5];//定义数组可以存放5个整数元素

StringstrArray[];//声明一个字符串数组

StringstrArray=newString[3];//定义数组可以存放三个字符串元素

//为数组中每个元素赋值

intArray[0]=1;//数组下标从0开始

intArray[1]=2;

intArray[2]=3;

intArray[3]=4;

intArray[4]=5;

strArray[0]="How";

strArray[1]="are";

strArray[2]="you";

通常我们也采用如下方式为数组元素赋初值并由初值的个数确定数组的大小:

intintArray[]={1,2,3,4};

StringstringArray[]={"abc","How","you"};

以达到和上边同样的目的。

3.一维数组元素的引用

如前所述,以数组名和下标引用数组元素,数组元素的引用方式为:

数组名[下标]

其中:

1)下标可以为整型常数或表达式,下标值从0开始。

2)数组是作为对象处理的,它具有长度(length)属性,用于指明数组中包含元素的个数。

因此数组的下标从0开始到length-1结束。

如果在引用数组元素时,下标超出了此范围,系统将产生数组下标越界的异常(ArrayIndexOutOfBoundsException)。

下边我们举例说明数组的应用。

例6.5计算一组同学一门功课的平均成绩、最高成绩和最低成绩。

/**这是计算一组同学一门成绩情况的程序,使用数组score存放各同学的成绩

*变量average存放平均值、max存放最高成绩、min存放最低成绩。

*程序的名称为:

Avg_Max_minExam6_5.java

*/

publicclassAvg_Max_Min

{

publicstaticvoidmain(String[]args)

{

int[]score={72,89,65,58,87,91,53,82,71,93,76,68};

floataverage=0.0f;

floatmax=score[0];//设置比较基值

floatmin=score[0];//设置比较基值

for(inti=0;i

{

average+=score[i];

if(max

if(min>score[i])min=score[i];

}

average/=score.length;

System.out.println("average="+average+"Max="+max+"Min="+min);

}

}

编译运行程序,结果如图6-2所示。

图6-2例6.5运行结果

6.2.2二维及多维数组

在Java语言中,多维数组是建立在一维数组基础之上的,以二维数组为例,可以把二维数组的每一行看作是一个一维数组,因此可以把二维数组看作是一维数组的数组。

同样也可以把三维数组看作二维数组的数组,以此类推。

在通常的应用中一维、二维数组最为常见,更多维数组只应用于特殊的场合。

下边我们仅介绍二维数组。

1.二维数组的声明

声明二维数组的一般格式如下:

数据类型数组名[][];

或:

数据类型[][]数组名;

和一维数组类似,二维数组的声明只是说明了二维数组元素的数据类型并没有为其分配存储空间。

2.二维数组大小的定义及初始化

我们可以如下的方式定义二维数组的大小并为其赋初值。

1)先声明而后定义

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1