




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号:时间:2021年X月X日书山有路勤为径,学海无涯苦作舟 页码:第9页共79页第十三章2007年6月17日星期日授课教师:学生:第一节HashMap类常见的方法及其用法构造方法摘要HaglJap()构造一个具有默认初始客堂(16)和默认加载因子(0.75)的空HashJTap。方法摘要voidclear。从此映射中移除所有映射关系。clone()返回此HashMap实例的浅表复制:并不克隆撰和值本身。booleanccmtinsKey(Objuctkey)如果此映射包含对于指定的键的唉射关系,则返回true.booleancontainsValue(Objectvalue)如果此映射将一个
2、或多个键映射到指定值,则返回true.1get(Objectkey)返回指定键在此标识哈希啖射中所映射的值,文婢对于此键来说,映射不包含任何吠射关系,则返回nullobooleanigEapty()文睇此映射不包含键4S映射关系,则返回iruec11put(Kkey,Vvalue)"在此映射中关联指定值与指定键。pirt&ll(Mao<?extendsK,?extendsV>m)将指定映射的所有映射关系复制到此映射中,这些映射关系将替换此吠射目前针对指定映射的所有键的所有吠射关系。Vremove(Objcctkey)如果此映射中存在该键的映射关系,则将其删除。il
3、tJ?ize()返回此映射中的键靠映射关系数>publicclassTestpublicstaticvoidmain(Stringargs)创建5个Bean的对象bl-b5并对它们进行初始化Beanbl=newBean();bl.setAge(23);bl.setName(HBobM);Beanb2=newBean();b2.setAge(23);b2.setName(HBobM);Beanb3=newBean();Beanb4=newBean();b4.setAge(30);b4.setName(HJackH);Beanb5=newBean();b5.setAge(29);b5.set
4、Name(MwangH);HashMaph=newHashMapO;创建HashMap类型对象h;并调用put方法,将它们取个key名(外号),加入到Map中h.put("l",bl);h.put("2",b2);h.put("3",b3);h.put("4'b4);h.putC5",b5);h.remove("3");调用remove。方法,将key值为"3"的元素移除HashMapSysteni.ou(.println(h.size();输出Map中的元素数Bea
5、ntemp=(Bean)h.get(,5");将key值为“5"的元素取出来,并恢复其Bean身份,并其引用返回给tempSystem.out.println(temp.getAgeO);System.out.println(temp.getNameO);输出key值为"5"的属性值)第二节equals方法和hashCode方法的重写在处理两个对象之间关系时,有时会需要判断两个对象是否相等,如果他们的引用指向的是同一个对象,那么它们是相等的。如Object中的equals方法。如果它们指向的是同一类型的不同对象,但是他们的属性值是相等的,也就是说它们的内
6、容是相等的,那么我们就需要重写equals方法,例如:String中的equals方法就是Object中的equals方法的重写。如果我们自己定义一个类,需要将自己写的类型的两个对象equals。那么我们就需要在该类中重写Object中的equals方法。重写完equals方法后还需要重写hashCode方法。因为当我们用Hash容器(如HashMap、HashSet)装载这些对象时,例如,将一个对象用add方法加入Set时,会产生一个HashCode,当我们又创建一个同类型内容相同的对象时,又变成另外一个HashCode了,它们在容器中的HashCode是随机的生成的,那么你就无法取得该对象
7、了。如果我们要判断容器中是否装进了某种类型的对象,那么就需要重写hashCode方法,因为equals方法返回true的对象,它们的hashCode是相同的,重写hashCode方法就是让计算机在同一HashCode中寻找,否则计算机出于Hash容器的高效性考虑,不会去在已经存放该对象的hashCode中寻找,当然也就找不到了。重写equals方法和hashCodepublicclassMoney创建名叫Money这个类publicintvalue=0;定义int型数据成员value,并初始化为00publicMoney()创建无参数的构造方法)publicMoney(inti)带有参数的构造
8、方法value=i;)publicbooleanequals(Objectobj)重写时需要注意重写的方法定义的要求if(obj=null)判断形参的是否为空。如果是,返回falsereturnfalse;)if(this=obj)判断形参对象与调用该方法的当前对象是否指向同一对象,如果是返回true,returntrue;)if(!(objinstanceofMoney)判断形参对象是否是Money的实例,如果不是,返回false,returnfalse;)Moneymo=(Money)obj;将形参引用恢复成该对象的身份。if(mo.value!=this.value)如果他们的内容不相等
9、,返回falsereturnfalse;)returnture;如果都不是上面的情况返回tnie)publicinthashcode()重写hashcode方法,使它们的hashcode保持一致returnvalue;第3页共79页编号:时间:2021年X月X日书山有路勤为径,学海无涯苦作舟 页码:第9页共79页我们在eclipse中测试一下:如果我们不重写hashCode方法。那么输出的将会是flase如果我们将每个对象都存放在同一hashCode中,那样查找的效率就会很低,但是我们还可以利用String中的hashCode的算法,去重新写hashCode方法。publicinthashCo
10、deO(Stringstr=String.valueOf(value);将整型的value转化为String型的strreturnstr.hashCode();用String中的hashCode的算法,返回hashCode)第十四章2007年6月18日星期一授课教师:学生:第一节如何创建一个文件对象有三种方式:1Filemyfile=newFiIeCd:/java/a.txfv);2、Filemyfilel=newFileCd:/javaa.txt");3、Filemyfile2=newFileCmyfilelb.txO;File类中常见的方法构造方法摘要File(Fileparen
11、t,Stringchild)根据parent抽象路径名和0ild路径名字符串创建一个新File实例。File(Strngpthnajie)一通过将给定路径名字符串转换成抽象雌名来创建二个新File实例。File(Stringparent,Stri匕&child)根据par商径名字符串和child路径名字符串创建一个新File实例。方法摘要lx*ole&jxcanKeadO冽试应用程序是否可以读弱此抽象路径名表示的文件。b>ol«anc2inTKite()测试应用程序是否可以修改此抽象路径名表示的文件。createNevFile()当且仅当不存在具有反咕象珞径名指
12、定的一个新的空文均匕抽象路径名指定的名称的文件时,原子地创建由此qVoqIccuiexists()测试此抽鬃路径名表不的文件或目录是否存在。FilegatAbsolutaFila()返回抽象路径名。勺绝对路径名形式。getAbsolutePathO返回抽象路径名的绝对路径名字符串°booleanisAbsoluteO测试此抽象路径名是否为绝对路径名。b>olcaAisDirectoryO测试此抽象路径名表示的文件是否是一个目录。IwlccmisFileQ测试此抽象路径名表示的文件是否是一个标准文件。isHidden()测试此抽象路径名指定的文件是否是一个隙藏文件。loarfle
13、d0返回此抽象路径名表示的文件最后一次被修改的时间6Ion匕length()返回由此抽象路径名表示的文件的长度。so1。11a ikdirO创建此抽建路径名指定的目萧“。1。皿 BkdirsO创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。renaMeTo(Filedest)返回此抽象路径名的珞径名字符串。重新命名此抽象路径名表示的文件。举例说明:importjava.io.FiIe;importjava.io.IOException;导入java.io包中的File和lOException两个类publicclassFileNamepublicstaticvoidmain(Stri
14、ng|args)Filefl=newFile(nd:/javallln);创建一个文件对象flfl.mkdirO;创建该文件对象的目录Filef=newFile(nd:/whjhg.txt,r);创建一个文件对象fFileff=newFile(fljwww.txt”);创建一个文件对象ff,利用File中的构造方法,将其目录设置为fl所指向的路径将文件名设置为www.txt。try(处理创建文件时可能出现的异常如果两个文件不存在则创建这2个文件ff.createNewFile();f.createNewFileO;catch(lOExceptione)捕获异常e.printStackTrace
15、O;)System.out.println(ff.canRcadO);ff所指向的这个文件是否可读?Systeni.out.println(ff.canWriteO);ff所指向的这个文件是否可写入?System.out.println(ff.exists();/ff所指向的这个文件是否存在?System.out.println(ff.getPathO);第5页共79页编号:时间:2021年x月X日书山有路勤为径,学海无涯苦作舟 页码:第9页共79页输出ff对象的路径名System.out.println(ff.isHiddenO);/ff所指向的文件是否为隐藏文件?System.out.pr
16、intln(ff.isFileO);ff这个对象是一个文件吗?Systeni.out.println(fl.nikdirO);/fl这个对象路径创建成功了吗?System.out.println(ff.isDirectoryO);ff这个对象是目录吗?System.out.println(ff.lastModifiedO);/ff所指向的这个文件的最后修改时间Systeni.out.println(ff.lengthO);ff所指向的这个文件的大小是多少System.out.println(ff.delete();删除行所指向的文件是否成功System.out.println(f.rename
17、To(fl);是否成功的将f所指向的文件重命名为flSysteni.ou(.println(f.toString();以字符串的形式将f对象返回)在eclipse中测试一下结果:第7页共79页方演源FileHaae.javaEclipse平台文件口绷得源代码垂构浏览褒素®项目(1)运行窗口®)帮助| JOutput. JOVCL| J 7estWirt«.rDFileN«kn«. j X4战21 微22 鬣23 卜 |26 127 |281 忸SystejTu ou-t.printlnCff. conRoadO): System. ou-t.p
18、rintlnCff. canWrite 0): System, out.printexists(); System, out. print In (ff. getPathO): System, out. print In(ff. isHidden (): Systcnu out .printisFilcO );SystejTu out. print In (fLiThdirO );Systeiru out. d rint In (f f. isDir eci ory 0): SystcjTu ou-t.priiitln(ff. latModificd(): System. oui. print
19、 In(ff. lengthO ): SystenL out.printdelete(): SyctcjTL out. p r iitt In (f. r ciiamc T o (f 1); System. oui.printIn(*f.t©String:():人V4zre安工 -空大纲:E质0峻Q戏 阳三导人声明H ©K rileWane naia(Stnng),1旅。Q一W,一-台匝资西任务g控制台泊-1笈燔1附(=日(已笠止F;l。姐6。仃皿为应用程序Cj2zacl42八bejarw”:。(2007-6-1913:24-truetruetrued:javalllvw.
20、txtfalse,truefalse,false11822306520000truefalsed:uhjhg.txt可写智1龈入11:28第二节怎么样将一个创建好的文件写入一些内容importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.PrintStream;导入java.io包中的FileOutputStream、lOException、PrintstreampublicclassOutput创建名叫Output的类publicvoidwrite(Stringfilename)(创建一个带有参数的无返回值的
21、方法write目的是将形参中所代表的路径名文件写入一些内容FileOutputStreamfs=null;PrintStreanips=null;分别创建两个FileOutputStream>PrintStreani对象fs和ps。将它们初始化为nulltry处理在写入文件时可能出现的异常fs=newFileOutputStream(filename);将fs的引用指向用该方法形参作为构造方法参数的FileOutputStream对象ps=newPrintStream(fs);编号:时间:2021年x月X日书山有路勤为径,学海无涯苦作舟页码:第31页共79页将ps的引用指向用fs作为构造
22、方法参数的Printstream对象ps.println(Hl234567890123");调用ps对象中的printin方法,将字符串”1234567890123”写入到文件中System.out.printin("文件写入成功)如果没有出现异常,输出文件写入成功。catch(Exceptione)捕获异常e.printStackTrace();finally无论是否写入成功,都应该将fs和ps所指向的文件关闭try(if(ps!=null)ps.close();catch(Exceptionel)el.printstackTrace();)try(if(fs!=null
23、)fs.closeO:catch(lOExceptionel)el.printStackTraceO;)在eclipse中测试一下G费源二lesCixte.java二Eclipse平台13回区I文件口绸海财源代码亳)重构浏览钝褒素®项目运行®窗口®)制助势,。,JWJ$-,百匣资JS| Jl Output./. JJ TcstWir.汉 飞4zreMaBlrll/)笆a、 et-,. B-B-O 斗理0 7。$ 卜'三导入声明lestWirte。s naiaCStringC)j ava333Svpublic classlestWipublic st at
24、ic void main (St ring args) File ff=ne> File Cd:/java333"):ff. mkdir ():File f=new File9333", "urw. t't"):try (£. crea-teNeileO ;1 catch (lOException e) e. prin-t Stack!race ();)String f ilenzunef. g et Absolut cP at h();SystejTu ou-f.println(filenojneJ :Output o=ne&l
25、t; Output 0 :o. writ e (f i 1 cnamc);任务曰控例台不、司 | 端| 一日。曰已奖止7。近丫在八 仃相会应用程序C:j2s3kl 4 2J4Linj(2007-6-19 13g D:java3331ww.txt 文件写入成功-nix文件洞卷0 查看9收潦H具。帮助国)。后退 t ,覆索 文件夹回 地址回|广)口:好处的-记省本立伴口 混瑁。格式9)(V)文件利交件夹任学Bsv tzt得档1234567899123第11贞共79页位置j本地5恪)口关的交存a共空文者/关的电病母网上邻居编号:时间:2021年X月X日 书山有路勤为径,学海无涯苦作舟 页码:第28页
26、共79页第三行怎么样读取一个文件的内容importjava.io.File;importjava.io.FilelnputStream;importjava.io.IOException;导入java.io包中的File、FilelnputStream、lOExceptionpublicclassIn创建名叫In的类publicStringfun(Stringa)创建带有参数的,返回值类型为String的方法fun其中形参a是字符串形式的文件路径该方法返回的是形参路径所指向的文件内容Fileff=newFile(a);创建用形参作为构造方法参数的File类型的对象ffFilelnputStre
27、amfs=null;创建FilelnputStream对象fs,并初始化为nullbytebb=newbyte2;创建byte型的数组bb,并指定长度为2,指定了每次读取的字符数Stringcon=M"创建一个String类型的变量con,用来储存读取文件的内容intn=0;定义一个局部变量。初始化为0try处理在读取文件中可能存在的异常fs=newFilelnputStream(ff);将fs的引用指向用该方法形参作为构造方法参数的FilelnputStream对象while(n!=-l)以是否读到文件尾为判断条件,进行while循环if(n!=O)如果n不等于0,将读取bb数组中
28、的n个字符并将其内容放入到temp临时字符串中Stringtemp=newString(bb.O.n);将内容累加到con中con+=teinp;n=fs.read(bb);用fs对象调用read方法将读取出的字符个数赋给n)catch(Exceptione)捕获异常e.printStackTrace();finally(无论是否出现异常都应该将文件关闭try(处理关闭文件时产生的异常fs.closeO;catch(lOExceptionel)捕获lOException异常el.printStackTraceO;)returncon;返回调用该方法所读取的文件内容我们在eclipse中测试一下
29、,测试码如图:第四节利用前两个程序中的方法拷贝一个文件importjava.io.File;importjava.io.FilelnputStream;importjava.io.FileOutputStream;importjava.io.IOException;导入java.io包中的File、FilehiputStream、FileOutputStreanKlOException类publicclassCopyFile创建CopyFile类publicvoidcopy(StringsrcName,StringdesName)创建copy方法,其形式参数分别为源文件和目的文件Filesrc
30、=newFile(srcName);Filedes=newFile(desName);分别由两个形参作为File构造方法的参数,创建两个File对象src和desFilelnputStreamfis=null;FilcOutputStreamfos=null;分别声明FilelnputStream>FilcOutputStream的对象fis和fos,并将其初始化为nulltry(处理在文件copy的时候所产生的异常des.createNewFile();创建形参des所指的目的文件fis=newFilelnputStream(src);fos=newFileOutputStream(d
31、es);分别创建FilelnputStream>FilcOutputStream的对象fis和fosintn=0;定义整形变量n,初始化为0bytebuf=newbyte2;创建byte型的数组bb,并指定长度为2,指定了每次读取的字符数while(n=fis.read(buf)!=-1)调用fis的read方法读取源文件,并将其读取的字符数量赋给n定义循环条件为n!=-l(未读到文件尾)fos.write(buf,0,n);将每次读取的内容写入到目的文件中)catch(Exceptione)捕获异常e.printStackTraceO;finally为了安全起见,分别处理在文件关闭时的
32、异常try(if(fos!=null)fos.flush();catch(lOExceptionel)el.printStackTraceO;try(if(fos!=null)第13贞共79页编号:时间:2021年X月X日 书山有路勤为径,学海无涯苦作舟 页码:第28页共79页fos.close();catch(lOExceptione2)e2.printStackTrace();)try(if(fis!=null)fis.closeO;catch(lOExceptione3)e3.printStackTrace();)System.out.printing'文件copy成功”);)在
33、eclipse中测试,测试码如下图:。费源二Test,java二Eclipse平台130区I文件论编辑更)源代码(?)重构浏览)疑项目Q)运行窗口讨)帮助困)"势OQ彳|彳>j£曲7。Ei力资通fj CopyFile. j av«Output, jJj In. ja/入Copy/ilc. jov* DvTest. java F ilcKunc. j "a In. j ava Input, ja/a Output, jav Test java Testlilel. jaza lestln. java lestXead java lestYirte.
34、jaza在大纲眼、啊R技。校 e>T-i。“naia(String)345678M0123456789012"public class Test (“创建测试类T£t,用球测试文件拷川方法public static void jTiainCStrinsfl args) 钊建nairi方法作为修序大口Output o = new Output。: o. write(rD:/aai txtr)./'创建Output对分g并痈用其中的智irit c方法 /WD:/aa. tx+JCl4K A* 1234567890123rtIn in = new Inf);Stri
35、ng con = iii. funCDz/aa. 创建工范技in调用fun方法.融焉容逡出来城给conSystenu out.printIn(con);/曲包D : /t此文行币和内容CopyPile ci = new CopyFile ():“初建CopyFile时象cf,并调用其的copy方法 cf. copy(* D:/aa. txt', "D:/bb txt");/WD:/aa.十X+的内容拷贝洽D,bb. iyt Systenu out.printIn(in.funCD:/bb.txt*).幅5: /bb.。七的土穹希士巴西任务里控制台二I曦Ia曲IMO口
36、己终止Iwst(1Z)Java应用程序C.jZsdkl.4.Z14biniavaAvexe(ZODT-6-ZO2ZIC文件写入成功Al1234667890123文件cop了成功1234667890123M可写智彳团6人20:28第十五章2007年6月20日星期三授课教师:学生:第一节与文件操作相关的一些程序实例一、实现FilenameFilter接口来过滤符合某些条件的文件或目录。importjava.io.File;importjava.io.FilenameFilter;导入java.io包中的File类和FilenameFilter接口publicclassJavaFilterimple
37、mentsFilenameFiIter创建JavaFilter类实现FilenameFilter接口publicbooleanacccpt(FiledinStringname)重写接口中的accept方法,以实现FilenameFilter接口returnname.endsWith(H.java,r);返回一以”Java"结尾字符串)在eclipse中测试:二、读取properties类型文件的内容:properties类型文件叫属性文件,其中的内容不要写中文,否则会读出乱码,它的作用是实现程序和程序之间、程序和服务器之间的信息交换。由于properties类型文件通常存放的是一些服
38、务器的IP地址,或者存放程序实现所必须的目录或文件,所以可以利用文件返回的字符串来使维护程序更加方便。下面举一个读取properties类型文件的内容的程序。我们首先在硬盘上创建一个test,properties.用记事本打开写入内容如下图E*test,properties-记事本文件g编辑格式。查看国)帮助第|url=nane=tiger其中url和name叫做标记,后面的部分叫内容importjava.io.File;importjava.io.FilelnputStream;importjava.utiLPropcrties;导入java.io包中的File和Filel
39、nputStream类导入java.util中的Properties类publicclassReadPro创建ReadPro类publicStringurl="”;publicStringname=定义.properties类型文件中的内容标记url和name作为数据成员,初始化它们为""publicRcadProO在构造方法中完成读取.propertie文件的操作使其创建该类对象时就已经将.propertie文件的内容赋给该类的成员变量try(处理在读取文件中可能出现的异常Propertiesprops=newProperties();创建Properties类
40、的对象Filef=newFile(Md:/Test/perties*);/pertie文件路径作为参数的构造方法创建File类对象fFilelnputStreamin=newFilelnputStream(f);将f作为FilelnputStream构造方法的参数创建其对象inprops.load(in);将in作为参数用对象props调用Properties中的方法load将文件读取出来in.close();第17贞共79页编号:时间:2021年x月X日书山有路勤为径,学海无涯苦作舟页码:第31页共79页关闭该文件url=props.getPropcrty(Mu
41、rrr);name=props.getProperty(,nameM);用Properties类中的getProperty方法将标记作为参数,分别返回给数据成员)catch(Exceptione)捕获异常e.printStackTrace();)我们在eclipse中测试。测试码见下图:4滨源一Test,javaEclipse平台文件®编辑安源代码重构浏览皆搜索国)项目9运行®窗口®帮助®J TestFilter. java 目.classpath 国.project iodenoClJ ffi-bTest. java XJ | ReadPro java
42、vpublic class lest 瓦0。一 R-O Test3 - 1 | 0 府。 nain(Slrixx)首卷Q屯,4夕易首岛资源4斓曾慎落氤叩汉仔中的标记内容读取并输出匚,。publics-taticvoidmain(Siringargs)创建main方法作为程序入口EcadProrp=ncvRcadF'ro();8涮用里耳的默认构宣方法创建R%dPm却寸象工pSysten.out.printIn(rp.url):Systen.out.printIn():11 ”将h对蒙的数括成员输出12 113 14任务日控制台片回袋|反斓|凶,。日5止Tc:5t(13)丁“
43、o应用程序C:J2sdkl.4.2_14LirAjAVAv.(2007-B-2012770.0.1tiger可写智能插入11:第三节线程一、基本概念:1、进程:通俗来讲就是指正在被epu执行的代码叫进程。2、线程:等待被epu执行的代码叫线程。3、多线程:指的是在单个程序中可以同时运行多个不同的线程,执行不同的任务。由于epu采用分时复用,每个线程都有机会得到执行,每个都执行1ms,我们看起来就像是同时执行。二、创建线程:线程的所有活动都是通过线程的run。方法来实现的。在一个线程被建立并初始化以后,Java的运行时系统就自动调用run()方法,正是通过run()方法才使得建立线程的目的得以实
44、现。线程开始执行时,从它的run()方法中执行,这种方法是定义的线程的执行起点,就像应用程序从main。开始一样。通常,run。方法是一个循环,例如一个播放动画的线程要循环显示一系列图片。有时,run()方法会执行一个时间较长的操作,例如下载并播放电影。有两种方法可以构造自己的nin()方法。下面我们将通过两个例子来分别说明。1、通过继承创建线程定义一个线程类,它继承线程类Thread并重写其中的方法run(),由于Java只支持单继承,用这种方法定义的类不能再继承其他父类。启动时调用start方法。举例说明publicclassXIextendsThread创建类XI,继承Thread类in
45、ti=l;定义整型变量i,初始化值为1publicvoidrun()重写run方法while(i>0)System.out.println(HX1的M+i+);try(处理在线程sleep时所产生的异常Xl.sleep(lOOOL);为了测试时能看清楚,调用Thread类中的sleep方法每秒输出一个数字catch(InterruptcdExceptione)捕获异常e.printStackTraceO;)测试码如图:会登源一TestX.javaEclipse平台匚回区|文件任)编辑d)那代培6)蜀矶D浏览®搜索®项目运行®话口世)帮助但)Jr"券
46、"。,鼻,?酉心蟹J?也<n二JjXI.jayaJjTestX.jwa次l今 li cxu:i国 B classes-® srcJ j Input. j cvaJ| InputTest.javaJI Output javaJ| Outpatrest. javaJ TestK. javav在大纲凰,=B度这峻。A 日”. Todt:u。'nam(5trinz)"vpublic class TestX2 3b456789public si at icXI a二n” XI a. start ():void0 .main (S-t ring JS 23456
47、789- 时的的的物的的的必1A 1A 1A 1A K 1A 1A 1A控制台TestX应用程序C:J2 = akl,4. 24bixAjae. exe ( 203-6-23 18:2、提供一个实现接口Runnable的类作为一个线程的目标对象,在初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体run()«这时,实现接口Runnable的类仍然可以继承其他父类。举例说明:publicclassX2implementsRunnable创建X2类,实现Runnable接口inti=l;publicvoidrun()重写run方
48、法以实现Runnable接口while(i>0)System.out.println(HX2的M+i+);try(Thread.sleep(1000L);catch(InterruptedExceptione)/TODO自动生成catch块e.printStackTrace();)第19贞共79页编号:时间:2021年X月X日 书山有路勤为径,学海无涯苦作舟 页码:第28页共79页测试码入图:帮助class lestApublic st at ic void main (Si ring arRunnable r=ner X2();Thread th=ner Thread(r): th.
49、st art 0 ;文件任)编辑区)那代臂6)堇沟 浏览® 搜索电)项目 运行® 笛口世)1 w。X任务日控制台笈、笈|左展|二,。日TestX 仃”.应用程序C Aj2=dhl.4.2J4iAj. cxe ( 2007-8-23 18:39:02)-TestX. iava Eclipse 平台9-345 6 7890G号肮得次、,。百Q二 唾|目叵亩及C617人田及C620中心iodeno后卷1:皿i+ 已 classesR src Jl Input, java J| InputTest. java v资源生大纲J、1° B国0 H 0 -.Q» Ta
50、s tX:s。 na:n(5tring)0 12 3 4 Q的的的物的的的的 -22222222可写智能插入3、两种方法的比较(1)直接继承线程Thread类。不能再从其他类继承,编写简单,可以直接操作线程。(2)通过实现Runnable接口实现线程。可以将CPU、代码和数据分开,形成清晰的模型:还可以继承其他类;保持程序风格的一致性和良好的扩展性。在具体应用中,采用哪种方法来构造线程体要视情况而定。通常,当一个线程已继承了另一个类时,就只能用第二种方法来构造,即实现Runnable接口。三、线程的状态:1、创建状态(newThread()当一个线程处于创建状态时,它仅仅是一个空的线程对象,系
51、统不为它分配资源。2、可运行状态(Runnable)当一个线程处于可运行状态时,系统为这个线程分配了它所需的系统资源,安排其运行并调用线程运行方法,这样就使得该线程处于可运行(Runnable)状态。3、运行中状态(Running)当一个线程处于可运行状态时,系统为这个线程分配了它所需的系统资源,Java的运行系统选中一个可运行状态的线程,该线程占有CPU并转为运行中状态。4、不可运行状态(NotRunnable)不可运行状态也称为阻塞状态(Blocked)。由于某种原因(输入/输出、等待消息或其他阻塞情况),系统不能执行线程的状态。这时即使处理器空闲,也不能执行该线程。5、死亡状态(Dead
52、)线程执行结束的状态。存在两种情况:自然撤消或是被停止。四、线程控制:1、设置线程的优先级用Thread类中的setPriorty方法;例如:Thread.setPriorty(l0);其中的参数10是设置为最高优先级,1是最低优先级。注意:要在线程启动前设置优先级。2、停止一个线程:一种方法是直接调用stop方法,但这不可靠,sun公司的文档写明不推荐的方法。另外一种就是自己写个方法,让线程该停止的时候调用该方法。例如:可在例一中添加fun方法:publicclassXIextendsThreadinti=l;publicvoidrun()while(i>0)System.out.pr
53、intln(MX1的H+i+);try(XLsleep(lOOOL);catch(InterruptcdExceptione)/TODO自动生成catch块e.printStackTrace();)publicvoidfun()i=-l;System.out.println(HX1isDead*1);)测试码入图:第#贞共79页编号:时间:2021年x月X日书山有路勤为径,学海无涯苦作舟页码:第31页共79页第23贞共79页勺咬源一TestX.javaEclipse平台:问冈文件编机如源代码重构©浏览理)搜索项目运行购窗口切帮劭购由,图自势j/婷首隹蝴备一中区导航器冠、0目:迎|总医QT«stXjAVAXInput.JAVAInputTest.javaOutput.javaOutputrest,jav4TestX.javaXI.jwdX2.javaIvpublicclasslestX人缪JvpublicstaticvoidjTiain(Stringargs)XIa=ne<XI():修6a.start();try多8Thread.sleep(10000L):catch(InterruptedExceptione)glO/IODO自动生成catch块缪1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 明星模拟测试题及答案
- 焚烧秸秆数学试题及答案
- 施工现场防火安全措施试题及答案
- 掌握国际贸易关系的商务英语试题及答案
- 幼儿园数学与情境结合的试题及答案
- 足少阳胆经试题及答案
- 幼儿园数学故事分享试题及答案
- 注册土木工程师考试项目管理心得分享试题及答案
- 区块链技术对商业模式的颠覆与创新
- 数据局笔试试题及答案
- 机柜间主体施工方案
- 福格行为模型
- 2021年四川绵竹高发投资有限公司招聘笔试试题及答案解析
- 银级考试题目p43测试题
- 有限空间作业及应急物资清单
- 思想道德与法治教案第一章:领悟人生真谛把握人生方向
- 61850报文解析-深瑞版-131016
- 0-6岁儿童随访表
- 江西新定额2017土建定额说明及解释
- 国家电网有限公司十八项电网重大反事故措施(修订版)-2018版(word文档良心出品)
- 语文四年级下册《失落的一角》绘本阅读 课件(共61张PPT)
评论
0/150
提交评论