《Java程序设计之网络编程》重庆大学计算机学院电子邮件:lizhx@126.com教学课件第7章Java标准类库主要内容7.1简单类型包装器类7.2System7.3Runtime7.4Math7.5日期时间实用工具类7.6集合框架7.1简单类型包装器类NumberDouble,FloatByte,Short,Int,Long数字和字符串的转换CharacterBoolean7.1.1Number类抽象类Number定义了一个包装数字类型:字节型(Byte),短整型(Short),整型(Integer),长整型(Long),浮点型(Float)和双精度型(Double)的超类。定义了从包装器返回基本类型的方法doubledoubleValue(),floatfloatValue()bytebyteValue(),,intintValue(),longlongValue(),shortshortValue()7.1.2Double和Float双精度(Double)和浮点(Float)分别是对类型double和类型float的浮点值的包装器。构造方法Float(doublevalue),Float(floatvalue),Float(Strings)Double(doublevalue)Double(Strings)Float和Double中定义的常量MAX_VALUE最大正值MIN_VALUE最小正值NaN非数字POSITIVE_INFINITY正无穷NEGATIVE_INFINITY负无穷Float和Double中定义的主要方法intcompareTo(),比较两个对象staticfloatparseFloat(Strings)把字符串转换成floatstaticFloatvalueOf(Strings)把字符串转换成FloatstaticfloatparseDouble(Strings)把字符串转换成doublestaticDoublevalueOf(Strings)把字符串转换成DoubleDouble,Float例子//提取简单类型值f=F.floatValue();d=D.doubleValue();System.out.println(f);System.out.println(d);//比较System.out.println(D.equals(F));floatf=3.1415f;doubled=3.14159267;FloatF=newFloat(f);DoubleD=newDouble(d);//转化为字符串System.out.println(F.toString());System.out.println(D.toString());7.1.3Byte,Short,Integer,LongByte,Short,Integer,和Long类分别是字节型(byte),短整型(short),整型(int)和长整型(long)整数类型的包装器构造函数Byte(bytevalue),Byte(Stringstr),Short(shortvalue),Short(Stringstr),Integer(intvalue),Integer(Stringstr),Long(longvalue),Long(Stringstr)定义的主要方法parseByte,parseInt,parseShort,parseLong,把字符串转化成数字类型ValueOf(),把字符串转化成数字类型包装器把数字转化成字符串staticStringtoBinaryString(intvalue)staticStringtoHexString(intvalue)staticStringtoOctalString(intvalue)staticStringtoString(intvalue)staticStringtoString(intvalue,intradix)7.1.4数字和字符串的转换字符串向数字的转换parseByte(),parseShort(),parseInt()和parseLong()数字向字符串的转换staticStringtoBinaryString(intvalue)staticStringtoHexString(intvalue)staticStringtoOctalString(intvalue)staticStringtoString(intvalue)staticStringtoString(intvalue,intradix)数字字符串转换示例1Strings1=12;Strings2=34;Strings=null;inti1=0,i2=0,sum=0;//把字符串转换成整数i1=Integer.parseInt(s1);i2=newInteger(s2).intValue();sum=i1+i2;//把整数转换成字符串s=Integer.toString(sum);System.out.println(s);数字字符串转换示例2inti=-34567;Strings=null;//转换成二进制字符串System.out.println(2进制字串:+Integer.toBinaryString(i));//转换成8进制字符串System.out.println(8进制字符串:+Integer.toOctalString(i));//转换成16进制字符串System.out.println(16进制字符串:+Integer.toHexString(i));//转换成带符号表示的8进制字符串s=Integer.toString(i,8);System.out.println(带符号8进制字符串:+s);//从8进制字符串转化成Integer对象IntegerI=Integer.valueOf(s,8);System.out.println(Integer对象中的值:+I.intValue());7.1.5CharacterCharacter是围绕字符型(char)的一个简单的包装器。Character的构造函数如下:Character(charch)Character类定义了很多常数和静态方法。isDigit(charch),isLetter(charch)isLowerCase(charch),toUpperCase(charch)7.1.6BooleanBoolean是一个围绕布尔(boolean)值的非常细小的包装器,主要用在通过引用传递布尔(boolean)变量的场合。构造函数Boolean(booleanboolValue)Boolean(StringboolString)Strings=true;booleanb=true;if(b==newBoolean(s).booleanValue()){System.out.println(两个布尔变量相等);}System.out.println(Boolean.valueOf(s).hashCode());主要内容7.1简单类型包装器类7.2System7.3Runtime7.4Math7.5日期时间实用工具类7.6集合框架7.2SystemSystem类保存静态方法和变量的集合。标准的输入,输出和Java运行时错误输出存储在变量in,out和err中。定义的主要方法见下表System的主要方法1staticvoidarraycopy(Objectsource,intStart,Objecttarget,intStart,intsize)复制数组。staticlongcurrentTimeMillis()返回自1970年1月1日午夜至今的时间,时间单位为毫秒。staticvoidexit(intexitCode)返回exitCode值给父进程staticvoidgc()建议JVM进行垃圾回收staticPropertiesgetProperties()返回与Java运行系统有关的属性类staticStringgetProperty(Stringkey)返回与key有关的属性。System的主要方法2staticStringgetProperty(Stringkey,Stringdefault)返回一个与key有关的属性。如果期望的属性没有被发现,则返回defaultstaticSecurityManagergetSecurityManager()返回当前的安全管理程序,如果没有安装安全管理程序,则返回一个空对象(nullobject)staticvoidload(StringlibraryFileName)载入其文件由libraryFileName指定的动态库,必须指定其完全路径staticvoidloadLibrary(StringlibraryName)载入其库名为libraryName的动态库staticStringmapLibraryName(Stringlib)对应名为lib的库,返回一个指定平台的名字staticvoidrunFinalization()启动调用不用的但还不是回收站中的对象的finalize()方法。System的主要方法3staticvoidsetProperties(PropertiessysProperties)设置由sysProperties指定的当前系统属性StaticStringsetProperty(Stringkey,Stringvalue)将value值赋给名为key的属性(staticvoidsetSecurityManager(SecurityManagers)设置由s指定的安全管理程序记录程序执行的时间publicclassElapsed{publicstaticvoidmain(String[]args){longstart,end,sum=0;System.out.println(aloopfrom0to1,000,000,000);start=System.currentTimeMillis();for(inti=0;i1000000000;i++){sum=sum+i*i;}end=System.currentTimeMillis();System.out.println(Elapsedtime:+(end-start));}}访问JVM的环境属性1java.versionJRE的版本java.vendorJRE的厂商java.vendor.urlJRE厂商的URLjava.homeJava的安装目录java.vm.specification.versionJVM规范的版本java.vm.specification.vendorJVM规范的厂商java.vm.specification.nameJVM规范的名称java.vm.versionJVM的实现版本java.vm.vendorJVM的实现厂商java.vm.nameJVM的实现名称访问JVM的环境属性2publicclassPropsDemo{publicstaticvoidmain(String[]args){System.out.println(System.getProperty(java.version));System.out.println(System.getProperty(java.vendor));System.out.println(System.getProperty(java.vendor.url));System.out.println(System.getProperty(java.home));System.out.println(System.getProperty(user.dir));System.setProperty(java.class.path,d:\\java\\l