




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.System类介绍第6章Java常用类及接口System类:System类介绍System类位于java.lang包,代表当前Java程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。System类提供了一些类变量和类方法,允许直接通过System类来调用这些类变量和类方法。System类的成员变量System.out.println(data);System类有3个静态成员变量,分别是PrintStreamout、InputStreamin和PrintStreamerr。PrintStreamout:标准输出流。此流已打开并准备接收输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。例如,编写一行输出数据的典型方式是:其中,println方法是属于流类PrintStream的方法,而不是System中的方法。System类的成员变量System类有3个静态成员变量,分别是PrintStreamout、InputStreamin和PrintStreamerr。InputStreamin:标准输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。PrintStreamerr:标准的错误输出流。其语法与System.out类似,不需要提供参数就可输出错误信息。也可以用来输出用户指定的其他信息,包括变量的值。System类的成员变量示例:编写一个Java程序,使用本节介绍的System类实现从键盘输入字符并显示出来。具体实现代码如下:以上代码中,System.in.read()语句读入一个字符,read()方法是InputStream类拥有的方法。变量c必须用int类型而不能用char类型,否则会因为丢失精度而导致编译失败。System类的成员方法arraycopy()方法:该方法的作用是数组复制,即从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。该方法的具体定义如下:其中,src表示源数组,srcPos表示从源数组中复制的起始位置,dest表示目标数组,destPos表示要复制到的目标数组的起始位置,length表示复制的个数。publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)System类中提供了一些系统级的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System类的成员方法下面的示例代码演示了arraycopy()方法的使用:如左侧代码,将数组srcArray中,从下标1开始的数据复制到数组destArray从下标1开始的位置,总共复制两个。也就是将srcArray[1]复制给destArray[1],将srcArray[2]复制给destArray[2]。这样经过复制之后,数组srcArray中的元素不发生变化,而数组destArray中的元素将变为E、B、C、H,下面为输出结果:源数组:A
B
C
D目标数组:E
B
C
HpublicclassSystem_arrayCopy{publicstaticvoidmain(String[]args){char[]srcArray={'A','B','C','D'};char[]destArray={'E','F','G','H'};System.arraycopy(srcArray,1,destArray,1,2);System.out.print("源数组:");for(inti=0;i<srcArray.length;i++){System.out.print(“\t”+srcArray[i]);}System.out.print("\n目标数组:");for(intj=0;j<destArray.length;j++){System.out.print(“\t”+destArray[j]);}}}System类的成员方法currentTimeMillis()方法:该方法的作用是返回当前的计算机时间,时间的格式为当前计算机时间与GMT时间(格林尼治时间)1970年1月1日0时0分0秒所差的毫秒数。一般用它来测试程序的执行时间。例如:上述语句将获得一个长整型的数字,该数字就是以差值表达的当前时间。longm=System.currentTimeMillis();System类中提供了一些系统级的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System类的成员方法使用currentTimeMillis()方法来显示时间不够直观,但是可以很方便地进行时间计算。例如,计算程序运行需要的时间就可以使用如下的代码:左侧代码中的变量time的值表示代码中for循环执行所需要的毫秒数,使用这种方法可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。publicclassSystem_currentTimeMillis{publicstaticvoidmain(String[]args){longstart=System.currentTimeMillis();for(inti=0;i<100000000;i++){inttemp=0;}longend=System.currentTimeMillis();longtime=end-start;System.out.println("程序执行时间"+time+"秒");}}System类的成员方法exit()方法:该方法的作用是终止当前正在运行的Java虚拟机,具体的定义格式如下:其中,status的值为0时表示正常退出,非零时表示异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。publicstaticvoidexit(intstatus)System类中提供了一些系统级的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System类的成员方法gc()方法:该方法的作用是请求系统进行垃圾回收,完成内存中的垃圾清除。至于系统是否立刻回收,取决于系统中垃圾回收算法的实现以及系统执行时的情况。定义如下:publicstaticvoidgc()System类中提供了一些系统级的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System类的成员方法getProperty()方法:该方法的作用是获得系统中属性名为key的属性对应的值,具体的定义如下:系统中常见的属性名以及属性的说明如下表所示。publicstaticStringgetProperty(Stringkey)System类中提供了一些系统级的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。属性名属性说明java.versionJava运行时环境版本java.homeJava安装目录操作系统的名称os.version操作系统的版本用户的账户名称user.home用户的主目录user.dir用户的当前工作目录System类的成员方法下面的示例演示了getProperty()方法的使用:运行该程序,输出的结果如下:Java运行时环境版本:1.8.0_371当前操作系统是:Windows10当前用户是:Administrator提示:使用getProperty()方法可以获得很多系统级的参数以及对应的值,这里不再一一举例。publicclassSystem_getProperty{publicstaticvoidmain(String[]args){Stringjversion=System.getProperty("java.version");StringoName=System.getProperty("");Stringuser=System.getProperty("");System.out.println("Java运行时环境版本:"+jversion);System.out.println("当前操作系统是:"+oName);System.out.println("当前用户是:"+user);}}2.Object类介绍第6章Java常用类及接口Object类介绍Object类:Object是Java类库中的一个特殊类,也是所有类的父类。也就是说,Java允许把任何类型的对象赋给Object类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是Object类。因此,以下两个类表示的含义是一样的。等价于publicclassMyClass{…}publicclassMyClassextendsObject{…}Object类介绍由于Java所有的类都是Object类的子类,所以任何Java对象都可以调用Object类的方法。常见的方法如下表所示。其中,toString()、equals()方法和getClass()方法在Java程序中比较常用。方法说明Objectclone()创建与该对象的类相同的新对象booleanequals(Object)比较两对象是否相等voidfinalize()当垃圾回收器确定不存在对该对象的更多引用时,对象垃圾回收器调用该方法ClassgetClass()返回一个对象运行时的实例类inthashCode()返回该对象的散列码值voidnotify()激活等待在该对象的监视器上的一个线程voidnotifyAll()激活等待在该对象的监视器上的全部线程StringtoString()返回该对象的字符串表示voidwait()在其他线程调用此对象的notify()
方法或notifyAll()
方法前,导致当前线程等待Object
类的成员方法toString()方法:toString()方法返回该对象的字符串,当程序输出一个对象或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toString()方法返回该对象的字符串表示。Object类的toString()方法返回“运行时类名@十六进制哈希码”格式的字符串,但很多类都重写了Object类的toString()方法,用于返回可以表述该对象信息的字符串。例如:System.out.println(newDemo());对象输出时一定会调用Object类中的toString()方法打印内容。所以利用此特性就可以通过
重写toString()取得一些对象的信息。Demo@15db9742Object
类的成员方法equals()方法:在前面学习字符串比较时,曾经介绍过两种比较方法,分别是==运算符和equals()方法,==运算符是比较两个引用变量是否指向同一个实例,equals()方法是比较两个对象的内容是否相等,通常字符串的比较只是关心内容是否相等。其使用格式如下:其中,obj表示要进行比较的一个对象,o表示另一个对象。booleanresult=obj.equals(Objecto);System类的成员方法示例:编写一个Java程序,实现用户登录的验证功能。要求用户从键盘输入登录用户名和密码,当用户输入的用户名等于admin并且密码也等于admin时,则表示该用户为合法用户,提示登录成功,否则提示用户名或者密码错误信息。在这里使用equals()方法将用户输入的字符串与保存admin的字符串对象进行比较。System类的成员方法//验证用户名和密码publicstaticbooleanvalidateLogin(Stringuname,Stringupwd){if(uname.equals("admin")&&upwd.equals("admin")){//比较两个String对象
returntrue;}else{
returnfalse;}}publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.println("用户名:");Stringusername=input.next();//获取用户输入的用户名System.out.println("密码:");Stringpwd=input.next();//获取用户输入的密码booleancon=validateLogin(username,pwd);if(con)
System.out.println("登录成功!");else
System.out.println("用户名或密码有误!");}具体的代码如下:System类的成员方法上述代码在validateLogin()方法中又使用equals()方法将两个String类型的对象进行了比较,当uname对象与保存admin的String对象相同时,uname.equals("admin")为true;与此相同,当upwd对象与保存admin的String对象相同时,upwd.equals("admin")为true。当用户输入的用户名和密码都为admin时,表示该用户为合法用户,提示登录成功信息,否则提示用户名或密码有误的错误信息。该程序的运行结果下所示:------欢迎使用大数据管理平台------用户名:adinm密码:admin用户名或密码有误!------欢迎使用大数据管理平台------用户名:admin密码:admin登录成功!Object
类的成员方法getClass()方法:getClass()方法返回对象所属的类,是一个Class对象。通过Class对象可以获取该类的各种信息,包括类名、父类以及它所实现接口的名字等。例如编写一个实例,演示如何对String类型调用getClass()方法,然后输出其父类及实现的接口信息。System类的成员方法publicstaticvoidprintClassInfo(Objectobj){//获取类名System.out.println("类名:"+obj.getClass().getName());//获取父类名System.out.println("父类:"+obj.getClass().getSuperclass().getName());System.out.println("实现的接口有:");//获取实现的接口并输出for(inti=0;i<obj.getClass().getInterfaces().length;i++){System.out.println(obj.getClass().getInterfaces()[i]);}}publicstaticvoidmain(String[]args){StringstrObj=newString();printClassInfo(strObj);}具体的代码如下:该程序的运行结果下所示:类名:java.lang.String父类:java.lang.Object实现的接口有:interfacejava.io.Serializableinterfacejava.lang.Comparableinterfacejava.lang.CharSequenceObject
类的成员方法接收任意引用类型的对象:既然Object类是所有对象的父类,则所有的对象都可以向Object进行转换,在这其中也包含了数组和接口类型,即一切的引用数据类型都可以使用Object进行接收。例如,实例化A类对象,Aa=newA();对象向上转型的格式:Objectobj=a;对象向下转型的格式:Ax=(A)obj;温馨提示:因为Object类可以接收任意的引用数据类型,所以在很多的类库设计上都采用Object作为方法的参数,这样操作起来会比较方便。3.Math类介绍第6章Java常用类及接口Math类:Math类介绍Java中的+、-、*、/和%等基本算术运算符不能进行更复杂的数学运算,例如,三角函数、对数运算、指数运算等。于是Java提供了Math工具类来完成这些复杂的运算。在Java中Math类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等。Math类位于java.lang包,它的构造方法是private的,因此无法创建Math类的对象,并且Math类中的所有方法都是类方法,可以直接通过类名来调用它们。Math
类的静态常量Math类中包含E和PI两个静态常量,正如它们名字所暗示的,它们的值分别等于e(自然对数)和π(圆周率)。例如:调用Math类的E和PI两个常量,并将结果输出。代码如下:执行上述代码,输出结果如下:System.out.println("E常量的值:"+Math.E);System.out.println("PI常量的值:"+Math.PI);E常量的值:2.718281828459045PI常量的值:3.141592653589793求最大值、最小值和绝对值在程序中常见的就是求最大值、最小值和绝对值问题,如果使用Math类提供的方法可以很容易实现。这些方法的说明如下表所示。方法说明staticintabs(inta)返回a的绝对值staticlongabs(longa)返回a的绝对值staticfloatabs(floata)返回a的绝对值staticdoubleabs(doublea)返回a的绝对值staticintmax(intx,inty)返回x和y中的最大值staticdoublemax(doublex,doubley)返回x和y中的最大值staticlongmax(longx,longy)返回x和y中的最大值staticfloatmax(floatx,floaty)返回x和y中的最大值staticintmin(intx,inty)返回x和y中的最小值staticlongmin(longx,longy)返回x和y中的最小值staticdoublemin(doublex,doubley)返回x和y中的最小值staticfloatmin(floatx,floaty)返回x和y中的最小值求最大值、最小值和绝对值例如,求10和20的较大值、15.6和15的较小值、-12的绝对值,代码如下:该程序的运行结果如下:publicstaticvoidmain(String[]args){System.out.println("10和20的较大值:"+Math.max(10,20));System.out.println("15.6和15的较小值:"+Math.min(15.6,15));System.out.println("-12的绝对值:"+Math.abs(-12));}10和20的较大值:2015.6和15的较小值:15.0-12的绝对值:12求整运算Math类的求整方法有很多,详细说明如下表所示。方法说明staticdoubleceil(doublea)返回大于或等于a的最小整数staticdoublefloor(doublea)返回小于或等于a的最大整数staticdoublerint(doublea)返回最接近a的整数值,如果有两个同样接近的整数,则结果取偶数staticintround(floata)将参数加上1/2后返回与参数最近的整数staticlonground(doublea)将参数加上1/2后返回与参数最近的整数,然后强制转换为长整型求整运算下面的实例演示了Math类中取整函数方法的应用:publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.outprintln("请输入一个数字:");doublenum=input.nextDouble();System.out.println("大于或等于"+num+"的最小整数:"+Math.ceil(num));System.out.println("小于或等于"+num+"的最大整数:"+Math.floor(num));System.out.println("将"+num+"加上0.5之后最接近的整数:"+Math.round(num));System.out.println("最接近"+num+"的整数:"+Math.rint(num));}请输入一个数字:99.01大于或等于99.01的最小整数:100.0小于或等于99.01的最大整数:99.0将99.01加上0.5之后最接近的整数:100最接近99.01的整数:99.0该程序的运行结果如下:三角函数运算Math类中包含的三角函数方法及其说明如下表所示。方法说明staticdoublesin(doublea)返回角的三角正弦值,参数以孤度为单位staticdoublecos(doublea)返回角的三角余弦值,参数以孤度为单位staticdoubleasin(doublea)返回一个值的反正弦值,参数域在[-1,1],值域在[-PI/2,PI/2]staticdoubleacos(doublea)返回一个值的反余弦值,参数域在[-1,1],值域在[0.0,PI]staticdoubletan(doublea)返回角的三角正切值,参数以弧度为单位staticdoubleatan(doublea)返回一个值的反正切值,值域在[-PI/2,PI/2]staticdoubletoDegrees(doubleangrad)将用孤度表示的角转换为近似相等的用角度表示的角staticdoubletoRadians(doubleangdeg)将用角度表示的角转换为近似相等的用弧度表示的角在表中,每个方法的参数和返回值都是double类型,参数以弧度代替角度来实现,其中1度等于π/180弧度,因此平角就是π弧度。三角函数运算例如,计算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值,代码如下:publicstaticvoidmain(String[]args){System.out.println{"90度的正弦值:"+Math.sin(Math.PI/2));System.out.println("0度的余弦值:"+Math.cos(0));System.out.println("1的反正切值:"+Math.atan(l));System.out.println("120度的弧度值:"+Math.toRadians(120.0));}90度的正弦值:1.00的余弦值:1.01的反正切值:0.7853981633974483120度的弧度值:2.0943951023931953在上述代码中,因为Math.sin()中的参数的单位是弧度,而90度表示的是角度,因此需要将90度转换为弧度,即Math.PI/180*90,故转换后的弧度为Math.PI/2,然后调用Math类中的sin()方法计算其正弦值。该程序的运行结果如下:指数运算指数的运算包括求方根、取对数及其求n次方的运算。在Math类中定义的指数运算方法及其说明如下表所示。方法说明staticdoubleexp(doublea)返回e的a次幂staticdoublepow(doublea,doubleb)返回以a为底数,以b为指数的幂值staticdoublesqrt(doublea)返回a的平方根staticdoublecbrt(doublea)返回a的立方根staticdoublelog(doublea)返回a的自然对数,即lna的值staticdoublelog10(doublea)返回以10为底a的对数指数运算例如,使用Math类中的方法实现指数的运算,main()方法中的代码如下:该程序的运行结果如下:publicstaticvoidmain(String[]args){System.out.println("4的立方值:"+Math.pow(4,3));System.out.println("16的平方根:"+Math.sqrt(16));System.out.println("10为底2的对数:"+Math.log1O(2));}4的立方值:64.016的平方根:4.010为底2的对数:0.30102999566398124.Random类介绍第6章Java常用类及接口Random类介绍在Java中要生成一个指定范围之内的随机数字有两种方法:一种是调用Math类的random()方法,一种是使用Random类。Random类提供了丰富的随机数生成方法,可以产生boolean、int、long、float、byte数组以及double类型的随机数,这是它与random()方法最大的不同之处。random()方法只能产生double类型的0~1的随机数。Random类:Random类介绍Random类:Random类位于java.util包中,该类常用的有如下两个构造方法。Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造Random对象。Random(longseed):使用单个long类型的参数创建一个新的随机数生成器。Random类介绍Random类提供的所有方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的概率是均等的,在下表中列出了Random类中常用的方法。方法说明booleannextBoolean()生成一个随机的boolean值,生成true和false的值概率相等doublenextDouble()生成一个随机的double值,数值介于[0,1.0),含0而不包含1.0intnextlnt()生成一个随机的int值,该值介于int的区间,也就是-231~231-1。如果需要生成指定区间的int值,则需要进行一定的数学变换intnextlnt(intn)生成一个随机的int值,该值介于[0,n),包含0而不包含n。如果想生成指定区间的int值,也需要进行一定的数学变换voidsetSeed(longseed)重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出的Random对象相同longnextLong()返回一个随机长整型数字booleannextBoolean()返回一个随机布尔型值floatnextFloat()返回一个随机浮点型数字doublenextDouble()返回一个随机双精度值Random类的成员方法该程序的运行结果下所示:生成的[0,1.0]区间的小数是:0.8773165855918825生成的[0,7.0]区间的小数是:6.407083074782282生成的[0,10]区间的整数是:5生成的[-3,15]区间的整数是:4生成一个随机长整型值:-8462847591661221914生成一个随机布尔型值:false生成一个随机浮点型值:0.6397003生成[0,9]区间的整数:8Randomr=newRandom();System.out.println("生成的[0,1.0]区间的小数是:"+r.nextDouble());System.out.println("生成的[0,7.0]区间的小数是:"+r.nextDouble()*7);System.out.println("生成的[0,10]区间的整数是:"+r.nextInt(11));System.out.println("生成的[-3,15]区间的整数是:"+r.nextInt(19)-3);System.out.println("生成一个随机长整型值:"+r.nextLong());System.out.println("生成一个随机布尔型值:"+r.nextBoolean());System.out.println("生成一个随机浮点型值:"+r.nextFloat());System.out.println("生成[0,9]区间的整数:"+r.nextInt(10));下面编写一个Java程序,演示如何使用Random类提供的方法来生成随机数。具体代码如下:Random类的成员方法Math类的random()方法没有参数,它默认会返回大于等于0.0、小于1.0的double类型随机数,即0<=随机数<1.0。对random()方法返回的数字稍加处理,即可实现产生任意范围随机数的功能。下面使用random()方法实现随机生成一个2~100偶数的功能。具体代码如下:intmin=2;//定义随机数的最小值intmax=102;//定义随机数的最大值//产生一个2~100的数ints=(int)min+(int)(Math.random()*(max-min));if(s%2==0){//如果是偶数就输出System.out.println("随机数是:"+s);}else{//如果是奇数就加1后输出System.out.println("随机数是:"+(s+1));}由于m+(int)(Math.random()*n)语句可以获取m~m+n的随机数,所以2+(int)(Math.random()*(102-2))表达式可以求出2~100的随机数。在产生这个区间的随机数后还需要判断是否为偶数,这里使用了对2取余数,如果余数不是零,说明随机数是奇数,此时将随机数加1后再输出。该程序的运行结果如下:随机数是:20Random类练习主持人在数字范围内随机确定一个数字,作为炸弹数字,玩家轮流猜数字,谁猜中这个炸弹就被惩罚。比如范围是1~100,炸弹是60,然后猜了一个数字是50,50不是炸弹,那么现在猜数字的范围就缩小到50~100;又猜了一个数字80,80也不是炸弹,那么现在又缩小范围到50~80,每次猜不能猜边界上的值,直到有人猜中这个炸弹,然后就受到惩罚。数字炸弹游戏:5.日期相关类介绍第6章Java常用类及接口日期相关类Java与日期相关的类有三个:Date:具体类java.util.Date;Calendar:抽象类java.util.Calendar,它的派生类java.util.GregorianCalendar;DateFormat:抽象类java.text.DateFormat,它的派生类java.text.SimpeDateFormat;Date类日期相关类在Java中,日期Date是从1970.01.0100:00:00GMT加上一个long型的毫秒数时间得到的。我们可以从Java的API文档查找到java.util.Date类的构造方法和成员方法。其中如果标识为“Deprecated”(弃用)的表示已经过期的,当前无法使用。当前有效的Date类的构造方法有:用不带参数的构造方法直接实例化为系统当前日期时间;或者用一个long型的参数构造方法,它实例化一个Date对象,这个对象是从1970.01.0108:00:00加上ms毫秒的日期。Date()或者Date(longms)日期相关类方法名说明publiclonggetTime()获取的是日期对象从1970年一月一日00:00:00到目前的毫秒数publiclongsetTime(longtime)设置时间,给的是毫秒值Date类的常用方法日期相关类Date类的应用示例importjava.util.*;publicclassDateDemo01{publicstaticvoidmain(Stringargs[]){Datedt1=newDate();Datedt10=(Date)dt1.clone();System.out.println("Today\t\tdt1="+dt1);Datedt2=newDate(System.currentTimeMillis()+24*60*60*1000);System.out.println("Tomorrow\tdt2="+dt2); Datedt3=newDate(System.currentTimeMillis()-24*60*60*1000);System.out.println("Yesterday\tdt3="+dt3);System.out.println("dt1.after(dt2):"+dt1.after(dt2)+"\tdt3.before(dt2):"+dt3.before(dt2));System.out.println("Comparedt1:dt10<"+pareTo(dt10)+">\tdt1:dt2<"+pareTo(dt2)+">\tdt1:dt3<"+pareTo(dt3)+">");}}运行结果为:Today dt1=SatNov0422:37:45CST2023Tomorrow dt2=SunNov0522:37:45CST2023Yesterday dt3=FriNov0322:37:45CST2023dt1.after(dt2):false dt3.before(dt2):trueComparedt1:dt10<0> dt1:dt2<-1> dt1:dt3<1>日期相关类DateFormat类时间与日期模板结果"yyyy.MM.ddG'at'HH:mm:ssz"2001.07.04ADat12:08:56PDT"EEE,MMMd,''yy"Wed,Jul4,'01"h:mma"12:08PM"hh'o''clock'a,zzzz"12o'clockPM,PacificDaylightTime在java.text包下的一个类,它可以把Date类格式化输出。一般情况下,使用的是它的子类,叫做SimpleFormat类,它可以使用其父类DateFormat的方法。在这个类中,定义了许多模板字符。利用这些模板字符,程序员可以制定所需要的日期输出格式。例如:日期相关类DateFormat类的格式化输出日期时间示例importjava.util.*;importjava.text.*;publicclassDateDemo02{publicstaticvoidmain(Stringargs[]){Datedt1=newDate(); Datedt2=newDate(System.currentTimeMillis()+24*60*60*1000); SimpleDateFormatsdf1=SimpleDateFormat("yyyy年MM月dd日EEE,HH:mm:ss:SSS");SimpleDateFormatsdf2=newSimpleDateFormat("yyyy/MM/dd本月第W周EEE,今年的第DDD天" System.out.println("sdf1.format(dt2):"+sdf1.format(dt2)+"\nsdf2.format(dt1):"+sdf2.format(dt1)); }}运行结果为:sdf1.format(dt2):2016年08月25日星期四,18:08:22:454sdf2.format(dt1):2016/08/24本月第4周星期三,今年的第237天单类型导入(single-type-import),例如importjava.io.File;按需类型导入(type-import-on-demand),例如importjava.text.*;日期相关类Date类中,许多低版本的方法在高版本已经过时了,替代这些方法的是相应用Calendar类中的各种方法。Calendar也是java.util包下的一个类,主要替代Date的一些功能。Calendar类有两个构造方法:protectedCalendar()protectedCalendar(TimeZone
zone,
Locale
aLocale)均为protected权限。因此,用户是不能使用构造方法来实例化Calendar对象的,而是通过这个类提供的静态方法:static
CalendargetInstance()
来创建对象的,或者用子类GregorianCalendar的构造器:GregorianCalendar()
来实例化Calendar对象。Calendar类日期相关类Calendar类应用示例importjava.util.*;publicclassCalendarDemo{publicstaticvoidmain(Stringargs[]){Calendarcd1=newGregorianCalendar();Datedate=newDate(System.currentTimeMillis()+3*24*60*60*1000);cd1.setTime(date);System.out.println("Year:"+cd1.get(cd1.YEAR));System.out.println("Month:"+cd1.get(cd1.MONTH));System.out.println("Day:"+cd1.get(Calendar.DATE));System.out.println("Week:"+cd1.get(cd1.DAY_OF_WEEK));SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEE,HH:mm:ss:SSS");System.out.println("Currentdate:"+sdf.format(cd1.getTime()));}}可以通过对象(如cd1)、也可以通过类名Calendar访问域名,或者日期时间信息.日期相关类Calendar类importjava.util.*;publicclassCalendarDemo{publicstaticvoidmain(Stringargs[]){Calendarcd1=newGregorianCalendar();Datedate=newDate(System.currentTimeMillis()+3*24*60*60*1000);cd1.setTime(date);System.out.println("Year:"+cd1.get(cd1.YEAR));System.out.println("Month:"+cd1.get(cd1.MONTH));System.o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CCS 037-2023综采工作面矿压智能化监测系统技术规范
- T/CBJ 1106-2024酒类企业ESG披露指南
- 事业单位实习生合同5篇
- 租赁门面合同简易版10篇
- T/ZSJX 4101-2019食用菌优质经销商评价准则
- T/ZSJX 1101-2019金针菇工厂化生产技术规程
- T/ZSESS 006.2-2023环保共性产业园建设和管理规范第2部分:木制家具喷涂核心区
- 医疗废物管理培训体系构建
- 幼儿园新年活动策划方案
- 健康促进班会课课件
- 部编版小学一至六年级词语表汇总
- 音视频系统培训资料-(内部)
- 常州市北郊初级中学英语新初一分班试卷含答案
- 隧道截水沟施工
- 锚杆施工方案
- 专业方向证明
- 十万个为什么问题大全及答案
- 骨痿临床路径及表单
- 六年级下册美术(岭南版)期末测试题
- 2023年年全国职业院校技能大赛(中职组)2023年液压与气动系统装调与维护赛项样题D卷(模块2)
- 西方思想经典-南京大学中国大学mooc课后章节答案期末考试题库2023年
评论
0/150
提交评论