- 232.00 KB
- 2022-04-22 11:52:03 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'博学谷——让IT教学更简单,让IT学习更有效《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是______、______、______。2、Java程序的运行环境简称之为______。3、编译Java程序需要使用______命令。4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的______目录下。5、______环境变量用来存储Java的编译和运行工具所在的路径,而______环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。二、选择题1、以下选项中,哪些属于JDK工具?(多选)A、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?A、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?A、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种? A、Java文档制作工具B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?A.d:jdk; B.d :jdkbin; C.d:jrebin; D.d:jre;三、问答题1、简述Java的特点。2、简述JRE与JDK的区别。四、编程题使用记事本编写一个HelloWorld程序,在dos命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。第2章Java编程基础一、填空题1、Java中的程序代码都必须在一个类中定义,类使用______关键字来定义。2、布尔常量即布尔类型的两个值,分别是______和______。3、Java中的注释可分为三种类型,分别是______、______、______。4、Java中的变量可分为两种数据类型,分别是______和______。5、在Java中,byte类型数据占______个字节,short类型数据占______个字节,int类型数据占
博学谷——让IT教学更简单,让IT学习更有效______个字节,long类型数据占______个字节。6、在逻辑运算符中,运算符______和______用于表示逻辑与,______和______表示逻辑或。7、若x=2,则表达式(x++)/3的值是______。8、若inta=2;a+=3;执行后,变量a的值为______。9、若int[]a={12,45,34,46,23};,则a[2]=______。10、若inta[3][2]={{123,345},{34,56},{34,56}},则a[2][1]=______。二、判断题1、Java语言不区分大小写。2、0xC5表示的是一个十六进制整数。3、continue语句只用于循环语句中,它的作用是跳出循环。4、“/*…*/”中可以嵌套“//”注释,但不能嵌套“/*…*/”注释。5、-5%3的运算结果是2。三、选择题1、以下选项中,哪些属于合法的标识符?(多选)A、Hello_WorldB、classC、123usernameD、username1232、关于方法重载的描述,以下选项中哪些是正确的?(多选)A、方法名必须一致B、返回值类型必须不同C、参数个数必须一致D、参数的个数或类型不一致3、以下关于变量的说法错误的是?A、变量名必须是一个有效的标识符B、变量在定义时可以没有初始值C、变量一旦被定义,在程序中的任何位置都可以被访问D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明4、以下选项中,switch语句判断条件可以接收的数据类型有哪些?(多选)A、intB、byteC、charD、short5、假设intx=2,三元表达式x>0?x+1:5的运行结果是以下哪一个? A、0B、2C、3D、56、下面的运算符中,用于执行除法运算是哪个?A、/B、C、%D、*7、下列语句哪些属于循环语句?(多选)A、for语句B、if语句C、while语句D、switch语句8、下面哪种写法可以实现访问数组arr的第1个元素?A、arr[0]B、arr(0)C、arr[1]D、arr(1)9、以下哪个选项可以正确创建一个长度为3的二维数组?A、newint[2][3];B、newint[3][];C、newint[][3];D、以上答案皆不对10、请先阅读下面的代码。intx=1;inty=2;if(x%2==0){y++;}else{y--;}
博学谷——让IT教学更简单,让IT学习更有效System.out.println("y="+y);上面一段程序运行结束时,变量y的值为下列哪一项?A、1B、2C、3D、switch语句四、程序分析题阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:publicclassTest01{publicstaticvoidmain(String[]args){byteb=3;b=b+4;System.out.println("b="+b);}}代码二:publicclassTest02{publicstaticvoidmain(String[]args){intx=12;{inty=96;System.out.println("xis"+x);System.out.println("yis"+y);}y=x;System.out.println("xis"+x);}}代码三:publicclassTest03{publicstaticvoidmain(Stringargs[]){intx=4,j=0;switch(x){case1:j++;case2:j++;case3:j++;case4:j++;case5:j++;default:j++;
博学谷——让IT教学更简单,让IT学习更有效}System.out.println(j);}}代码四:publicclassTest04{publicstaticvoidmain(Stringargs[]){intn=9;while(n>6){System.out.println(n);n--;}}}五、简答题1、请列举Java语言中的八种基本数据类型,并说明每种数据类型所占用的空间大小。2、简述&&与&的区别并举例说明。3、什么是方法重载?六、编程题请按照题目的要求编写程序并给出运行结果。1、请编写程序,实现计算“1+3+5+7+…+99”的值。提示:1)使用循环语句实现自然数1~99的遍历。2)在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加。2、已知函数x+3(x>0)y=0(x=0)x2–1(x<0)请设计一个方法实现上面的函数,根据传入的值x的不同,返回对应的y值。提示:1)定义一个static修饰符修饰的方法,方法接收一个int类型的参数x,返回值为int类型。2)在方法中使用if…elseif..else语句针对x的值进行三种情况的判断。3)根据判断结果分别执行不同的表达式,并将结果赋予变量y。4)在方法的最后返回y的值。5)在main方法中调用设计好的方法,传入一个int型的值,将方法的返回值打印。3、请编写程序,实现对数组{25,24,12,76,101,96,28}的排序。提示:使用冒泡排序算法。
博学谷——让IT教学更简单,让IT学习更有效第1章面向对象(上)一、填空题1、面向对象的三大特征是______、______和______。2、在Java中,可以使用关键字______来创建类的实例对象。3、定义在类中的变量被称为______,定义在方法中的变量被称为______4、面向对象程序设计的重点是______的设计,______是用来创建对象的模板。5、在非静态成员方法中,可以使用关键字______访问类的其它非静态成员。6、当一个对象被当成垃圾从内存中释放时,它的______方法会被自动调用。7、被static关键字修饰的成员变量被称为______,它可以被该类所有的实例对象共享。8、在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为______。9、在Java中,提供了一个______命令,用于将程序中的文档注释提取出来,生成HTML格式的帮助文档。10、所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用______关键字来修饰。二、判断题1、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。2、Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。3、声明构造方法时,不能使用private关键字修饰。4、类中static修饰的变量或方法,可以使用类名或对象的引用变量访问。5、方法内部类中不能访问外部类的成员变量。三、选择题1、类的定义必须包含在以下哪种符号之间?A、方括号[]B、花括号{}C、双引号“”D、圆括号()2、下面哪一个是正确的类的声明? A、publicvoidHH{…}B、publicclassMove(){…} C、publicclassvoidnumber{}D、publicclassCar{…}3、在以下什么情况下,构造方法会被调用?A、类定义时B、创建对象时C、调用对象方法时D、使用对象的变量时4、下面对于构造方法的描述,正确有哪些?(多选)A、方法名必须和类名相同B、方法名的前面没有返回值类型的声明C、在方法中不能使用return语句返回一个值D、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在5、使用this调用类的构造方法,下面的说法正确的是?(多选)A、使用this调用构造方法的格式为this([参数1,参数2…])B、只能在构造方法中使用this调用其它的构造方法C、使用this调用其它构造方法的语句必须放在第一行D、不能在一个类的两个构造方法中使用this互相调用6、下面哪些可以使用static关键字修饰?(多选)A、成员变量B、局部变量C、成员方法D、成员内部类7、关于内部类,下面说法正确的是?(多选)A、成员内部类是外部类的一个成员,可以访问外部类的其它成员
博学谷——让IT教学更简单,让IT学习更有效B、外部类可以访问成员内部类的成员C、方法内部类只能在其定义的当前方法中进行实例化D、静态内部类中可以定义静态成员,也可以定义非静态成员8、下面对于单例设计模式的描述,正确的是?(多选)A、类中定义一个无参的构造方法,并且声明为私有B、在内部创建一个该类的实例对象,使用静态变量引用该实例对象C、使用private修饰静态变量,禁止外界直接访问D、定义静态方法返回该类实例9、请先阅读下面的代码publicclassTest{publicTest(){System.out.println("构造方法一被调用了");}publicTest(intx){this();System.out.println("构造方法二被调用了");}publicTest(booleanb){this(1);System.out.println("构造方法三被调用了");}publicstaticvoidmain(String[]args){Testtest=newTest(true);}}上面程序的运行结果为下列哪一项?A、构造方法一被调用了B、构造方法二被调用了C、构造方法三被调用了D、以上三个选项之和10、Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的?A、Innerin=newInner()B、Innerin=newOuter.Inner();C、Outer.Innerin=newOuter.Inner();D、Outer.Innerin=newOuter().newInner();四、程序分析题阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:classA{privateintsecret=5;}publicclassTest1{publicstaticvoidmain(String[]args){Aa=newA();System.out.println(a.secret++);}
博学谷——让IT教学更简单,让IT学习更有效}代码二:publicclassTest2{intx=50;staticinty=200;publicstaticvoidmethod(){System.out.println(x+y);}publicstaticvoidmain(String[]args){Test2.method();}}代码三:publicclassOuter{publicStringname="Outer";privateclassInner{Stringname="inner";voidshowName(){System.out.println(name);}}publicstaticvoidmain(String[]args){Innerinner=newOuter().newInner();System.out.println(inner.name);}}五、简答题1、构造方法和普通的成员方法有什么区别?2、单例设计模式具备哪些特点?六、编程题1、请按照以下要求设计一个学生类Student,并进行测试。要求如下:1)Student类中包含姓名、成绩两个属性2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值2、定义一个Father和Child类,并进行测试。要求如下:1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather()方法。
博学谷——让IT教学更简单,让IT学习更有效第1章面向对象(下)一、填空题1、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为______。2、一个类如果实现一个接口,那么它就需要实现接口中定义的全部______,否则该类就必须定义成______。3、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用______关键字。4、一个类可以从其它的类派生出来,派生出来的类称为______,用于派生的类称为______或者______。5、JDK中定义了大量的异常类,这些类都是______类的子类或者间接子类。6、定义一个Java类时,如果前面加使用______关键字修饰,那么该类不可以被继承。7、如果子类想使用父类中的成员,可以通过关键字______引用父类的成员。8、在Java语言中,所有的类都直接或间接继承自______类。9、异常的捕获通常由try、catch两部分组成,______代码块用来存放可能发生异常,______代码块用来处理产生的异常。10、在Java语言中,要想是将一个已编译的类打包成jar文件,可以使用的命令是______,要想在命令行窗口运行jar文件,可以使用的命令是______。二、判断题1、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。2、Java中被final关键字修饰的变量,不能被重新赋值。3、不存在继承关系的情况下,也可以实现方法重写。4、package声明语句应当为Java源文件中的第一条语句。5、接口中只能定义常量和抽象方法。三、选择题1、在类的继承关系中,需要遵循以下哪个继承原则?A、多重 B、单一 C、双重 D、不能继承2、在Java语言中,以下哪个关键字用于在方法上声明抛出异常?A.try B.catch C.throws D.throw3、关于super关键字以下说法哪些是正确的?(多选)A、super关键字可以调用父类的构造方法B、super关键字可以调用父类的普通方法C、super与this不能同时存在于同一个构造方法中D、super与this可以同时存在于同一个构造方法中4、以下说法哪些是正确的?(多选)A、Java语言中允许一个类实现多个接口B、Java语言中不允许一个类继承多个类C、Java语言中允许一个类同时继承一个类并实现一个接口D、Java语言中允许一个接口继承一个接口5、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?A、publicB、protectedC、privateD、default6、关于抽象类的说法哪些是正确的?(多选)A、抽象类中可以有非抽象方法。B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。
博学谷——让IT教学更简单,让IT学习更有效C、不能用抽象类去创建对象。D、接口和抽象类是同一个概念。7、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?A、inheritsB、implementsC、extendsD、modifies8、System类位于以下哪个包中?A、java.ioB、java.utilC、java.awtD、java.lang9、已知类的继承关系如下:classEmployee;classManagerextendsEmployeer;classDirectorextendsEmployee;则以下语句能通过编译的有哪些?A、Employeee=newManager();B、Directord=newManager();C、Directord=newEmployee();D、Managerm=newDirector();10、编译运行下面的程序,结果是什么?publicclassA{publicstaticvoidmain(String[]args){Bb=newB();b.test();}voidtest(){System.out.print("A");}}classBextendsA{voidtest(){super.test();System.out.print("B");}}A、产生编译错误B、代码可以编译运行,并输出结果ABC、代码可以编译运行,但没有输出D、编译没有错误,但会产生运行时异常四、分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:publicclassTest01{publicstaticvoidmain(String[]args){try{intx=2/0;System.out.println(x);}catch(Exceptione){System.out.println("进入catch代码块");}finally{System.out.println("进入finally代码块");
博学谷——让IT教学更简单,让IT学习更有效}}}代码二:finalclassAnimal{publicfinalvoidshout(){//程序代码}}classDogextendsAnimal{publicvoidshout(){//程序代码}}classTest02{publicstaticvoidmain(String[]args){Dogdog=newDog();}}代码三:classAnimal{voidshout(){System.out.println("动物叫!");}}classDogextendsAnimal{voidshout(){super.shout();System.out.println("汪汪……");}}publicclassTest03{publicstaticvoidmain(String[]args){Animalanimal=newDog();animal.shout();}}代码四:interfaceAnimal{voidbreathe();voidrun();voideat(){};}
博学谷——让IT教学更简单,让IT学习更有效classDogimplementsAnimal{publicvoidbreathe(){System.out.println("I’mbreathing")}publicvoideat(){System.out.println("I’meathing")}}publicclasstest04{publicstaticvoidmain(String[]args){Dogdog=newDog();dog.breathe();dog.eat();}}五、简答题1、什么是方法重写?2、什么是多态?3、抽象类和接口的区别?六、编程题请按照题目的要求编写程序并给出运行结果。1、设计一个学生类Student和它的一个子类Undergraduate,要求如下:1)Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show()方法打印Student的属性信息2)本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息3)在测试类中分别创建Student对象和Undergraduate对象,调用它们的show()。2、设计一个Shape接口和它的两个实现类Square和Circle,要求如下:1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积3、自定义一个异常类NoThisSoundException和Player类,在Player的play()方法中使用自定义异常,要求入下:1)NoThisSongException继承Exception类,类中有一个无参和一个接收一个String类型参数的构造方法,构造方法中都使用super关键字调用父类的构造方法。2)Player类中定义一个play(intindex)方法,方法接收一个int类型的参数,表示播放歌曲的索引,当index>10时,paly()方法用throw关键字抛出NoThisSongException异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。3)在测试类中创建Player对象,并调用play()方法测试自定义的NoThisSongException异常,使用try…catch语句捕获异常,调用NoThisSongException的getMessage()方法打印出异常信息。
博学谷——让IT教学更简单,让IT学习更有效第1章多线程一、填空题1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个______,它们会交替执行,彼此间可以进行______。2、在实现多线程的程序时有两种方式,一是通过继______承类,二是通过实现______接口。3、yield()方法只能让相同优先级或者更高优先级、处于______状态的线程获得运行的机会。4、在Java语言中,同步方法需要用到关键字______,对于同步方法而言无需指定同步锁,它的同步锁是方法所在的______,也就是______(关键字)。5、在多任务系统中,每个独立执行的程序称之为______,也就是“正在运行的程序”。6、线程的整个生命周期分为五个阶段,分别是______、______、______、______、和_____。7、线程的优先级用1~10之间的整数来表示,其中______代表优先级最高,______代表优先级最低。8、在Thread类中,提供了一个start()方法,该方法用于______,当新线程启动后,系统会自动调用______方法。9、要想解决线程间的通信问题,可以使用______、______、______方法。10、要将某个线程设置为后台线程,需要调用该线程的______方法,该方法必须在______方法之前调用。二、判断题1、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。2、如果前台线程全部死亡,后台线程也会自动死亡。3、同步代码块中的锁对象可以是任意类型的对象。4、静态方法不能使用synchronized关键字来修饰。5、线程结束等待或者阻塞状态后,会进入运行状态。三、选择题1、Thread类位于下列哪个包中?A、java.ioB、java.langC、java.utilD、java.awt2、关于线程的创建过程,下面四种说法正确的有哪些?(多选)A、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的start()方法B、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法C、定义一个实现Runnable接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start()方法D、定义一个实现Runnable接口的类并实现run()方法,创建该类对象,然后调用run()方法3、对于通过实现Runnable接口创建线程,下面说法正确的有哪些?(多选)A、适合多个相同程序代码的线程去处理同一个资源的情况B、把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想C、可以避免由于Java的单继承带来的局限性D、编写简单,可以不通过Thread类直接创建线程4、对于线程的生命周期,下面四种说法正确的有哪些?(多选) A、调用了线程的start()方法,该线程就进入运行状态B、线程的run()方法运行结束或被未catch的InterruptedException等异常终结,那么该线程进入死亡状态
博学谷——让IT教学更简单,让IT学习更有效C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它D、线程进入死亡状态后,调用它的start()方法仍然可以重新启动5、对于死锁的描述,下面四种说法正确有哪些?(多选)A、当两个线程互相等待对方释放同步锁时会发生死锁B、Java虚拟机没有检测和处理死锁的措施C、一旦出现死锁,程序会发生异常D、处于死锁状态的线程处于阻塞状态,无法继续运行6、下面四个选项中,哪些是线程进入阻塞状态的原因?(多选)A、线程试图获取某个对象的同步锁,而该锁被其它线程持有B、线程调用了另一个线程的join()方法C、当线程调用了一个阻塞式的IO方法D、线程调用了setDaemon(booleanb)方法7、线程调用sleep()方法后,该线程将进入以下哪种状态?A、就绪状态B、运行状态C、阻塞状态D、死亡状态8、在以下哪种情况下,线程进入就绪状态?A、线程调用了sleep()方法时B、线程调用了join()方法C、线程调用了yield()方法时D、线程调用了notify()方法9、下面四个选项中,对线程同步的目的描述正确的有哪些?(多选)A、锁定资源,使同一时刻只有一个线程去访问它,防止多个线程操作同一个资源引发错误B、提高线程的执行效率C、让线程独占一个资源D、让多个线程同时使用一个资源10、对于wait()方法,下面说法正确的是?(多选)A、wait()方法的调用者是同步锁对象B、wait()方法使线程进入等待状态C、调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程D、调用wait()方法的线程会释放同步锁对象四、程序分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。1.代码一:classRunHandler{publicvoidrun(){System.out.println("run");}}publicclassTest{publicstaticvoidmain(String[]args){Threadt=newThread(newRunHandler());t.start();}}
博学谷——让IT教学更简单,让IT学习更有效2.代码二:publicclassAextendsThread{protectedvoidrun(){System.out.println("this is run()");}publicstaticvoidmain(String[]args){Aa=newA();a.start();}}3.代码三:publicclassTest{privateObjectobj=newObject();publicsynchronizedvoida(){try{obj.wait();System.out.println("waiting");}catch(InterruptedExceptione){System.out.println("Exception");}}publicstaticvoidmain(String[]args){newTest().a();}}4.为了使下面的程序能够输出“Threadisrunning”,请在在空格处填上相应的代码。publicclassBimplementsRunnable{publicstaticvoidmain(String[]args){Threadt=newThread(newB());_______________________//此处填空}publicvoidrun(){System.out.println("Threadisrunning");}publicvoidgo(){start(1);}publicvoidstart(inti){}}五、简答题1、java中有几种方法可以实现一个线程?请举例说明。2、sleep()和wait()有什么区别?六、编程题
博学谷——让IT教学更简单,让IT学习更有效请按照题目的要求编写程序并给出运行结果。1、通过继承Thread类的方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来。2、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。3、模拟传智播客的三个老师同时分发80份学习笔记,每个老师相当于一个线程。4、编写10个线程,第一个线程从1加到10,第二个线程从11加到20...第十个线程从91加到100,最后再把十个线程结果相加。第1章JavaAPI一、填空题1、在Java中定义了两个类来封装对字符串的操作,它们分别是_____和_____。2、Java中的操作日期的类有____、____、____等。3、在程序中若想取得一个Runtime实例,则可以调用Runtime类的静态方法_____。4、Math类中用于计算所传递参数平方根的方法是_____。5、Java中专门用于将日期格式化为字符串的类是_____。6、Math类中有两个静态常量PI和E,分别代表数学常量____和____。7、Java中的用于产生随机数的类是____,它位于____包中。8、String类中用于返回字符串字符个数的方法是_____。9、System类中所提供的属性和方法都是____的,想要引用这些属性和方法,直接使用System类调用即可。10、已知sb为StringBuffer的一个实例,且sb.toString()的值为"abcde",则执行sb.reverse()后,sb.toString()的值为_____。二、判断题1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。2、用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true。3、System类中的currentTimeMillis()方法返回一个long类型的值。4、Date、Calendar以及DateFormat类都位于java.util包中。5、String类的方法replace(CharSequencesrt1,CharSequencesrt2)返回一个新的字符串,它是通过用srt2替换此字符串中出现的所有srt1得到的。三、选择题。1、先阅读下面的程序片段:Stringstr="abccdefcdh";String[]arr=str.split("c");System.out.println(arr.length);程序执行后,打印的结果是几?A、2个B、3个C、4个D、5个2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?A、ceil()B、floor()C、abs()D、random()3、Random对象能够生成以下哪种类型的随机数?A、intB、stringC、doubleD、A和C4、Strings="abcdedcba";则s.substring(3,4)返回的字符串是以下选项中的哪个?
博学谷——让IT教学更简单,让IT学习更有效 A、cdB、deC、dD、e5、假若indexOf()方法未能找到所指定的子字符串,则返回以下选项中的哪个?A、falseB、0 C、-1 D、以上答案都不对6、要产生[20,999]之间的随机整数可以使用以下哪个表达式?A.(int)(20+Math.random()*97)B.20+(int)(Math.random()*980)C.(int)Math.random()*999D.20+(int)Math.random()*9807、以下Math类的方法中,-4.4通过哪个方法运算后,结果为-5.0?A.round()B.min()C.floor()D.ceil()8、下面的程序段执行后,输出的结果是以下哪个选项?StringBufferbuf=newStringBuffer("Beijing2008");buf.insert(7,"@");System.out.println(buf.toString());A、Beijing@2008B、@Beijing2008C、Beijing2008@D、Beijing#20089、阅读下面的程序:public class test { public static void main(String args[]) { int i; float f = 2.3f; double d = 2.7; i = ((int)Math.ceil(f)) * ((int)Math.round(d)); System.out.println(i); } } 程序执行后,运行结果为以下哪个选项?A、 9 B、 5 C、6 D、 6.1 10、先阅读下面的程序片段:Stringstr1=newString("java");Stringstr2=newString("java");StringBufferstr3=newStringBuffer("java");对于上述定义的变量,以下表达式的值为true的是哪个?A、 str1==str2; B、str1.equals(str2); C、str1==str3; D、以上都不对四、程序分析题。阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:publicclassA{publicstaticvoidmain(String[]args){System.out.println(Math.abs(-5));System.out.println(Math.ceil(6.6));System.out.println(Math.floor(-7.8));System.out.println(Math.round(-4.9));System.out.println(Math.max(8.1,-8.1));
博学谷——让IT教学更简单,让IT学习更有效System.out.println(Math.min(6.1,-6.1));}}代码二:publicclassB{publicstaticvoidmain(String[]args){Strings="dfferghuklmbdfd";System.out.println("str.length():"+s.length());System.out.println("str.charAt(0):"+s.charAt(0));System.out.println("lastIndexOf(m):"+s.lastIndexOf("m"));System.out.println("substring(2,4):"+s.substring(2,4));System.out.println("indexOf(g):"+s.indexOf("g"));}}五、简答题 1、String和StringBuffer有什么区别?2、Date和Calender类有什么区别和联系?六、编程题请按照题目的要求编写程序并给出运行结果1、编写一个程序,实现字符串大小写的转换并倒序输出,要求如下1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。2、计算从今天算起,100天以后是几月几号,并格式化成xxxx年x月x日的形式打印出来。提示:1)调用Calendar类的add()方法计算100天后的日期2)调用Calendar的getTime()方法返回Date类型对象2)使用FULL格式的DateFormat对象,调用format()方法格式化Date对象3、利用Random类来产生5个20~50之间的随机整数。提示:[n-m](n、m均为整数,na){intsum=b/a;System.out.println(sum);}else{System.out.println("输入错误");}}}当输入的数字是8时,打印输出的结果是。2、以下是使用FileInputStream类与FileOutputStream类复制文件。阅读以下代码,并将空处填写完整。importjava.io.*;classTest2{publicstaticvoidmain(String[]args){Stringfile1,file2;intch=0;file1="readme.txt";file2="readme.bak";try{FileInputStreamfis=new;fos=newFileOutputStream(file2);intsize=;System.out.println("字节有效数、"+size);while((ch=fis.read())!=-1){System.out.write(ch);
博学谷——让IT教学更简单,让IT学习更有效fos.write(ch);}fis.close();fos.close();}catch(IOExceptione){System.out.println(e.toString());}}}五、简答题1、简述流的概念。2、Java流被分为字节流、字符流两大流类,两者有什么区别?3、简要说明管道流。六、编程题按照题目需求,编写程序并运行1、编写一个程序,分别使用字节流和字符流拷贝一个文本文件。提示:1)使用FileInputStream、FileOutputStream和FileReader、FileWriter分别进行拷贝2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区,使用字符流拷贝使用使用BufferedReader和BufferedWriter包装流进行包装2、某人在玩游戏的时候输入密码123456后成功进入游戏(输错5次则被强行退出),要求用程序实现密码验证的过程。提示:1)使用Sysytem.in包装为字符流读取键盘输入。2)BufferedReader对字符流进行包装。调用BufferedReader的readLine()方法每次读取一行。3)在for循环判中判断输入的密码是否为“123456”,如果是则打印“恭喜你进入游戏”,并跳出循环,否则继续循环读取键盘输入。4)当循环完毕,密码还不正确,则打印“密码错误,结束游戏”,并调用System.exit(0)方法结束程序。第1章GUI(图形用户界面)一、填空题1、GUI、java.awt、javax.swing2、适配器3、Graphics4、事件监听器5、JComponent6、窗体事件、键盘事件、鼠标事件、动作事件7、WindowListener、windowClosing(WindowEvente)8、模态对话框、非模态对话框9、setLayout(null)10、JMenuBar、JMenu、JMenuItem
博学谷——让IT教学更简单,让IT学习更有效二、判断题1、对2、错3、对4、错5、错三、选择题1、D2、D3、ABD4、A5、D6、ABCD7、ABD8、ABC9、D10、C四、程序分析题1、参考答案extendsStdno=newJTextField();Name=newJTexxtField();2、参考答案card.next(cp);cp.add(jbt);五、简答题1、参考答案l通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的方法进行重写l创建事件源对象和事件监听器对象l调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象2、参考答案AWT是AbstractWindowToolKit(抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用AWT来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT不得不通过牺牲功能来实现其平台无关性,也就是说,AWT所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。Swing是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT所能够提供的所有功能,并且用纯粹的Java代码对AWT的功能进行了大幅度的扩充。由于在Swing中没有使用本地方法来实现图形功能,我们通常把Swing控件称为轻量级控件。AWT和Swing之间的基本区别:AWT是基于本地方法的C/C++程序,其运行速度比较快;Swing是基于AWT的Java程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT当然成了嵌入式Java的第一选择。而在普通的基于PC或者是工作站的标准Java应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java中则提倡使用Swing,也就是通过牺牲速度来实现应用程序的功能。六、编程题1、参考答案importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMyMouseHandlerextendsJFrame{publicMyMouseHandler(){finalJLabellabel=newJLabel("此处显示鼠标右键点击的坐标");label.setOpaque(true);label.setBackground(Color.PINK);
博学谷——让IT教学更简单,让IT学习更有效this.add(label,BorderLayout.NORTH);this.setSize(300,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvente){if(e.getButton()==e.BUTTON1){intx=e.getX();inty=e.getY();Stringbanner="鼠标当前点击位置的坐标是"+x+","+y;label.setText(banner);}}});this.setVisible(true);}publicstaticvoidmain(String[]args){newMyMouseHandler();}}2、参考答案importjava.awt.*;importjava.util.*;importjavax.swing.*;importjava.awt.event.*;publicclassInformationextendsJFrame{//窗口NORTH部的JPanel面板privateJPanelpanel=newJPanel();//爱好标签privateJLabellb1=newJLabel("爱好");//三个表示爱好的JCheckBox复选框privateJCheckBoxcb1=newJCheckBox("羽毛球");privateJCheckBoxcb2=newJCheckBox("乒乓球");privateJCheckBoxcb3=newJCheckBox("唱歌");//性别标签privateJLabellb2=newJLabel("性别");//表示性别的JRadioButton单选框privateJRadioButtonrb1=newJRadioButton("男");privateJRadioButtonrb2=newJRadioButton("女");//ButtonGroup添加JRadioButton,实现单选功能privateButtonGroupbg=newButtonGroup();//文本域组件privateJTextAreaarea=newJTextArea();//窗口CENTER部的JScrollPane面板,其中放置area文本域privateJScrollPanepane=newJScrollPane(area);
博学谷——让IT教学更简单,让IT学习更有效//Set集合存放选中的兴趣privateSethobbies=newHashSet();//gender选中的性别privateStringgender="";//JCheckBox复选框的事件监听器privateActionListenerlistener1=newActionListener(){publicvoidactionPerformed(ActionEvente){JCheckBoxcb=(JCheckBox)e.getSource();//选中的复选框把文本添加到Set集合中if(cb.isSelected()){hobbies.add(cb.getText());//反之从集合中移除}else{hobbies.remove(cb.getText());}print();}};//JRadioButton单选框的事件监听器privateActionListenerlistener2=newActionListener(){publicvoidactionPerformed(ActionEvente){JRadioButtonjb=(JRadioButton)e.getSource();gender=jb.getText();print();}};//打印方法privatevoidprint(){//清空文本域area.setText("");//如果Set集合中有元素,打印兴趣if(hobbies.size()>0)area.append("你的兴趣爱好有:");Iteratorit=hobbies.iterator();while(it.hasNext()){area.append(it.next()+"");}//如果gender不为空字符串,打印性别if(!"".equals(gender))area.append("你的性别为:"+gender);}publicInformation(){//添加标签、单选和复选按钮panel.add(lb1);
博学谷——让IT教学更简单,让IT学习更有效panel.add(cb1);panel.add(cb2);panel.add(cb3);panel.add(lb2);panel.add(rb1);panel.add(rb2);bg.add(rb1);bg.add(rb2);//为单选和复选按钮添加事件监听器cb1.addActionListener(listener1);cb2.addActionListener(listener1);cb3.addActionListener(listener1);rb1.addActionListener(listener2);rb2.addActionListener(listener2);//将JPanel面板和JScrollPane面板添加到JFrame容器中Containercontainer=this.getContentPane();container.add(panel,BorderLayout.NORTH);container.add(pane,BorderLayout.CENTER);this.pack();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}publicstaticvoidmain(String[]args){newInformation();}}3、参考答案importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassMyMenuextendsJFrameimplementsActionListener{JLabellabel=newJLabel("请选择菜单",JLabel.CENTER);JMenuItemaaMenuItem,baMenuItem;MyMenu(){JMenuBarmenuBar=newJMenuBar();JMenuaMenu=newJMenu("菜单A");JMenubMenu=newJMenu("菜单B");JMenuItemaaMenuItem=newJMenuItem("菜单项AA");JMenuItemabMenuItem=newJMenuItem("菜单项AB");JMenuItembaMenuItem=newJMenuItem("菜单项BA");menuBar.add(aMenu);menuBar.add(bMenu);aMenu.add(aaMenuItem);aMenu.addSeparator();
博学谷——让IT教学更简单,让IT学习更有效aMenu.add(abMenuItem);bMenu.add(baMenuItem);aaMenuItem.addActionListener(this);abMenuItem.addActionListener(this);baMenuItem.addActionListener(this);setJMenuBar(menuBar);getContentPane().add(label,BorderLayout.CENTER);}publicvoidactionPerformed(ActionEvente){JMenuItemsource=(JMenuItem)(e.getSource());label.setText("选择了菜单:"+source.getText());label.setHorizontalAlignment(JLabel.CENTER);}publicstaticvoidmain(Stringargs[]){JFrameframe=newMyMenu();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,200);frame.setVisible(true);}一、填空题。1、在Java中,图形用户界面简称______,它的组件包含在______和______这两个包中。2、为了避免实现监听器中定义的所有方法,造成代码的臃肿,在JDK中提供了一些______类,这些类实现了接口所有的方法,但是方法中没有任何代码,属于一种空实现。3、在Java中,______类相当于一个抽象的画笔对象,使用它可以在组件上绘制图形。4、______负责监听事件源上发生的事件,并对各种事件做出响应处理。5、大部分的Swing组件都是______类的直接或者间接子类,其名称都是在原来AWT组件名称前加上字母J。6、AWT事件有多种多样,大致可以分为______、______、______、______等。7、如果点击Frame窗口右上角的关闭按钮能将其关闭,那么这个Frame窗口添加了______监听器,并实现了监听器的实现了______方法。8、对话框可以分为______和______两种。9、每一个容器都有一个默认的布局管理器,如果不希望通过布局管理器对容器进行布局,可以调用容器的______方法将其取消。10、创建下拉式菜单需要使用三个组件,分别是______、______和______。二、判断题。1、容器(Container)是一个可以包含基本组件和其它容器的组件。2、可以通过实现ActionListener接口或者继承ActionAdapter类来实现动作时间监听器。3、CardLayout布局管理器将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的。4、非模态对话框是指用户需要等到处理完对话框后才能继续与其它窗口进行交互。5、JFrame的默认布局管理器是FlowLayout。三、选择题1、下面四个组件中哪一个不是Component的子类?A、ButtonB、DialogC、LabelD、MenuBar
博学谷——让IT教学更简单,让IT学习更有效2、每一个GUI程序中必须包含一个什么组件?A、按钮B、标签C、菜单D、容器3、下面四个选项中,哪些是事件处理机制中的角色?(多选) A、事件B、事件源 C、事件接口D、事件监听器4、当鼠标按键被释放时,会调用以下哪个事件处理器方法?A、mouseReleased()B、mouseUp()C、mouseOff()D、mouseLetGo()5、ActionEvent的对象会被传递给以下哪个事件处理器方法?A、addChangeListener()B、addActionListener()C、stateChanged()D、actionPerformed()6、AWT中,常用的布局管理器包括哪些?(多选)A、FlowLayout布局管理器B、BorderLayout布局管理器C、CardLayout布局管理器D、GridLayout布局管理器7、下面哪些是FlowLayout类中表示对齐方式的常量?(多选)A、FlowLayout.LEFTB、FlowLayout.CENTERC、FlowLayout.VERTICALD、FlowLayout.RIGHT8、下面对与Swing的描述,正确的有哪些?(多选)A、Swing是在AWT基础上构建的一套新的图形界面系统B、Swing提供了AWT所能够提供的所有功能C、Swing组件是用Java代码来实现的D、Swing组件都是重量级组件9、下面四对AWT和Swing对应组件中,错误的是?A、Button和JButtonB、Dialog和JDialogC、MenuBar和JMenuBarD、ComboBox和JComboBox10、使用下面哪个组件可以接收用户的输入信息?A、JButtonB、JLabelC、JTextFieldD、以上都可以四、程序分析题阅读下面的程序以及注释的要求,在空格处填上相应的代码代码一:importjava.awt.*;importjavax.swing.*;publicclassMyLayout_______/*此处填空*/JFrame{JLabellabelNo,labelName,labelGender;JTextFieldstdno,name,gender;intx=0,y=0,w,h;Containercp=getContentPane();publicMyLayout(){setLayout(null);学号=newJLabel("labelNo、",JLabel.CENTER);姓名=newJLabel("labelName、",JLabel.CENTER);
博学谷——让IT教学更简单,让IT学习更有效性别=newJLabel("labelGender、",JLabel.CENTER);_______________________//此处填空_______________________//此处填空gender=newJTextField();x=80;y=30;w=100;h=30;cp.add(labelNo);cp.add(labelName);cp.add(labelGender);cp.add(stdno);cp.add(name);cp.add(gender);labelNo.setBounds(0,y,w,h);stdno.setBounds(x,y,w,h);labelName.setBounds(0,2*y,w,h);name.setBounds(x,2*y,w,h);labelGender.setBounds(0,3*y,w,h);gender.setBounds(x,3*y,w,h);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(280,200);setVisible(true);}publicstaticvoidmain(Stringargs[]){MyLayoutobj=newMyLayout();}}代码二:importjava.awt.CardLayout;importjava.awt.Container;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassMyCardLayout{publicstaticvoidmain(Stringargs[]){finalJFramejframe=newJFrame("一个滚动列表的例子");finalContainerpanelcp=jframe.getContentPane();finalJPanelpanel=newJPanel();finalCardLayoutcard=newCardLayout(20,20);panelcp.setLayout(card);jframe.add(panel);for(inti=0;i<5;i++){JButtonjbt=newJButton("jbt"+i);jbt.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){//点击的时候显示下一个按钮_______________________//此处填空}});_______________________//此处填空
博学谷——让IT教学更简单,让IT学习更有效}jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jframe.setSize(150,200);jframe.setVisible(true);}}五、简答题。1、请简述GUI中实现事件监听的步骤。2、AWT和Swing的区别六、编程题1、编写一个JFrame窗口,要求如下:1)在窗口的最上方放置一个JLabel标签,标签中默认的文本是“此处显示鼠标右键点击的坐标”2)为JFrame窗口添加一个鼠标事件,当鼠标右键点击窗口时,鼠标的坐标在JLabel标签中显示2、编写一个JFrame窗口,要求如下:1)窗口中的NORTH区域中放置一个JPanel面板2)JPanel面板中从左到右依次放置如下组件:JLabel标签,标签的文本为“兴趣”三个JCheckBox多选按钮,文本分别为“羽毛球”、“乒乓球”、“唱歌”JLabel标签,标签的文本为“性别”两个JRadioButton按钮,文本分别为“男”、“女”3)窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域4)当点击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea文本域中。3、编写一个JFrame窗口,要求如下:1)窗口包含一个菜单栏和一个JLabel标签。2)菜单栏中有两个菜单,第一个菜单有两个菜单项,它们之间用分隔符分开,第二个菜单有一个菜单项。3)JLabel标签放置在窗口的中间(即BorderLayout.CENTER),当点击菜单项的时候,菜单项中的文本显示的JLabel标签中。第1章网络编程一、填空题1、TCP协议的特点是,即在传输数据前先在和建立逻辑连接。2、在计算机中,端口号是用字节,也就是16位的二进制数表示,它的取值范围是。3、TCP/IP协议被分为四个层,分别是、、、。4、在JDK中,IP地址用类来表示的,该类提供了许多和IP地址相关的操作。。5、使用UDP协议开发网络程序时,需要使用两个类,分别是和。二、判断题1、由于UDP是面向无连接的协议,可以保证数据的完整性,因此在传输重要数据时建议使用UDP协议。2、在网络通信中,对数据传输格式、传输速率、传输步骤等作了统一规定,只有通信双方共同遵守这个规定才能完成数据的交互,这种规定称为网络传输协议。3、在创建发送端的DatagramPacket对象时,需要指定发送端的目标IP地址和端口号。
博学谷——让IT教学更简单,让IT学习更有效4、IPv4版本的IP地址使用4个字节来表示,IPv6版本的IP地址使用8个字节来表示。5、使用TCP协议通信时,通信的两端以IO的方式进行数据的交互。三、选择题1、使用UDP协议通信时,需要使用哪个类把要发送的数据打包?A、SocketB、DatagramSocketC、DatagramPacketD、ServerSocket2、以下哪个是serverSocket类用于接收来自客户端请求的方法?A、accept()B、getOutputStream()C、receive()D、get()3、以下说法哪些是正确的?(多选)A、TCP连接中必须要明确客户端与服务器端。B、TCP协议是面向连接的通信协议,它提供了两台计算机之间可靠无差错的数据传输。C、UDP协议是面向无连接的协议,可以保证数据的完整性。D、UDP协议消耗资源小,通信效率高,通常被用于音频、视频和普通数据的传输。4、以下哪个类用于实现TCP通信的客户端程序?A、ServerSocketB、SocketC、ClientD、Server5、进行UDP通信时,在接收端若要获得发送端的IP地址,可以使用DatagramPacket的哪个方法?A、getAddress()B、getPort()C、getName()D、getData()6、以下哪个方法是DatagramSocket类用于发送数据的方法?A、receive()B、accept()C、set()D、send()7、在程序运行时,DatagramSocket的哪个方法会发生阻塞?A、send()B、receive()C、close()D、connect()8、TCP协议的“三次握手”中,第一次握手指的是什么?A、客户端再次向服务器端发送确认信息,确认连接。B、服务器端向客户端回送一个响应,通知客户端收到了连接请求。C、客户端向服务器端发出连接请求,等待服务器确认。D、以上答案全部错误四、简答题1、网络通信协议是什么?2、TCP协议和UDP协议有什么区别?3、Socket类和ServerSocket类各有什么作用?五、编程题请按照题目的要求编写程序并给出运行结果。1、使用InetAddress类获取本地计算机的IP地址和主机名,甲骨文公司(www.oracle.com)主机的IP地址。提示:1)通过InetAddress.getLocalHost();获取本地计算机的InetAddress对象2)通过InetAddress.getByName("www.oracle.com");获取Oracle公司的InetAddress对象2、使用UDP协议编写一个网络程序,设置接收端程序监听端口为8001,发送端发送的数据是“helloworld”。提示:1)使用newDatagramSocket(8001)构造方法创建接收端的DatagramSocket对象,调用receive()方法接收数据。2)发送端和接收端使用DatagramPacket封装数据,在创建发送端的DatagramPacket对象时需要指定目标IP地址和端口号,端口号要和接收端监听的端口号一致。3)发送端使用send()方法发送数据。
博学谷——让IT教学更简单,让IT学习更有效4)使用close()方法释放Socket资源。1、使用TCP协议编写一个网络程序,设置服务器程序监听端口为8002,当与客户端建立连接后,向客户端发送“helloworld”,客户端接负责将信息输出。提示:1)使用ServerSocket创建服务器端对象,监听8002端口,调用accept()方法等待客户端连接,当与客户端连接后,调用Socket的getOutputStream()方法获得输出流对象,输出“helloworld。2)使用Socket创建客户端对象,指定服务器的IP地址和监听端口号,与服务器端建立连接后,调用Socket的getInputStream()方法获得输入流对象,读取数据,并打印出来3)在服务器端和客户端都调用close()方法释放socket资源。'
您可能关注的文档
- 《EDA技术实用教程(第五版)》习题答案(第1~10章)--潘.pdf
- 《EDA技术实用教程(第四版)》习题答案.pdf
- 《HSK标准教程练习册4上》听力文本及参考答案.doc
- 《HSK标准教程练习册4下》听力文本及参考答案.doc
- 《IBM-PC汇编语言程序设计》答案(第二版).pdf
- 《IBM—PC汇编语言程序设计》习题参考答案.doc
- 《Java Web应用开发实用教程》练习答案.doc
- 《Java2实用教程》课后习题参考答案(第三版).doc
- 《Java2实用教程》课后习题参考答案.docx
- 《JAVA程序设计》期末考试试题汇总及答案.doc
- 《Java编程基础知识点汇总及习题集》--答案.docx
- 《JAVA语言程序设计》期末考试试题及答案.doc
- 《JAVA语言程序设计》期末考试试题及答案1-7.doc
- 《Java面向对象程序设计》思考题及答案.pdf
- 《Linux系统应用与开发教程》所有课后习题和答案.doc
- 《MATLAB+7.X程序设计》习题答案汇总.doc
- 《Python程序设计》习题与答案.doc
- 《PYTHON程序设计》习题与答案.pdf
相关文档
- 施工规范CECS140-2002给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程
- 施工规范CECS141-2002给水排水工程埋地钢管管道结构设计规程
- 施工规范CECS142-2002给水排水工程埋地铸铁管管道结构设计规程
- 施工规范CECS143-2002给水排水工程埋地预制混凝土圆形管管道结构设计规程
- 施工规范CECS145-2002给水排水工程埋地矩形管管道结构设计规程
- 施工规范CECS190-2005给水排水工程埋地玻璃纤维增强塑料夹砂管管道结构设计规程
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程(含条文说明)
- cecs 141:2002 给水排水工程埋地钢管管道结构设计规程 条文说明
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程 条文说明
- cecs 142:2002 给水排水工程埋地铸铁管管道结构设计规程 条文说明