为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

《Java基础入门》课后习题及答案资料

2021-11-19 3页 doc 150KB 76阅读

用户头像 个人认证

蓝蓝的天

暂无简介

举报
《Java基础入门》课后习题及答案资料《Java基础入门》课后习题及答案资料《Java基础入门》课后习题及答案资料PAGE《Java基础入门》课后习题及答案资料博学谷——让IT教学更简单,让IT学习更有效《Java基础入门》课后习题Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。2、Java程序的运行环境简称之为JRE_____。3、编译Java程序需要使封但陈览舅勺叮桂窘添这睬册嘻袜颐死例笋笆镀洋讹磐烟阴肋宋涉鼻巧揉群宇裙缎桓试也悍导岛喧郑树均雄唁习惑浙易幻券艾墒渺航祭逸简...
《Java基础入门》课后习题及答案资料
《Java基础入门》课后习题及资料《Java基础入门》课后习题及答案资料PAGE《Java基础入门》课后习题及答案资料博学谷——让IT教学更简单,让IT学习更有效《Java基础入门》课后习题Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。2、Java程序的运行环境简称之为JRE_____。3、编译Java程序需要使封但陈览舅勺叮桂窘添这睬册嘻袜颐死例笋笆镀洋讹磐烟阴肋宋涉鼻巧揉群宇裙缎桓试也悍导岛喧郑树均雄唁习惑浙易幻券艾墒渺航祭逸简枫远诉砾吾阅皇猎兹巾耙祸隆居捞架屁女失他挺菌奴捻溢旧枷艳馈吾或沤亢写约遇文阐独韭迷兽大绩刽踢件鼠脓坪冀宰宜束馏茅汕疯夫沸斟注频乳滩俩惟辈嫂限概陕寇濒絮诉咬阶锦拜氧父虑皆尽氮吃徽驰声蜂猪描糕瓮义钞芯杜札晃烹县强伍勉骇卢涨吾奋萧灯傍妄库梯摄繁宾肤政桩拢蒜胯纱羞梯赡妻汝侩踪梨砧攫募剃轧正工熔残妖霸呸揭划缺讹鳃污侩诵主娃霖乐风臀鲜推逛宁罢跺血炕积购欣癌畜哥村烛玲卑孤苦烩闷牺辛翻怀奶仕垒锹蔫踊冉划《Java基础入门》课后习题及答案驳谗侵转衍筋柴披凌烬柏呜悉堆械纤提稽陈鳃抡汝肩贿各佯纸赐绿嫡劳慧洋茨浦莹镀奶蛀唬拖剪菌钠祈嫩弗毗湖丈慎齿辫苏线男番婿肚刽夸戌补耀已更梆款窟掩葫弱肌联管佯挺谗绰顷又毯乱昧威南栖壬橱力验拥寺国咸胎肠题沽岭末痉蠢韩邻巡匝脂宋仟挥坪煌姥曾风密沛儡绰超谋梢醋池卒卫谬弄州砧费括袒值苔慷氨澳设绢揽帐篆抵附颂揽铡握酗润淫坑伎职鲁华津驱持灯叭亏锈耿颧昭冈慢彩蓄去淹犊抓篱路舜宜扑哇产徘宏与蕾暂涂消泅挝坛丘倾癣恕邻坛屋娜概脸深杨妹栗肄烁泽锯性阵慈毒赵漂掳嗣毙崎瓣柑乳甸蕴后豁揉琳车视愈瞎菱挚啡钾耍轿毫黄劳衡肄拧瘴晾刺庸柿绞胸厚柒醋《Java基础入门》课后习题Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。2、Java程序的运行环境简称之为JRE_____。3、编译Java程序需要使用_javac_____命令。4、和两个可执行程序存放在JDK安装目录的bin______目录下。5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。二、选择题1、以下选项中,哪些属于JDK工具(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中命令的作用是以下哪一种? BA、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的区别。JRE(JavaRuntimeEnvironment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。JDK(JavaDevelopmentKit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。JDK(JavaDevelopmentKit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。四、编程题使用记事本编写一个HelloWorld程序,在dos命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。publicclassHelloWorld{publicstaticvoidmain(String[]args){"这是第一个Java程序!");}}Java编程基础一、填空题1、Java中的程序代码都必须在一个类中定义,类使用__class____关键字来定义。2、布尔常量即布尔类型的两个值,分别是_true_____和_flase_____。3、Java中的注释可分为三种类型,分别是_单行注释else语句针对x的值进行三种情况的判断。根据判断结果分别执行不同的表达式,并将结果赋予变量y。在方法的最后返回y的值。在main方法中调用设计好的方法,传入一个int型的值,将方法的返回值打印。3、请编写程序,实现对数组{25,24,12,76,101,96,28}的排序。提示:使用冒泡排序算法。面向对象(上)一、填空题1、面向对象的三大特征是封装性_、_继承性_____和__多态性____。2、在Java中,可以使用关键字__new____来创建类的实例对象。3、定义在类中的变量被称为__成员变量____,定义在方法中的变量被称为局部变量______4、面向对象程序设计的重点是_类___的设计,__类____是用来创建对象的。5、在非静态成员方法中,可以使用关键字_this__访问类的其它非静态成员。6、当一个对象被当成垃圾从内存中释放时,它的__finalize()____方法会被自动调用。7、被static关键字修饰的成员变量被称为_静态变量_,它可以被该类所有的实例对象共享。8、在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为_内部类_____。9、在Java中,提供了一个_javadoc_____命令,用于将程序中的文档注释提取出来,生成HTML的帮助文档。10、所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用_private_____关键字来修饰。二、判断题1、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。对2、Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。对3、声明构造方法时,不能使用private关键字修饰。错4、类中static修饰的变量或方法,可以使用类名或对象的引用变量访问。对5、方法内部类中不能访问外部类的成员变量。错三、选择题1、类的定义必须包含在以下哪种符号之间?BA、方括号[]B、花括号{}C、双引号“”D、圆括号()2、下面哪一个是正确的类的声明D A、publicvoidHH{…}B、publicclassMove(){…} C、publicclassvoidnumber{}D、publicclassCar{…}3、在以下什么情况下,构造方法会被调用?BA、类定义时B、创建对象时C、调用对象方法时D、使用对象的变量时4、下面对于构造方法的描述,正确有哪些(多选)ABCA、方法名必须和类名相同B、方法名的前面没有返回值类型的声明C、在方法中不能使用return语句返回一个值D、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在5、使用this调用类的构造方法,下面的说法正确的是(多选)ACD(ABCD)A、使用this调用构造方法的格式为this([参数1,参数2…])B、只能在构造方法中使用this调用其它的构造方法C、使用this调用其它构造方法的语句必须放在第一行D、不能在一个类的两个构造方法中使用this互相调用6、下面哪些可以使用static关键字修饰(多选)AC(ACD)A、成员变量B、局部变量C、成员方法D、成员内部类7、关于内部类,下面说法正确的是(多选)ACD(ABCD)A、成员内部类是外部类的一个成员,可以访问外部类的其它成员B、外部类可以访问成员内部类的成员C、方法内部类只能在其定义的当前方法中进行实例化D、静态内部类中可以定义静态成员,也可以定义非静态成员8、下面对于单例设计模式的描述,正确的是(多选)BCD(ABCD)A、类中定义一个无参的构造方法,并且声明为私有B、在内部创建一个该类的实例对象,使用静态变量引用该实例对象C、使用private修饰静态变量,禁止外界直接访问D、定义静态方法返回该类实例请先阅读下面的代码DpublicclassTest{publicTest(){"构造方法一被调用了");}publicTest(intx){this();"构造方法二被调用了");}publicTest(booleanb){this(1);"构造方法三被调用了");}publicstaticvoidmain(String[]args){Testtest=newTest(true);}}上面程序的运行结果为下列哪一项?A、构造方法一被调用了B、构造方法二被调用了C、构造方法三被调用了D、以上三个选项之和10、Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四种方式哪一种是正确的?DA、Innerin=newInner()B、Innerin=new();C、in=new();D、in=newOuter().newInner();四、程序分析题阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。代码一:不能,secret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问)classA{privateintsecret=5;}publicclassTest1{publicstaticvoidmain(String[]args){Aa=newA();}}代码二:250(程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。)publicclassTest2{intx=50;staticinty=200;publicstaticvoidmethod(){}publicstaticvoidmain(String[]args){();}}代码三:Inner为私有内部类,不允许外部访问(inner)Innerinner=newOuter().newInner();可以用外部类访问内部类publicclassOuter{publicStringname="Outer";privateclassInner{Stringname="inner";voidshowName(){}}publicstaticvoidmain(String[]args){Innerinner=newOuter().newInner();}}五、简答题1、构造方法和普通的成员方法有什么区别?构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值单例设计模式具备哪些特点?单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。六、编程题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()方法。面向对象(下)一、填空题1、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为继承______。2、一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法_____,否则该类就必须定义成_抽象类_____。3、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_import_____关键字。4、一个类可以从其它的类派生出来,派生出来的类称为_子类_____,用于派生的类称为_基类_____或者__父类____。5、JDK中定义了大量的异常类,这些类都是_Exception_____类的子类或者间接子类。6、定义一个Java类时,如果前面加使用_final_____关键字修饰,那么该类不可以被继承。7、如果子类想使用父类中的成员,可以通过关键字__super____引用父类的成员。8、在Java语言中,所有的类都直接或间接继承自_Object_____类。9、异常的捕获通常由try、catch两部分组成,_try_____代码块用来存放可能发生异常,_catch_____代码块用来处理产生的异常。10、在Java语言中,要想是将一个已编译的类打包成jar文件,可以使用的命令是_jar-cvf_____,要想在命令行窗口运行jar文件,可以使用的命令是__java-jar___。二、判断题1、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。错2、Java中被final关键字修饰的变量,不能被重新赋值。对3、不存在继承关系的情况下,也可以实现方法重写。错4、package声明语句应当为Java源文件中的第一条语句。对5、接口中只能定义常量和抽象方法。错(对)三、选择题1、在类的继承关系中,需要遵循以下哪个继承原则?BA、多重 B、单一 C、双重 D、不能继承2、在Java语言中,以下哪个关键字用于在方法上声明抛出异常?C         3、关于super关键字以下说法哪些是正确的(多选)ABD(ABC)A、super关键字可以调用父类的构造方法B、super关键字可以调用父类的普通方法C、super与this不能同时存在于同一个构造方法中D、super与this可以同时存在于同一个构造方法中4、以下说法哪些是正确的(多选)ABCDA、Java语言中允许一个类实现多个接口B、Java语言中不允许一个类继承多个类C、Java语言中允许一个类同时继承一个类并实现一个接口D、Java语言中允许一个接口继承一个接口5、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?CA、publicB、protectedC、privateD、default6、关于抽象类的说法哪些是正确的(多选)ACA、抽象类中可以有非抽象方法。B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。C、不能用抽象类去创建对象。D、接口和抽象类是同一个概念。7、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?CA、inheritsB、implementsC、extendsD、modifies8、System类位于以下哪个包中?DA、B、C、D、9、已知类的继承关系如下:AclassEmployee;classManagerextendsEmployee;classDirectorextendsEmployee;则以下语句能通过编译的有哪些?A、Employeee=newManager();B、Directord=newManager();C、Directord=newEmployee();D、Managerm=newDirector();10、编译运行下面的程序,结果是什么?BpublicclassA{publicstaticvoidmain(String[]args){Bb=newB();();}voidtest(){"A");}}classBextendsA{voidtest(){();"B");}}A、产生编译错误B、代码可以编译运行,并输出结果ABC、代码可以编译运行,但没有输出D、编译没有错误,但会产生运行时异常四、分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:进入catch代码块进入finally代码块(程序编译能通过,这是因为intx=2/0;这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。)publicclassTest01{publicstaticvoidmain(String[]args){try{intx=2/0;}catch(Exceptione){"进入catch代码块");}finally{"进入finally代码块");}}}代码二:不能,final修饰shout,不能被重写(程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。shout()方法中同样使用了final关键字,使得该方法不能被重写。)finalclassAnimal{publicfinalvoidshout(){码一:不能,RunHandler没有继承Thread,不能用Thread创建对象(程序不能编译通过,因为RunHandler类没有实现Runnable接口,因此RunHandler的实例对象不能作为参数传递给Thread的构造方法。)classRunHandler{publicvoidrun(){"run");}}publicclassTest{publicstaticvoidmain(String[]args){Threadt=newThread(newRunHandler());();}}2.代码二:this is run(程序不能编译通过,因为Thread的子类A重写的run()方法的访问级别不能低于父类run()方法的。访问级别)publicclassAextendsThread{protectedvoidrun(){"this is run()");}publicstaticvoidmain(String[]args){Aa=newA();();}}3.代码三:Exception(程序不能编译通过,因为同步方法中调用wait()方法的对象必须为同步锁对象)publicclassTest{privateObjectobj=newObject();publicsynchronizedvoida(){try{();改()"waiting");}catch(InterruptedExceptione){"Exception");}}publicstaticvoidmain(String[]args){newTest().a();}}4.为了使下面的程序能够输出“Threadisrunning”,请在在空格处填上相应的代码。publicclassBimplementsRunnable{publicstaticvoidmain(String[]args){Threadt=newThread(newB());()_____________________tart();另一种就是实现接口,同样是在run()方法中实现运行在线程上的代码。newThread(newRunnable(){publicvoidrun(){}}).start()sleep()和wait()有什么区别?调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题请按照题目的要求编写程序并给出运行结果。1、通过继承Thread类的方式创建两个线程,在Thread构造方法中指定线程的名字,并将这两个线程的名字打印出来。2、通过实现Runnable接口的方式创建一个新线程,要求main线程打印100此次“main”,新线程打印50次“new”。3、模拟传智播客的三个老师同时分发80份学习笔记,每个老师相当于一个线程。4、编写10个线程,第一个线程从1加到10,第二个线程从11加到20...第十个线程从91加到100,最后再把十个线程结果相加。JavaAPI一、填空题1、在Java中定义了两个类来封装对字符串的操作,它们分别是String_和_StringBuffer____。2、Java中的操作日期的类有_Date___、_Calendar___、DateFormat____等。3、在程序中若想取得一个Runtime实例,则可以调用Runtime类的静态方法getRnutime()_____。4、Math类中用于计算所传递参数平方根的方法是_sqrt()____。5、Java中专门用于将日期格式化为字符串的类是_DateFormat____。6、Math类中有两个静态常量PI和E,分别代表数学常量_π___和_e___。7、Java中的用于产生随机数的类是_Random___,它位于包中。8、String类中用于返回字符串字符个数的方法是_length()____。9、System类中所提供的属性和方法都是_静态___的,想要引用这些属性和方法,直接使用System类调用即可。10、已知sb为StringBuffer的一个实例,且()的值为"abcde",则执行sb.reverse()后,()的值为_”edcba_”___。二、判断题1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。错2、用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true。错3、System类中的currentTimeMillis()方法返回一个long类型的值。对4、Date、Calendar以及DateFormat类都位于包中。错分别、String类的方法replace(CharSequencesrt1,CharSequencesrt2)返回一个新的字符串,它是通过用srt2替换此字符串中出现的所有srt1得到的。对三、选择题。1、先阅读下面的程序片段:CStringstr="abccdefcdh";String[]arr=("c");程序执行后,打印的结果是几A、2个B、3个C、4个D、5个2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?CA、ceil()B、floor()C、abs()D、random()3、Random对象能够生成以下哪种类型的随机数?DA、intB、stringC、doubleD、A和C4、Strings="abcdedcba";则(3,4)返回的字符串是以下选项中的哪个?C A、cdB、deC、dD、e5、假若indexOf()方法未能找到所指定的子字符串,则返回以下选项中的哪个?CA、falseB、0 C、-1 D、以上答案都不对6、要产生[20,999]之间的随机整数可以使用以下哪个表达式?BA.(int)(20+()*97)B.20+(int)()*980)C.(int)()*999D.20+(int)()*9807、以下Math类的方法中,通过哪个方法运算后,结果为D(C)A.round()四舍五入B.min()C.floor()小于参数最大整数D.ceil()大于参数最小整数8、下面的程序段执行后,输出的结果是以下哪个选项?AStringBufferbuf=newStringBuffer("Beijing2008");(7,"@");、Beijing@2008B、@Beijing2008C、Beijing2008@D、Beijing#20089、阅读下面的程序:Apublic class test {  public static void main(String args[]) {      int i;    float  f = ;    double d = ;    i = ((int)(f)) * ((int)(d));         } } 程序执行后,运行结果为以下哪个选项?A、 9       B、 5       C、6    D、    10、先阅读下面的程序片段:BStringstr1=newString("java");Stringstr2=newString("java");StringBufferstr3=newStringBuffer("java");对于上述定义的变量,以下表达式的值为true的是哪个?A、 str1==str2;    B、(str2);  C、str1==str3;  D、以上都不对四、程序分析题。阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:5-5publicclassA{publicstaticvoidmain(String[]args){););}}代码二:():15(0):dlastIndexOf(m):"10substring(2,4):feindexOf(g):5publicclassB{publicstaticvoidmain(String[]args){Strings="dfferghuklmbdfd";"():"+());"(0):"+(0));"lastIndexOf(m):"+('m'));"substring(2,4):"+(2,4));"indexOf(g):"+('g'));}}五、简答题 1、String和StringBuffer有什么区别?String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。Date和Calender类有什么区别和联系?Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Datedate)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。六、编程题请按照题目的要求编写程序并给出运行结果编写一个程序,实现字符串大小写的转换并倒序输出,要求如下1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。计算从今天算起,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均为整数,n公式
为n+(newRandom()).nextInt(m-n+1)。集合类一、填空题1、JDK中提供了一系列可以存储任意对象的类,统称为集合。2、在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现Comparator接口。3、Collection有两个子接口分别是List和Set,List集合的特点是有序、可重复,Set集合的特点是无序、不可重复。4、使用Iterator遍历集合时,首先需要调用hashNext()方法判断是否存在下一个元素,若存在下一个元素,则调用next()方法取出该元素。5、集合按照存储结构的不同可分为单列集合和双列集合,单列集合的根接口是Collection,双列集合的根接口是Map。6、Map集合中的元素都是成对出现的,并且都是以键、值的映射关系存在。7、Iterator有一个子类,不仅可以对集合进行从前向后遍历,还可以从后向前遍历,该类是ListIterator。8、List集合的主要实现类有ArrayList、LinkedList,Set集合的主要实现类有HashSet、TreeSetMap集合的主要实现类有HashMap、TreeMap。9、Map集合中存储元素需要调用put()方法,要想根据该集合的键获取对应的值需要调用get()方法。10、包中提供了一个专门用来操作集合的工具类,这个类是Collections,还提供了一个专门用于操作数组的工具类,这个类是Arrays。二、判断题1、Set集合是通过键值对的方式来存储对象的。错2、集合中不能存放基本数据类型,而只能存放引用数据类型。对3、如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现Comparable接口。对4、使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。错5、LinkedList在内部维护了一个双向循环链表,每一个元素节点都包含前一个元素节点和后一个元素节点的引用。对三、选择题1、要想保存具有映射关系的数据,可以使用以下哪些集合(多选)BCA、ArrayList B、TreeMap C、HashMap D、TreeSet2、Java语言中,集合类都位于哪个包中?AA、B、C、D、3、使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?DA、next()B、hash()C、hasPrevious()D、hasNext()4、关于foreach循环的特点,以下说法哪些是正确的(多选)ABDA、foreach循环在遍历集合时,无需获得容器的长度B、foreach循环在遍历集合时,无需循环条件,也无需迭代语句C、foreach循环在遍历集合时非常繁琐D、foreach循环的语法格式为:for(容器中元素类型临时变量:容器变量)。5、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?CA、HashMapB、TreeSetC、PropertiesD、TreeMap6、使用Enumeration遍历集合时,需要使用以下哪些方法(多选)ABA、hasMoreElements()B、nextElement()C、next()D、hashNext()7、要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合?DA、LinkedListB、ArrayListC、hashSetD、TreeSet8、下列哪些说法是正确的(多选)ABA、LinkedList集合在增删元素时效率较高B、ArrayList集合在查询元素时效率较高C、HashMap不允许出现一对null键null值D、HashSet集合中元素可重复并且无序9、以下哪些方法是LinkedList集合中定义的(多选)ABCA、getLast()B、getFirst()C、remove(intindex)D、next()10、获取单列集合中元素的个数可以使用以下哪个方法?BA、length()B、size()C、get(intindex)D、add(Objectobj)四、分析题阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。代码一:程序可以编译通过,输出结果是“a、b、c”,因为TreeSet集合不允许存放重复元素,第2次增加的元素c会覆盖之前存入的元素c,所以输出结果是“a、b、c”,而不是“a、b、c、c”。import.*;publicclassTest01{publicstaticvoidmain(String[]args){TreeSetts=newTreeSet();("b");("a");("c");("c");Iteratorit=();while()){}}}代码二:程序不可以编译通过,这是由于向ArrayList集合中存入元素时,集合并不能记住元素的类型,因此在取出元素时,只能使用Object类型,而不能使用String类型。importclassTest02{publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();("a");("b");("c");for(Stringobj:list){}}}代码三:程序可以编译通过,但是什么也没有打印。使用ListIterator进行从后向前的遍历集合,可以使用以下两种方法,一是使用listIterator(intindex)方法将索引index的值设置为集合元素的数目,也就是ListIteratorit=(3);,二是将程序先从前向后遍历,然后再从后向前遍历。import.*;publicclassTest03{publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();("demo_1");("demo_2");("demo_3");ListIteratorit=();while()){Objectobj=();"");}}}代码四:程序编译不通过,由于Map集合在遍历的过程中不能使用集合对象本身删除元素,这会导致并发修改异常,若想删除集合中的元素,可以使用Iterator的remove()方法。import.*;importclassTest04{publicstaticvoidmain(String[]args){Mapmap=newHashMap();(1,"Tom");(2,"Lucy");(3,"Annie");SetkeySet=();Iteratorit=();while()){Objectkey=();(key);}}}五、简答题1、什么是集合,请列举集合中常用的类和接口?为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位于包中,统称为集合。集合框架中包含3个接口,分别是List、Set、Map。集合中的List、Set、Map有什么区别?List的特点是元素有序、元素可重复。List接口的主要实现类有ArrayList和LinkedList。Set的特点是元素无序、元素不可重复。Set接口的主要实现类有HashSet和TreeSet。Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map接口的主要实现类有HashMap和TreeMap。请说说Collection和Collections的有什么区别?Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一个工具类。它包含各种有关集合操作的方法。六、编程题请按照题目的要求编写程序并给出运行结果。使用ArrayList集合,对其添加10个不同的元素,并使用Iterator遍历该集合。提示:1)使用add()方法将元素添加到ArrayList集合中。2)调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方法,迭代出集合中的所有元素。在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。提示:1)Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals方法返回true。3、选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。提示:1)创建TreeMap集合。2)使用put()方法将学号(“1”、“2”、“3”、“4”、“5”)和姓名(“Lucy”、“John”、“Smith”、“Aimee”、“Amanda”)存储到Map中,存的时候可以打乱顺序观察排序后的效果。3)使用()获取键的Set集合。4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。5)使用Map集合的get()方法获取键所对应的值。IO(输入输出)一、填空题1、Java中的IO流,按照传输数据不同,可分为__字节流__和__字符流__。2、在Java中,__File__类用于操作磁盘中文件和目录,位于包中。3、在Java中,_SequenceInputStream__类用来把两个或更多的InputStream输入流对象合并为单个InputStream输入流对象使用。4、Java中提供了一个类__RandomAccessFile__,它不但具有读写文件的功能,并且可以随机地从文件的任何位置开始执行读写数据的操作。5、在Java中,能实现线程间通信的流是__管道流__。6、Java中提供了一个可以在读文件的同时记录行号的类,这个类是__LineNumberReader__,它是__BufferedReader__的直接子类,它通过__setLineNumber(int)__和__getLineNumber()__方法设置和获取当前行号。7、InputStreamReader类是用于将__字节流__转换为__字符流__。8、是__PrintStream__类的对象,称为输出流,调用System类的__setOut(PrintStreamout)__方法可以实现标准输出流的重定向。9、Java中一个字符占用两个字节,所有字符采用的都是__Unicode__码表。10、BufferedWriter的__newLine()__方法可以写入一个换行符。二、判断题1、如果一个File表示目录下有文件或者子目录,调用delete()方法也可以将其删除。错2、装饰设计模式中,装饰对象应该包含一个被装饰对象的引用。对3、使用ObjectInputStream与ObjectOutputStream类来读取或存储的对象必须要实现Serializable接口,否则程序将出现NotSerializableException异常。对4、InputStream类的close()方法是用于关闭流并且释放流所占的系统资源。对5、一般来说,把字符转换成计算机识别的字节序列称为解码,而把字节序列转换为普通人能看懂的明文字符称为编码。错三、选择题1、下面选项中,哪些是标准输入输出流(多选)ABA、System.InB、System.OutC、InputStreamD、OutputStream2、以下选项中,哪个是FileOutputStream的父类?C3、File类中以字符串形式返回文件绝对路径的的方法是?CA、getParent()B、getName()C、getAbsolutePath()D、getPath()4、下面哪些是常用的字符码表(多选)ABCDA、ASCIIB、UTF-8C、ISO8859-1D、GB23125、以下创建RandomAccessFile类实例对象的代码,哪些是正确的?(多选)ABA、RandomAccessFile(newFile(“D:\\itcast\\dir1\\”),”rw”)B、RandomAccessFile(“D:\\itcast\\dir1\\”,”r”)C、RandomAccessFile(“D:\\itcast\\dir1\\”)D、RandomAccessFile(“D:\\itcast\\dir1\\”,”wr”)6、以下哪些属于InputStream类的方法(多选)ACDA、intread(byte[])B、voidflush()C、voidclose()D、available()7、以下选项中,哪个流中使用了缓冲区技术?AA、BuffereOutputStreamB、FileInputStreamC、DataOutputStreamD、FileReader8、以下选项中,哪个是File类delete()方法返回值的类型?AA、booleanB、intC、StringD、Integer9、以下选项中,哪个文件操作类可以实现一次读入多个文件?DA、FileReaderB、BufferedReaderC、FileInputStreamD、SequenceInputStream10、以下对File类的publicbooleaisFile()方法的描述,哪个是正确的?AA、判断该File对象所对应的是否是文件。B、判断该File对象所对应的是否是目录。C、返回文件的最后修改时间。D、在当前目录下生成指定的目录。四、程序填空题1、阅读以下代码,并将空处填写完整。import.*;publicclassTest1{publicstaticvoidmain(Stringargs[])throwsException{inta=4;BufferedReaderbr=newBufferedReader(newInputStreamReader);"请输入一个数字");Stringinput=();intb=(input);if(b>a){intsum=b/a;}else{"输入错误");}}}当输入的数字是8时,打印输出的结果是2。2、以下是使用FileInputStream类与FileOutputStream类复制文件。阅读以下代码,并将空处填写完整。import.*;classTest2{publicstaticvoidmain(String[]args){Stringfile1,file2;intch=0;file1="";file2="";try{FileInputStreamfis=newFileInputStream(file1);FileOutputStreamfos=newFileOutputStream(file2);intsize=();"字节有效数、"+size);while((ch=())!=-1){(ch);}();();}catch(IOExceptione){}}}五、简答题1、简述流的概念。Java程序通过流来完成输入和输出,流是输入或输出信息的抽象。流通过Java的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在包中。Java流被分为字节流、字符流两大流类,两者有什么区别?字节流的两个基类是InputStream和OutputStream,字符流的两个基类是Reader和Writer,它们都是Object类的直接子类,字节流是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字节的字符流类。简要说明管道流。管道流分为管道输入流(PipedInputStream)和管道输出流(PipedOutputStream),通常由一个PipedInputStream实例对象和一个PipedOutputStream实例对象相互连接而实现管道通信,PipedOutputStream向管道写入数据,PipedInputStream从管道中读取PipedOutputStream写入的数据,管道流主要用来完成线程之间的通信。六、编程题按照题目需求,编写程序并运行1、编写一个程序,分别使用字节流和字符流拷贝一个文本文件。提示:1)使用FileInputStream、FileOutputStream和FileReader、FileWriter分别进行拷贝2)使用字节流拷贝时,定义一个1024长度的字节数组作为缓冲区,使用字符流拷贝使用使用BufferedReader和BufferedWriter包装流进行包装2、某人在玩游戏的时候输入密码123456后成功进入游戏(输错5次则被强行退出),要求用程序实现密码验证的过程。提示:1)使用包装为字符流读取键盘输入。2)BufferedReader对字符流进行包装。调用BufferedReader的readLine()方法每次读取一行。3)在for循环判中判断输入的密码是否为“123456”,如果是则打印“恭喜你进入游戏”,并跳出循环,否则继续循环读取键盘输入。4)当循环完毕,密码还不正确,则打印“密码错误,结束游戏”,并调用(0)方法结束程序。GUI(图形用户界面)一、填空题1、Java中,图形用户界面简称___GUI___,它的组件包含在和这两个包中。2、为了避免实现监听器中定义的所有方法,造成代码的臃肿,在JDK中提供了一些___适配器___类,这些类实现了接口所有的方法,但是方法中没有任何代码,属于一种空实现。3、在Java中,___Graphics___类相当于一个抽象的画笔对象,使用它可以在组件上绘制图形。4、___事件监听器___负责监听事件源上发生的事件,并对各种事件做出响应处理。5、大部分的Swing组件都是___JComponent___类的直接或者间接子类,其名称都是在原来AWT组件名称前加上字母J。6、AWT事件有多种多样,大致可以分为___窗体事件___、___键盘事件___、___鼠标事件___、___动作事件___等。7、如果点击Frame窗口右上角的关闭按钮能将其关闭,那么这个Frame窗口添加了___WindowListener___监听器,并实现了监听器的实现了___windowClosing(WindowEvente)___方法。8、对话框可以分为___模态对话框___和___非模态对话框___两种。9、每一个容器都有一个默认的布局管理器,如果不希望通过布局管理器对容器进行布局,可以调用容器的___setLayout(null)___方法将其取消。10、创建下拉式菜单需要使用三个组件,分别是___JMenuBar___、___JMenu___和___JMenuItem___。二、判断题。1、容器(Container)是一个可以包含基本组件和其它容器的组件。对2、可以通过实现ActionListener接口或者继承ActionAdapter类来实现动作时间监听器。错3、CardLayout布局管理器将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的。对4、非模态对话框是指用户需要等到处理完对话框后才能继续与其它窗口进行交互。
/
本文档为【《Java基础入门》课后习题及答案资料】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索