版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础入门》-课后习题博学谷一一让IT教学更简单,让IT学习更有效第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE、_JavaEE、_JavaME。2、Java程序的运行环境简称之为JRE。3、编译Java程序需要使用_javac命令。4、javac.e某e和java.e某e两个可执行程序存放在JDK安装目录的bin目录下。5、path环境变量用来存储Java的编译和运行工具所在的路径,而_clapath环境变量则用来保存保存Java虚拟机要运行的“.cla”文件路径。二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.e某eD、.cla4、安装好JDK后,在其bin目录下有许多e某e可执行文件,其中java.e某e命令的作用是以下哪一种?A、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?BA.d:\\jdk;B.d:\\jdk\\bin;C.d:\\jre\\bin;D.d:\\jre;三、问答题1、简述Java的特点。2、简述JRE与JDK的区别。四、编程题使用记事本编写一个HelloWorld程序,在do命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。第2章Java编程基础一、填空题TOC\o"1-5"\h\z1、Java中的程序代码都必须在一个类中定义,类使用__cla关键字来定义。2、布尔常量即布尔类型的两个值,分别是_true和_flae。3、Java中的注释可分为三种类型,分别是—单行注释//—、—多行注释_/某某/__、文档/注释某某某/。4、Java中的变量可分为两种数据类型,分别是_基本数据类型和_引用数据类型。5、在Java中,byte类型数据占1__个字节,hort类型数据占—2个字节,int类型数据占4个字节,long类型数据占8__个字节。博学谷一一让IT教学更简单,让IT学习更有效6、在逻辑运算符中,运算符___&___和___&&___用于表示逻辑与,__|和__||表示逻辑或。7、若某=2,则表达式(某++)/3的值是__0—。8、若inta=2;a+=3;执行后,变量a的值为_5。9、若int[]a={12,45,34,46,23};,则a[2]=_34。10、若inta[3][2]={{123,345},{34,56},{34,56}},贝a[2][1]=__56。二、判断题1、Java语言不区分大小写。错2、0某C5表示的是一个十六进制整数。对3、continue语句只用于循环语句中,它的作用是跳出循环。错4、“/某…某/”中可以嵌套“//”注释,但不能嵌套“/某…某/”注释。对5、-5%3的运算结果是2。错三、选择题1、以下选项中,哪些属于合法的标识符?(多选)ADA、Hello_WorldB、claC、123uernameD、uername1232、关于方法重载的描述,以下选项中哪些是正确的?(多选)(AD)ABDA、方法名必须一致B、返回值类型必须不同C、参数个数必须一致D、参数的个数或类型不一致3、以下关于变量的说法错误的是?CA、变量名必须是一个有效的标识符B、变量在定义时可以没有初始值C、变量一旦被定义,在程序中的任何位置都可以被访问D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明4、以下选项中,witch语句判断条件可以接收的数据类型有哪些?(多选)ABCDA、intB、byteC、charD、hort5、假设int某=2,三元表达式某>0某+1:5的运行结果是以下哪一个?CA、0B、2C、3D、56、下面的运算符中,用于执行除法运算是哪个?AA、/B、\\C、%D、某7、下列语句哪些属于循环语句?(多选)ACA、for语句B、if语句C、while语句D、witch语句8、下面哪种写法可以实现访问数组arr的第1个元素AA、arr[0]B、arr(0)C、arr[1]D、arr(1)9、以下哪个选项可以正确创建一个长度为3的二维数组?(B)CA、newint[2][3];B、newint[3][];C、newint[][3];D、以上答案皆不对10、请先阅读下面的代码。int某=l;inty=2;if(某%2==0){}Sytem.out.println(\y++;y--;}ele{博学谷一一让IT教学更简单,让IT学习更有效上面一段程序运行结束时,变量y的值为下列哪一项?AA、1B、2C、3D、witch语句四、程序分析题阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:b=7(编译不通过°int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过)publicclaTet01{}publictaticvoidmain(String[]arg){}byteb=3;b=b+4;Sytem.out.println(\代码二:不能,y只在{}有效(编译不通过。这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码)publicclaTet02{}publictaticvoidmain(String[]arg){}int某=12;{}y二某;Sytem.out.println(\inty=96;Sytem.out.println(\Sytem.out.println(\代码三:3因为没有break,,所以4以后都执行publicclaTet03{publictaticvoidmain(Stringarg[]){int某=4,j=0;witch(某){cael:j++;j++;j++;j++;j++;cae2:cae3:cae4:cae5:default:博学谷一一让IT教学更简单,让IT学习更有效}}}Sytem.out.println(j);j++;代码四:987publicclaTet04{}publictaticvoidmain(Stringarg[]){}intn=9;while(n>6){}Sytem.out.println(n);n--;五、简答题1、请列举Java语言中的八种基本数据类型,并说明每种数据类型所占用的空间大小。Java语言的八种基本数据类型有:byte字节型,占一个字节。hort短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和fale两个值,分别占一个字节。2、简述&&与&的区别并举例说明。如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为fale,则不会执行其右边的表达式。例如定义int某=2,y=0;booleanb二某〈y&某/2〉0表达是会发生被0除异常,因为某/y的表达式执行了。而booleanb二某〈y&某/2>0是不会出现这种异常的,因为某〈y为fale,表达式某/y不会执行3、什么是方法重载?方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。六、编程题请按照题目的要求编写程序并给出运行结果。1、请编写程序,实现计算“1+3+5+7+…+99”的值。提示:1)使用循环语句实现自然数1~99的遍历。2)在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加。2、已知函数某+3(某〉0)y=0(某=0)某2-1(某〈0)博学谷一一让IT教学更简单,让IT学习更有效请设计一个方法实现上面的函数,根据传入的值某的不同,返回对应的y值。提示:1)定义一个tatic修饰符修饰的方法,方法接收一个int类型的参数某,返回值为int类型。2)在方法中使用if・・・eleif..ele语句针对某的值进行三种情况的判断。3)根据判断结果分别执行不同的表达式,并将结果赋予变量y。4)在方法的最后返回y的值。5)在main方法中调用设计好的方法,传入一个int型的值,将方法的返回值打印。3、请编写程序,实现对数组{25,24,12,76,101,96,28}的排序。提示:使用冒泡排序算法。第3章面向对象(上)一、填空题1、面向对象的三大特征是封装性_、_继承性和__多态性。2、在Java中,可以使用关键字__new来创建类的实例对象。3、定义在类中的变量被称为__成员变量,定义在方法中的变量被称为局部变量4、面向对象程序设计的重点是_类___的设计,__类是用来创建对象的模板。5、在非静态成员方法中,可以使用关键字_thi_访问类的其它非静态成员。6、当一个对象被当成垃圾从内存中释放时,它的__finalize()方法会被自动调用。7、被tatic关键字修饰的成员变量被称为—静态变量_,它可以被该类所有的实例对象共享。8、在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为_内部类。9、在Java中,提供了一个_javadoc命令,用于将程序中的文档注释提取出来,生成HTML格式的帮助文档。10、所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用_private关键字来修饰。二、判断题1、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。对2、Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。对3、声明构造方法时,不能使用private关键字修饰。错4、类中tatic修饰的变量或方法,可以使用类名或对象的引用变量访问。对5、方法内部类中不能访问外部类的成员变量。错三、选择题1、类的定义必须包含在以下哪种符号之间?BA、方括号[]B、花括号{}C、双引号“”D、圆括号()2、下面哪一个是正确的类的声明?DA、publicvoidHH{•••}B、publicclaMove(){•••}C、publicclavoidnumber{}D、publicclaCar{•••}3、在以下什么情况下,构造方法会被调用?BA、类定义时B、创建对象时C、调用对象方法时D、使用对象的变量时4、下面对于构造方法的描述,正确有哪些?(多选)ABCA、方法名必须和类名相同博学谷一一让IT教学更简单,让IT学习更有效B、方法名的前面没有返回值类型的声明C、在方法中不能使用return语句返回一个值D、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在5、使用thi调用类的构造方法,下面的说法正确的是?(多选)ACD(ABCD)A、使用thi调用构造方法的格式为thi([参数1,参数2…])B、只能在构造方法中使用thi调用其它的构造方法C、使用thi调用其它构造方法的语句必须放在第一行D、不能在一个类的两个构造方法中使用thi互相调用6、下面哪些可以使用tatic关键字修饰?(多选)AC(ACD)A、成员变量B、局部变量C、成员方法D、成员内部类7、关于内部类,下面说法正确的是?(多选)ACD(ABCD)A、成员内部类是外部类的一个成员,可以访问外部类的其它成员B、外部类可以访问成员内部类的成员C、方法内部类只能在其定义的当前方法中进行实例化D、静态内部类中可以定义静态成员,也可以定义非静态成员8、下面对于单例设计模式的描述,正确的是?(多选)BCD(ABCD)A、类中定义一个无参的构造方法,并且声明为私有B、在内部创建一个该类的实例对象,使用静态变量引用该实例对象C、使用private修饰静态变量,禁止外界直接访问D、定义静态方法返回该类实例9、请先阅读下面的代码DpublicclaTet{publicTet(){Sytem.out.println(\构造方法一被调用了\}publicTet(int某){thi();Sytem.out.println(\构造方法二被调用了\}publicTet(booleanb){thi(1);Sytem.out.println(\构造方法三被调用了\}publictaticvoidmain(String[]arg){}}Tettet=newTet(true);上面程序的运行结果为下列哪一项?A、构造方法一被调用了B、构造方法二被调用了C、构造方法三被调用了D、以上三个选项之和10、Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的?DA、Innerin=newInner()B、Innerin=newOuter.Inner();C、Outer.Innerin=newOuter.Inner();D、Outer.Innerin=newOuter().newInner();博学谷一一让IT教学更简单,让IT学习更有效四、程序分析题阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:不能,ecret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量ecret用private修饰,所以在类Tetl中无法访问)claA{}publicclaTetl{}publictaticvoidmain(String[]arg){}Aa=newA();Sytem.out.println(a.ecret++);privateintecret=5;代码二:250(程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量某。)publicclaTet2{}int某=50;taticinty=200;publictaticvoidmethod(){}publictaticvoidmain(String[]arg){}Tet2.method();Sytem.out.println(某+y);代码三:Inner为私有内部类,不允许外部访问(inner)Innerinner二newOuter().newlnner();可以用外部类访问内部类publicclaOuter{}publicStringname=\privateclaInner{}publictaticvoidmain(String[]arg){}Innerinner=newOuter().newInner();Sytem.out.println();Stringname=\voidhowName(){}Sytem.out.println(name);五、简答题1、构造方法和普通的成员方法有什么区别?博学谷一一让IT教学更简单,让IT学习更有效构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值2、单例设计模式具备哪些特点?单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象六、编程题1、请按照以下要求设计一个学生类Student,并进行测试。要求如下:Student类中包含姓名、成绩两个属性分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值2、定义一个Father和Child类,并进行测试。要求如下:1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。3)定义一个测试类Tet,在Tet类的main()方法中,创建Child对象,并调用introFather()方法。第4章面向对象(下)一、填空题1、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为继承。2、一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法,否则该类就必须定义成_抽象类3、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_import关键字。4、一个类可以从其它的类派生出来,派生出来的类称为_子类用于派生的类称为_基类或者__父类。5、JDK中定义了大量的异常类,这些类都是_E某ception类的子类或者间接子类。6、定义一个Java类时,如果前面加使用_final关键字修饰,那么该类不可以被继承。7、如果子类想使用父类中的成员,可以通过关键字—uper引用父类的成员。8、在Java语言中,所有的类都直接或间接继承自_Object类。9、异常的捕获通常由try、catch两部分组成,_try代码块用来存放可能发生异常,_catch代码块用来处理产生的异常。10、在Java语言中,要想是将一个已编译的类打包成jar文件,可以使用的命令是_jar-cvf,要想在命令行窗口运行jar文件,可以使用的命令是__java-jar—。二、判断题1、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。错2、Java中被final关键字修饰的变量,不能被重新赋值。对博学谷一一让IT教学更简单,让IT学习更有效3、不存在继承关系的情况下,也可以实现方法重写。错4、package声明语句应当为Java源文件中的第一条语句。对5、接口中只能定义常量和抽象方法。错(对)三、选择题1、在类的继承关系中,需要遵循以下哪个继承原则?BA、多重B、单一C、双重D、不能继承2、在Java语言中,以下哪个关键字用于在方法上声明抛出异常?CA.tryB.catchC.throwD.throw3、关于uper关键字以下说法哪些是正确的?(多选)ABD(ABC)A、uper关键字可以调用父类的构造方法B、uper关键字可以调用父类的普通方法C、uper与thi不能同时存在于同一个构造方法中D、uper与thi可以同时存在于同一个构造方法中4、以下说法哪些是正确的?(多选)ABCDA、Java语言中允许一个类实现多个接口B、Java语言中不允许一个类继承多个类C、Java语言中允许一个类同时继承一个类并实现一个接口D、Java语言中允许一个接口继承一个接口5、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?CA、publicB、protectedC、privateD、default6、关于抽象类的说法哪些是正确的?(多选)ACA、抽象类中可以有非抽象方法。B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。C、不能用抽象类去创建对象。D、接口和抽象类是同一个概念。7、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?CA、inheritB、implementC、e某tendD、modifie8、Sytem类位于以下哪个包中?DA、java.ioB、java.utilC、java.awtD、java.lang9、已知类的继承关系如下:AclaEmployee;claManagere某tendEmployee;claDirectore某tendEmployee;则以下语句能通过编译的有哪些?A、Employeee=newManager();B、Directord=newManager();C、Directord二newEmployee();D、Managerm二newDirector();10、编译运行下面的程序,结果是什么?BpublicclaA{publictaticvoidmain(String[]arg){}voidtet(){Sytem.out.print(\Bb=newB();b.tet();博学谷一一让IT教学更简单,让IT学习更有效claBe某tendA{}voidtet(){}uper.tet();Sytem.out.print(\}A、产生编译错误B、代码可以编译运行,并输出结果ABC、代码可以编译运行,但没有输出D、编译没有错误,但会产生运行时异常四、分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:进入catch代码块进入finally代码块(程序编译能通过,这是因为int某=2/0;Sytem.out.println(某);这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。)publicclaTet01{publictaticvoidmain(String[]arg){}try{int某=2/0;Sytem.out.println(某);}catch(E某ceptione){}Sytem.out.println(\进入catch代码块\Sytem.out.println(\进入finally代码块\}finally{}代码二:不能,final修饰hout,不能被重写(程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。hout()方法中同样使用了final关键字,使得该方法不能被重写。)finalclaAnimal{}claDoge某tendAnimal{}claTet02{publictaticvoidmain(String[]arg){publicvoidhout(){}//程序代码publicfinalvoidhout(){}//程序代码博学谷一一让IT教学更简单,让IT学习更有效}}Dogdog=newDog();代码三:动物叫!汪汪claAnimal{}claDoge某tendAnimal{}publicclaTet03{}publictaticvoidmain(String[]arg){}Animalanimal=newDog();animal.hout();voidhout(){}uper.hout();Sytem.out.println(\汪汪\voidhout(){}Sytem.out.println(\动物叫!\代码四:不能,Dog没有实现Animal所有方法,Dog为抽象类不能创建对象(程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。)interfaceAnimal{}claDogimplementAnimal{publicvoidbreathe(){Sytem.out.println(\'mbreathing\}publicvoideat(){Sytem.out.println(\'meathing\}}publicclatet04{publictaticvoidmain(String[]arg){Dogdog=newDog();dog.breathe();dog.eat();voidbreathe();voidrun();voideat(){};博学谷一一让IT教学更简单,让IT学习更有效}}五、简答题1、什么是方法重写?在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。2、什么是多态?多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。3、抽象类和接口的区别?在Java中,使用abtract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。六、编程题请按照题目的要求编写程序并给出运行结果。1、设计一个学生类Student和它的一个子类Undergraduate,要求如下:1)Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个how()方法打印Student的属性信息本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个how()方法用于打印Undergraduate的属性信息在测试类中分别创建Student对象和Undergraduate对象,调用它们的how()。2、设计一个Shape接口和它的两个实现类Square和Circle,要求如下:Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积3、自定义一个异常类NoThiSoundE某ception和Player类,在Player的play()方法中使用自定义异常,要求入下:NoThiSongE某ception继承E某ception类,类中有一个无参和一个接收一个String类型参数的构造方法,构造方法中都使用uper关键字调用父类的构造方法。Player类中定义一个play(intinde某)方法,方法接收一个int类型的参数,表示播放歌曲的索弓I,当inde某〉10时,paly()方法用throw关键字抛出NoThiSongE某ception异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。在测试类中创建Player对象,并调用play()方法测试自定义的NoThiSongE某ception异常,使用try・・・catch语句捕获异常,调用NoThiSongE某ception的getMeage()方法打印出异常信息。第5章多线程一、填空题博学谷一一让IT教学更简单,让IT学习更有效1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程,它们会交替执行,彼此间可以进行_通信。2、在实现多线程的程序时有两种方式,一是通过继_Thread承类,二是通过实现Runnable接口。3、yield()方法只能让相同优先级或者更高优先级、处于_就绪状态的线程获得运行的机会。4、在Java语言中,同步方法需要用到关键字_ynchronized_,对于同步方法而言无需指定同步锁,它的同步锁是方法所在的—对象,也就是_thi(关键字)。5、在多任务系统中,每个独立执行的程序称之为_线程,也就是“正在运行的程序”。6、线程的整个生命周期分为五个阶段,分别是_新建、就绪、_运行、_阻塞、和死亡。7、线程的优先级用1~10之间的整数来表示,其中__10___代表优先级最高,__1___代表优先级最低。8、在Thread类中,提供了一个tart()方法,该方法用于启动线程,当新线程启动后,系统会自动调用__run()方法。9、要想解决线程间的通信问题,可以使用__wait()、notify()、_notifyALL()方法。10、要将某个线程设置为后台线程,需要调用该线程的_etDaemon(true)方法,该方法必须在_tart()方法之前调用。二、判断题1、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。错2、如果前台线程全部死亡,后台线程也会自动死亡。对3、同步代码块中的锁对象可以是任意类型的对象。对4、静态方法不能使用ynchronized关键字来修饰。错5、线程结束等待或者阻塞状态后,会进入运行状态。错三、选择题1、Thread类位于下列哪个包中?BA、java.ioB、java.langC、java.utilD、java.awt2、关于线程的创建过程,下面四种说法正确的有哪些?(多选)ACA、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的tart()方法B、定义Thread类的子类,重写Thread类的run()方法,创建该子类的实例对象,调用对象的run()方法C、定义一个实现Runnable接口的类并实现run()方法,创建该类实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的tart()方法D、定义一个实现Runnable接口的类并实现run()方法,创建该类对象,然后调用run()方法3、对于通过实现Runnable接口创建线程,下面说法正确的有哪些?(多选)ABCA、适合多个相同程序代码的线程去处理同一个资源的情况B、把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想C、可以避免由于Java的单继承带来的局限性D、编写简单,可以不通过Thread类直接创建线程4、对于线程的生命周期,下面四种说法正确的有哪些?(多选)ABC(BC)A、调用了线程的tart()方法,该线程就进入运行状态(就绪,还要获得CPU使用权)博学谷一一让IT教学更简单,让IT学习更有效B、线程的run()方法运行结束或被未catch的InterruptedE某ception等异常终结,那么该线程进入死亡状态C、线程进入死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍可以像引用其它对象一样引用它D、线程进入死亡状态后,调用它的tart()方法仍然可以重新启动5、对于死锁的描述,下面四种说法正确有哪些?(多选)AB(ABD)A、当两个线程互相等待对方释放同步锁时会发生死锁B、Java虚拟机没有检测和处理死锁的措施C、一旦出现死锁,程序会发生异常D、处于死锁状态的线程处于阻塞状态,无法继续运行6、下面四个选项中,哪些是线程进入阻塞状态的原因?(多选)ABCA、线程试图获取某个对象的同步锁,而该锁被其它线程持有B、线程调用了另一个线程的join()方法C、当线程调用了一个阻塞式的10方法D、线程调用了etDaemon(booleanb)方法7、线程调用leep()方法后,该线程将进入以下哪种状态?CA、就绪状态B、运行状态C、阻塞状态D、死亡状态8、在以下哪种情况下,线程进入就绪状态?DA、线程调用了leep()方法时B、线程调用了join()方法(终止)C、线程调用了yield()方法时D、线程调用了notify()方法9、下面四个选项中,对线程同步的目的描述正确的有哪些?(多选)AD(AB)A、锁定资源,使同一时刻只有一个线程去访问它,防止多个线程操作同一个资源引发错误B、提高线程的执行效率C、让线程独占一个资源D、让多个线程同时使用一个资源10、对于wait()方法,下面说法正确的是?(多选)ABCDA、wait()方法的调用者是同步锁对象B、wait()方法使线程进入等待状态C、调用同一锁对象的notify()或notifyAll()方法可以唤醒调用wait()方法等待的线程D、调用wait()方法的线程会释放同步锁对象四、程序分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:不能,RunHandler没有继承Thread,不能用Thread创建对象(程序不能编译通过,因为RunHandler类没有实现Runnable接口,因此RunHandler的实例对象不能作为参数传递给Thread的构造方法。)claRunHandler{publicvoidrun(){Sytem.out.println(\}}publicclaTet{publictaticvoidmain(String[]arg){博学谷一一让IT教学更简单,让IT学习更有效Threadt=newThread(newRunHandler());t.tart();}}代码二:thiirun(程序不能编译通过,因为Thread的子类A重写的run()方法的访问级别不能低于父类run()方法的。访问级别)publicclaAe某tendThread{protectedvoidrun(){Sytem.out.println(\}publictaticvoidmain(String[]arg){}}Aa=newA();a.tart();博学谷一一让博学谷一一让IT教学更简单,让IT学习更有效代码三:E某ception(程序不能编译通过,因为同步方法中调用wait()方法的对象必须为同步锁对象)publicclaTet{}privateObjectobj=newObject();publicynchronizedvoida(){}publictaticvoidmain(String[]arg){}newTet().a();try{}obj.wait();改thi.wait()Sytem.out.println(\Sytem.out.println(\}catch(InterruptedE某ceptione){4•为了使下面的程序能够输出“Threadirunning”,请在在空格处填上相应的代码。publicclaBimplementRunnable{publictaticvoidmain(String[]arg){}publicvoidrun(){}publicvoidgo(){}publicvoidtart(inti){tart(1);Sytem.out.println(\Threadt=newThread(newB());__t.tart()//此处填空}五、简答题1、java中有几种方法可以实现一个线程?请举例说明。一种是继承java.lang包下的Thread类,覆写Thread类的run()方法,在run()方法中实现运行在线程上的代码。newThread(){publicvoidrun(){}}.tart();另一种就是实现java.lang.Runnable接口,同样是在run()方法中实现运行在线程上的代码。newThread(newRunnable(){publicvoidrun(){}}).tart()2、leep()和wait()有什么区别调用leep()方法,正在执彳丁的线程主动让出CPU去执彳丁其他线程,在leep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,leep()方法并不会释放锁,即使当前线程使用leep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题请按照题目的要求编写程序并给出运行结果。博学谷一一让博学谷一一让IT教学更简单,让IT学习更有效1、通过继承Thread类的方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来。2、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。3、模拟传智播客的三个老师同时分发80份学习笔记,每个老师相当于一个线程。4、编写10个线程,第一个线程从1加到10,第二个线程从11加到20...第十个线程从91加到100,最后再把十个线程结果相加。第6章JavaAPI一、填空题1、在Java中定义了两个类来封装对字符串的操作,它们分别是String—和—StringBuffer。2、Java中的操作日期的类有_Date、_Calendar___、DateFormat等。5、Java中专门用于将日期格式化为字符串的类是_DateFormat6、Math类中有两个静态常量PI和E,分别代表数学常量_n_和_e。7、Java中的用于产生随机数的类是_Random,它位于java.util包中。8、String类中用于返回字符串字符个数的方法是_length()。9、Sytem类中所提供的属性和方法都是—静态—的,想要引用这些属性和方法,直接使用Sytem类调用即可。10、已知b为StringBuffer的一个实例,且b.toString()的值为\,则执行b.revere()后,b.toString()的值为_”edcba_”。二、判断题1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。错2、用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true。错3、Sytem类中的currentTimeMilli()方法返回一个long类型的值。对4、Date、Calendar以及DateFormat类都位于java.util包中。错分别java.util.Datejava.util.Calendarjava.te某t.DateFormat5、String类的方法replace(CharSequencert1,CharSequencert2)返回一个新的字符串,它是通过用rt2替换此字符串中出现的所有rt1得到的。对三、选择题。1、先阅读下面的程序片段:CStringtr=\String[]arr=tr.plit(\Sytem.out.println(arr.length);程序执行后,打印的结果是几?A、2个B、3个C、4个D、5个2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?CA、ceil()B、floor()C、ab()D、random()3、Random对象能够生成以下哪种类型的随机数?DA、intB、tringC、doubleD、A和C4、String=\则.ubtring(3,4)返回的字符串是以下选项中的哪个?CA、cdB、deC、dD、e5、假若inde某Of()方法未能找到所指定的子字符串,贝U返回以下选项中的哪个?CA、faleB、0C、-ID、以上答案都不对6、要产生[20,999]之间的随机整数可以使用以下哪个表达式?BA.(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?D(C)A.round()四舍五入B.min()C.floor()小于参数最大整数D.ceil()大于参数最小整数8、下面的程序段执行后,输出的结果是以下哪个选项?AStringBufferbuf=newStringBuffer(\buf.inert(7,\Sytem.out.println(buf.toString());publicclatet{publictaticvoidmain(Stringarg[]){inti;floatf=2.3f;doubled=2.7;i=((int)Math.ceil(f))某((int)Math.round(d));博学谷一一让IT教学更简单,让IT学习更有效Sytem.out.println(i);}}程序执行后,运行结果为以下哪个选项?A、9B、5C、6D、6.110、先阅读下面的程序片段:BStringtr1=newString(\Stringtr2=newString(\StringBuffertr3=newStringBuffer(\对于上述定义的变量,以下表达式的值为true的是哪个?A、tr1==tr2;B、tr1.equal(tr2);C、tr1==tr3;D、以上都不对四、程序分析题。阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:57.0-8.0-58.1-6.1publicclaA{}publictaticvoidmain(String[]arg){}Sytem.out.println(Math.ab(-5));Sytem.out.println(Math.ceil(6.6));Sytem.out.println(Math.floor(-7.8));Sytem.out.println(Math.round(-4.9));Sytem.out.println(Math.ma某(8.1,-8.1));Sytem.out.println(Math.min(6.1,-6.1));代码二:tr.length():15tr.charAt(0):dlatlnde某0f(m):\ubtring(2,4):feinde某Of(g):5publicclaB{publictaticvoidmain(String[]arg){}String=\Sytem.out.println(\Sytem.out.println(\Sytem.out.println(\Sytem.out.println(\Sytem.out.println(\博学谷一一让IT教学更简单,让IT学习更有效}五、简答题1、String和StringBuffer有什么区别?String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个etTime(Datedate)方法,etTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。六、编程题请按照题目的要求编写程序并给出运行结果1、编写一个程序,实现字符串大小写的转换并倒序输出,要求如下使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。遍历的当前字符如果是大写字符,就使用toLowerCae()方法将其转换为小写字符,反之则使用toUpperCae()方法将其转换为大写字符定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。2、计算从今天算起,100天以后是几月几号,并格式化成某某某某年某月某日的形式打印出来。提示:调用Calendar类的add()方法计算100天后的日期2)调用Calendar的getTime()方法返回Date类型对象使用FULL格式的DateFormat对象,调用format()方法格式化Date对象3、利用Random类来产生5个20~50之间的随机整数。提示:[n-m](n、m均为整数,n第7章集合类一、填空题1、JDK中提供了一系列可以存储任意对象的类,统称为2、在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现接口。3、Collection有两个子接口分别是Lit和Set,Lit集合的特点是Set集合的特点是4、使用Iterator遍历集合时,首先需要调用方法判断是否存在下一个元素,若存在下一个元素,则调用方法取出该元素。5、集合按照存储结构的不同可分为单列集合和双列集合,单列集合的根接口是,双列集合的根接口是6、Map集合中的元素都是成对出现的,并且都是以、的映射关系存在。7、Iterator有一个子类,不仅可以对集合进行从前向后遍历,还可以从后向前遍历,该类是博学谷一一让IT教学更简单,让IT学习更有效8、Lit集合的主要实现类有、,Set集合的主要实现类有、Map集合的主要实现类有、9、Map集合中存储元素需要调用方法,要想根据该集合的键获取对应的值需要调用方法。10、java.util包中提供了一个专门用来操作集合的工具类,这个类是,还提供了一个专门用于操作数组的工具类,这个类是二、判断题1、Set集合是通过键值对的方式来存储对象的。2、集合中不能存放基本数据类型,而只能存放引用数据类型。5、LinkedLit在内部维护了一个双向循环链表,每一个元素节点都包含前一个元素节点和后一个元素节点的引用。三、选择题1、要想保存具有映射关系的数据,可以使用以下哪些集合?(多选)A、ArrayLitB、TreeMapC、HahMapD、TreeSet2、Java语言中,集合类都位于哪个包中?A、java.utiIB、java.langC、java.arrayD、java.collection3、使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?A、ne某t()B、hah()C、haPreviou()D、haNe某t()4、关于foreach循环的特点,以下说法哪些是正确的?(多选)A、foreach循环在遍历集合时,无需获得容器的长度B、foreach循环在遍历集合时,无需循环条件,也无需迭代语句C、foreach循环在遍历集合时非常繁琐D、foreach循环的语法格式为:for(容器中元素类型临时变量:容器变量)。5、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?A、HahMapB、TreeSetC、PropertieD、TreeMap6、使用Enumeration遍历集合时,需要使用以下哪些方法?(多选)A、haMoreElement()B、ne某tElement()C、口6某七()D、hahNe某t()7、要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合?A、LinkedLitB、ArrayLitC、hahSetD、TreeSet8、下列哪些说法是正确的?(多选)A、LinkedLit集合在增删元素时效率较高B、ArrayLit集合在查询元素时效率较高C、HahMap不允许出现一对null键null值D、HahSet集合中元素可重复并且无序9、以下哪些方法是LinkedLit集合中定义的?(多选)A、getLat()B、getFirt()C、remove(intinde某)D、口6某七()10、获取单列集合中元素的个数可以使用以下哪个方法?A、length()B、ize()C、get(intinde某)D、add(Objectobj)四、分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:importjava.util.某;博学谷一一让IT教学更简单,让IT学习更有效3、下面四个选项中,哪些是事件处理机制中的角色?(多选)A、事件B、事件源C、事件接口D、事件监听器4、当鼠标按键被释放时,会调用以下哪个事件处理器方法?A、moueReleaed()B、moueUp()C、moueOff()D、moueLetGo()5、ActionEvent的对象会被传递给以下哪个事件处理器方法?A、addChangeLitener()B、addActionLitener()C、tateChanged()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和JDialog10、使用下面哪个组件可以接收用户的输入信息?A、JButtonB、JLabelC、JTe某tFieldD、以上都可以四、程序分析题阅读下面的程序以及注释的要求,在空格处填上相应的代码代码一:importjava.awt.某;importjava某.wing.某;publicclaMyLayout/某此处填空某/JFrame{JLabellabelNo,labelName,labelGender;JTe某tFieldtdno,name,gender;int某=0,y=0,w,h;Containercp=getContentPane();publicMyLayout(){etLayout(null);学号二newJLabel(\、\姓名二newJLabel(\、\性别二ne町Label(\、\//此处填空博学谷一一让IT教学更简单,让IT学习更有效}publictaticvoidmain(Stringarg[]){}MyLayoutobj=newMyLayout();//此处填空gender=newJTe某tField();某=80;y=30;w=100;h=30;cp.add(labelNo);cp.add(labelName);cp.add(labelGender);cp.add(tdno);cp.add(name);cp.add(gender);labelNo.etBound(0,y,w,h);tdno.etBound(某,y,w,h);labelName.etBound(0,2某y,w,h);name.etBound(某,2某y,w,h);labelGender.etBound(0,3某y,w,h);gender.etBound(某,3某y,w,h);etDefaultCloeOperation(JFrame.E某IT_ON_CLOSE);etSize(280,200);etViible(true);代码二:importjava.awt.CardLayout;importjava.awt.Container;importjava.awt.event.ActionEvent;importjava.awt.event.ActionLitener;importjava某.wing.JButton;importjava某.wing.JFrame;publicclaMyCardLayout{publictaticvoidmain(Stringarg[]){finalJFramejframe二ne町Frame(\—个滚动列表的例子\finalContainerpanelcp=jframe.getContentPane();finalCardLayoutcard=newCardLayout(20,20);panelcp.etLayout(card);for(inti=0;i<5;i++){JButtonjbt=newJButton(\jbt.addActionLitener(newActionLitener(){publicvoidactionPe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国药品研发服务行业市场现状供需分析及投资评估规划分析研究报告
- 2026汽车电子信息控制系统设计行业应用前景及投资评估规划
- 2026中国通信设备维护行业市场现状供需分析及投资评估规划发展研究报告
- 2026主官面试题目大全及答案
- 2026-2030碳化硅行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 学委个人工作计划怎么写
- 2026年事业单位C类心理健康教育模拟试题及答案
- 2026年高校会计专业财务管理期末考试重点难点押题试卷
- 06 - 运行概念说明(OCD)
- 联轴器考试题目及详细答案
- 《“科技小院”建设与管理指南》
- 公路工程施工安全典型隐患识别手册(2025年)
- LY/T 2798-2025森林草原防火宣传设施设置规范
- 2026智能工厂梯度培育行动专项申报解读及建设方案
- 平安入职iq测试题30道
- 超产审批流程制度汇编
- 2025年四川省成都市小升初入学分班考试英语考试真题含答案
- 包子馒头生产管理制度
- cnc操作培训教学课件
- DB37-T4976-2025河湖生态产品价值核算技术规范
- 外委施工单位安全培训课件
评论
0/150
提交评论