JAVA课后练习题
- 格式:doc
- 大小:31.00 KB
- 文档页数:8
黑马面试题1:定义map集合,并自定义对象,对map集合遍历,打出key和value值【已完成】2:定义一个类A,类中定义一个show方法,打印一句话,在定义一个TestA类,利用反射在TestA中创建A的对象,并调用show方法3:使用高效字符缓冲流复制文件4:把C盘中的一个多层文件夹拷贝到D盘中。
用高效的方法(要求写思路,注释,代码)5:Integer泛型Map中存储字符串6:开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可。
7:Map的两种遍历方式【已完成】8:如何用反射去创建一个对象,有2种方式,尽量用代码去体现9:编写一个程序,把这个目录里边的所有的带.java文件都拷贝到另一个目录里边,拷贝成功以后,把后缀名是.java改成.txt10:创建多线程的方式有几种?尽量用代码去体现11:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
【已完成】12:编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List 集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出【已完成】14:Collection集合下班有哪些类,哪些类又有哪些特点ListSet15: 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×100016:编写一个类,增加一个实例方法用于打印一条字符串。
并使用反射手段创建该类的对象,并调用该对象中的方法。
17:编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString18:复制多级文件夹19:写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,用for循环创建5个线程对象。
JAVA实用教程(第三版)课后习题参考答案第1章 Java入门1. 开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。
得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行。
2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答:①应用程序必须有main方法,这个方法是程序执行的入口。
小应用程序没有main方法。
②应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。
3. Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。
②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。
③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。
小应用程序:源文件名与主类的类名相同,拓展名是.java。
4. 在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。
如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。
编写一个小程序并将小程序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTML文件(注意其中的codebase属性): <applet code=你的小程序的字节码 width=200 height=300 codebase=C:\5000></applet>存放在另一个目录中。
java练习题答案第1章java语言概述习题一、填空题1、面向对象程序的主要特征:继承,__封装___,___多态_____。
2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是因为它使代码可以__重用或复用___.3、java语言中,为将源代码翻译成__字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。
4、javac是java语言中的编译器,基本语法是:javac[选项]__文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___.5、java语言的主要贡献者是谁Jamegoling二、单选题1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A、javaB、.claC、htmlD、.e某e2、main方法是JavaApplication程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。
A、publictaticvoidmain()B、publictaticvoidmain(Stringarg[])C、publictaticintmain(String[]arg)D、publicvoidmain(Stringarg[])三、判断1、Java语言具有较好的安全性和可移植性及与平台无关等特性。
√2、Java语言的源程序不是编译型的,而是编译解释型的。
√四、问答题1、编写、运行java程序需要经过哪些主要步骤?答:1.编写源文件,扩展名必须是.java2.编写java源程序,使用java编译器编写源文件,得到字节码文件3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。
2、阅读下列java源代码文件,并回答问题publicclaSpeak{voidpeakHello(){Sytem.out.println(\);}}cla某iti8{publictaticvoidmain(Stringarg[]){Speakp=newSpeak();p.peakHello();}}(1)上述源文件的名字是什么?Speak.java(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.cla某iti8.cla第2章(1)基本数据类型练习题一、填空题1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____.2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_float__和__double__两种具体类型。
一、选择题1、在创建某类的对象时应该( )A、先声明对象,然后才能使用对象B、先声明对象,为对象分配内存空间,然后才能使用对象C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D、以上述说法都对2、以下说法中对Java中定义的父类与子类的关系描述正确是的( )A、一个子类可以有多个父类,一个父类也可以有多个子类B、一个子类可以有多个父类,但一个父类只可以有一个子类C、一个子类可以有一个父类,但一个父类可以有多个子类D、上述说法都不对3、给定如下Java 程序片断:class A{ public A(){ System.out.print ("Java"); }}class B extends A{ public B(){ System.out.print (" Welcome"); }public static void main(String[] args){ B b=new B(); }}上述程序将( )A、不能通过编译B、通过编译,输出为: Java WelcomeC、通过编译,输出为: WelcomeD、通过编译,输出为: Java4、给定以下程序段,如下:int i=0,j=-1;switch(i){ case 0:j=1; case 2:j=2; default:j=5; }System.out.print("j="+j); 编译运行,正确的是( )A、j=-1B、j=1C、j=2D、j=55、下面关于Java构造函数的描述正确的是( )A、类必须有显式定义构造函数B、它的返回类型是voidC、它和类有相同的名称,但它不能带任何参数D、以上描述都是错误的6、在Java编程中,用来执行Java类文件的命令是( )A、javacB、javaC、appletviewerD、以上都不对7、如下程序片段,体现了Java的( ) 概念public void aMethod(String s) {........}public void aMethod(int i) {........}public void aMethod(int I,float f) {........}A、多继承B、重载C、重写D、多态8、如下Java升序片段Integer a = new Integer(3); Integer b = new Integer(3);System.out.println(a==b);运行后,该程序段的输出结果是( )A、trueB、falseC、0D、19、有如下Java程序声明String s1=new String(“Java”);String s2=new String(“Welcome”);String s3=new String("0"); 以下选项中能够通过编译的是( )A、s3=s1+s2B、s3=s1&s2C、s3=s1||s2D、s3=s1&&s210、在子类构造方法内可以对超类的构造方法(super())进行调用的位置是( )A、子类构造方法的任何地方B、子类构造方法的第一条语句处C、子类构造方法的最后一条语句处D、不能对超类的构造方法进行调用11、传递4,0来运行下列代码中的方法divide(int a, int b)public void divide(int a, int b){ try { int c = a / b; }catch (Exception e) { System.out.print("Exception "); }finally { System.out.println("Finally"); }}程序的输出结果是( )A、打印输出: Exception FinallyB、打印输出: FinallyC、打印输出: ExceptionD、没有任何输出12、在单一文件中import、class和package的正确出现顺序是( )A、package, import, classB、class, import, packageC、import, package, classD、package, class, import13.下列语句中,可以作为无限循环语句的是A) for(;;) {}B) for(int i=0; i<10000;i++) {}C) while(false) {}D) do {} while(false)14.自定义异常类的父类可以是A) ErrorB) VirtuaMachineErrorC) ExceptionD) Thread15.String、StingBuffer都是______类,都不能被继承。
第1章Java入门一、选择题1.下列选项中,不属于Java语言特点的一项是〔C 〕.〔A〕分布式〔B〕安全性〔C〕编译执行〔D〕面向对象[解析]Java程序采用解释执行的方法.在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行.2.在Java语言中,〔 C 〕是最基本的元素?〔A〕方法〔B〕包〔C〕对象〔D〕接口[解析]构成Java程序的基本元素类〔抽象的对象〕. 3.编译一个定义了3个类和10个方法的Java源文件后,会产生〔D 〕个字节码文件?扩展名是〔D 〕?〔A〕13个字节码文件,扩展名为.class〔B〕1个字节码文件,扩展名为.class〔C〕3个字节码文件,扩展名为.java〔D〕3个字节码文件,扩展名为.class[解析]源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class.4.在创建Applet应用程序时,需要用户考虑问题是〔B 〕.〔A〕窗口如何创建〔B〕绘制的图形在窗口中的位置〔C〕程序的框架〔D〕事件处理[解析]创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以与事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定.5.Java语言属于〔B 〕种语言?〔A〕面向机器的语言〔B〕面向对象的语言〔C〕面向过程的语言〔D〕面向操作系统的语言[解析]Java语言是一种纯面向对象的语言.6.下列关于Application和Applet程序的说法中不正确的一项是〔B 〕.<A>Application使用解释器java.exe<B>Application不使用独立的解释器〔C〕Applet在浏览器中运行〔D〕Applet必须继承Java的Applet类[解析]Application程序包含main<>方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行. 7.下列选项中,不属于Java核心包的一项是〔A 〕.〔A〕javax.swing 〔B〕java.io〔C〕java.utile 〔D〕ng[解析]凡是以java开头的包都是Java核心包,以javax 开头的包则属于Java扩展包.8.下列描述中,不正确的是〔A 〕.〔A〕不支持多线程〔B〕一个Java源文件不允许有多个公共类〔C〕Java通过接口支持多重继承〔D〕Java程序分为Application和Applet两类[解析]Java是支持多线程的语言.9.阅读下列代码,选出该代码段正确的文件名〔C 〕.class A{void method1<>{System.out.println<"Method1 in class A">;}}public class B{void method2<>{System.out.println<"Method2 in class B">;}public static void main<String[] args>{System.out.println<"main<> in class B">;}}〔A〕A.java 〔B〕A.class〔C〕B.java 〔D〕B.class[解析]Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java. 10.编译下面源程序会得到哪些文件〔D 〕?class A1{}class A2{}public class B{public static void main<String[] args>{}}〔A〕只有B.class文件〔B〕只有A1.class 和A2.class文件〔C〕编译不成功〔D〕A1.class、A2.class和B.class文件[解析]由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件.11.编译Java程序时,用于指定生成class文件位置的选项是〔 A 〕.A.-d B.-g C.-verbose D.-nowarn 12.下列标识符〔名字〕命名原则中,正确的是〔 C 〕. A.类名的首字母小写 B.接口名的首字母小写C.常量全部大写 D.变量名和方法名的首字母大写13.下面哪种注释方法能够支持javadoc命令?〔C〕A.// B./*...*/ C./**...*/ D./**...**/ 14.下面哪些选项是正确的main方法说明?〔D〕A.void main<>B.private static void main<String args[]> C.public main<String args[]> D.public static void main<String args[]>二、填空题1.Java程序的编译和执行模式包括2点,是半编译和半解释.2.Java语言支持TCP/IP 协议,从而使得Java程序在分布式环境中能够很方便地访问处于不同地点的对象. 3.开发Java程序的一般步骤是:源程序编辑、生成字节码和解释执行.4.每个Java Application程序可以包括许多方法,但是必须有且只能有一个main<> 方法,统一格式为public static void main<String[] args> ,它是程序执行的入口.5.JVM把字节码程序与各种不同的操作系统和硬件分开,使得Java程序独立于平台.6.在Java程序中,能在WWW浏览器上运行的是Applet 程序.7.Java源程序文件和字节码文件的扩展名分别为.java 和.class .8.如果在Java程序中需要使用java.utile包中的所有类,则应该在程序开始处加上import java.utitle.* 语句.三、判断题1.Java语言具有较好的安全性和可移植性与与平台无关等特性.〔√ 〕2.Java语言的源程序不是编译型的,而是编译解释型的.〔√ 〕3.Java Application程序中,必有一个主方法main<>,该方法有没有参数都可以.〔√ 〕4.java.util.Scanner<System.in>可以接收用户从键盘输入的简单数据.〔√ 〕5.Java程序中不区分大小写字母.〔× 〕6.机器不能直接识别字节码文件,它要经过JVM中的解释器边解释边执行.〔√ 〕7.System类中的println<>方法分行显示信息,而print<>方法不分行显示信息.〔√ 〕8.当前路径的标识是".".〔√ 〕9.java命令不区分大小写,而javac命令区分大小写.〔× 〕10.printf<>和 format<>方法使用指定格式字符串和参数,将格式化字符串写入到PrintStream类型的输出流〔S ystem.out对象〕中.〔√ 〕11.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class.〔× 〕第2章标识符与简单数据类型一、选择题1.下列〔D 〕是合法的标识符?〔A〕12class 〔B〕void 〔C〕-5 〔D〕_blank 2.下列〔B 〕不是Java中的保留字?〔A〕if 〔B〕sizeof 〔C〕private 〔D〕null 3.下列〔C 〕不是合法的标识符?〔A〕$million〔B〕$_million〔C〕2$_million 〔D〕$2_million4.下列选项中,〔B 〕不属于Java语言的基本数据类型?〔A〕整数型〔B〕数组〔C〕浮点型〔D〕字符型5.下列关于基本数据类型的说法中,不正确的一项是〔D 〕.〔A〕boolean类型变量的值只能取真或假〔B〕float是带符号的32位浮点数〔C〕double是带符号的64位浮点数〔D〕char是8位Unicode字符[解析]Java中的字符采用的是16位的Unicode字符. 6.下列关于基本数据类型的取值范围的描述中,正确的一个是〔B 〕.〔A〕byte类型的取值范围是-128~128〔B〕boolean类型的取值范围是真或假〔C〕char类型的取值范围是0~65536〔D〕short类型的取值范围是-32767~32767[解析]根据每种类型占几个字节即可推算出其取值范围,如byte类型占1个字节,即共包含28个数值,其取值范围范围应为-128~127,其他类型也是如此.7.下列关于Java语言简单数据类型的说法中,正确的一项是〔A 〕.〔A〕以0开头的整数代表8进制整型常量〔B〕以0x或0X开头的整数代表8进制整型常量〔C〕boolean类型的数据作为类成员变量的时候,相同默认的初始值为true〔D〕double型数据占计算机存储的32位8.下列Java语句中,不正确的一项是〔C 〕.〔A〕$e, a, b = 10; 〔B〕char c, d = ‘a’;〔C〕float e = 0.0d; 〔D〕double c = 0.0f;[解析]不能将double类型的常量赋值给float类型的变量.9.在编写Java程序时,如果不为类的成员变量定义初始值,Java会给出它们的默认值,下列说法中不正确的一个是〔D 〕.〔A〕byte的默认值是0 〔B〕boolean的默认值是false 〔C〕char类型的默认值是’\0’〔D〕long类型的默认值是0.0L10.下列语句中不正确的一个是〔B 〕.〔A〕float f = 1.1f; 〔B〕byte b = 128;〔C〕double d = 1.1/0.0; 〔D〕char c = <char>1.1f;[解析]bytel类型变量的取值范围是-128~127. 11.下列表达式1+2+ "aa"+3的值是〔B 〕.〔A〕"12aa3" 〔B〕"3aa3 " 〔C〕"12aa" 〔D〕"aa3"[解析]整数和整数相加得到两个整数的和,而整数和字符串相加得到的是字符串.12.已知y=2, z=3, n=4,则经过n=n+ -y*z/n运算后n的值为〔A 〕.〔A〕3〔B〕-1 〔C〕-1 〔D〕-3[解析]根据运算符的优先级,该表达式相当于n=n+ <<-y>*z>/n.13.已知a=2, b=3,则表达式a%b*4%b的值为〔A 〕.〔A〕2 〔B〕1 〔C〕-1 〔D〕-2[解析]根据运算符的优先级,该表达式相当于<<a%b>*4>%b.14.已知x=2, y=3, z=4,则经过z- = --y – x--运算后,z的值为〔D 〕.〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]在表达式运算过程中,--y的值变为2,x—的值还是2,等号右侧运算后的值为0,因此z的值没有变化. 15.表达式<12==0> && <1/0 < 1>的值为〔B 〕.〔A〕true B〕false 〔C〕0 〔D〕运行时抛出异常[解析]由于<12==0>的值为false,因此整个表达式发生短路运算,即<1/0 < 1>就没有参与运算,整个表达式的值为false.16.设有类型定义short i=32; long j=64; 下面赋值语句中不正确的一个是〔B 〕〔A〕j=i; 〔B〕i=j; 〔C〕i=<short>j; 〔D〕j=<long>i;[解析]long类型的数据不能自动转变为short类型,因此不能将long类型的变量直接赋值给short类型. 17.现有1个char类型的变量c1=66和1个整型变量i=2,当执行c1=c1+<char>i;语句后,c1的值为〔D 〕.〔A〕'd' 〔B〕'D' 〔C〕68 〔D〕语句在编译时出错[解析]两个字符型的数据相加,得到的是一个整数,而如果把整数再赋值给一个字符型变量则会在编译时出错. 18.下列说法中,正确的一项是〔D 〕.〔A〕字符串"\\abcd" 的长度为6〔B〕False是Java的保留字〔C〕123.45L代表单精度浮点型〔D〕False是合法的Java标识符[解析]Java语言对字符的大小写是敏感的,False不是false,因此False是合法的Java标识符.19.以下的变量定义语句中,合法的是〔D 〕〔A〕float _*5 = 123.456F; 〔B〕byte $_b1 = 12345; 〔C〕int _long_ = 123456L;〔D〕double d = Double.MAX_V ALUE;[解析]〔A〕中_*5不是合法的标识符,〔B〕中12345超出byte范围,〔C〕中不能将long类型的常量赋值给int 型的变量.20.下列关于运算符优先级的说法中,不正确的一个是〔C 〕〔A〕运算符按照优先级顺序表进行运算〔B〕同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的〔C〕同一优先级的运算符在表达式中都是按照从右到左的顺序进行运算的〔D〕括号可以改变运算的优先次序[解析]同一优先级的运算符在表达式中都是按照从左到右的顺序进行运算的.二、填空题1.变量是Java程序的基本存储单元之一,变量的主要类型包括2大类:字符型和数值型.2.Java语言的整数类型变量和常量一样,各自都包括4种类型的数据,它们分别是byte、int 、short 和long. 3.boolean 类型数据不可以做类型转换.4.在Java语言的基本数据类型中,占存储空间最少的类型是boolean ,该类型占用的存储空间为 1 位. 5.Java语言中的保留字具有特殊意义和作用,不能作为普通标识符使用.6.在Java语言中,浮点类型数据属于实型数据,可以分为单精度和双精度两种.7.char类型的数据可以表示的字符数共为65536 .8.定义初始值为10的8次方的常整型变量iLong的语句是final iLong = 100000000L.9.Java语言中的数据类型转换包括自动转换和强制转换两种.10.Java中的字符采用的是16位的Unicode 编码.11.数据类型中存储空间均为64位的两种数据类型是long 和double .12.表达式9*4/ -5%5的值为-2 .〔十进制表示〕13.表达式5&2的值为0 .〔十进制表示〕14.表达式42<<4的值为672 .〔十进制表示〕15.表达式11010011>>>3的值为11010 .〔二进制表示〕16.表达式7|3的值为7 .〔十进制表示〕17.表达式10^2的值为8 .〔十进制表示〕18.Java语言中的逻辑与<&&>和逻辑或<||>运算采用短路方式进行运算.19.若a、b为int型变量,并且已分别赋值为5和10,则表达式<a++>+<++b>+a*b的值为82 .20.假设i=10, j=20, k=30,则表达式!<i<j+k> || !<i+10<=j> 的值为false .三、判断题1.Java语言使用的是Unicode字符集,每个字符在内存中占8位.〔×〕2.Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变.〔√〕3.所有的变量在使用前都必须进行初始化.〔×〕4.已知byte i = <byte>127; i = i +1;这两个语句能被成功编译.〔√〕5.String str="abcdefghi"; char chr=str.charAt<9>; 〔×〕6.char[] chrArray={ 'a', 'b', 'c', 'd', 'e', 'f', 'g'}; char chr=chrArray[6]; 〔√〕7.int i,j; boolean booleanValue=<i==j>; 〔×〕8.int intArray[]={0,2,4,6,8}; int length=int Array.length<>;〔×〕9.String str="abcedf"; int length=str.length; 〔×〕10.short shortValue=220; byte byteValue=shortValue; 〔×〕11.int[] intArray[60]; 〔×〕12.char[] str="abcdefgh"; 〔×〕13.说明或声明数组时不分配内存大小,创建数组时分配内存大小.〔√〕14.强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型.〔√〕第3章运算符、表达式与语句一、选择题1.下列〔D 〕不属于Java语言流程控制结构?〔A〕分支语句〔B〕跳转语句〔C〕循环语句〔D〕赋值语句[解析]Java语言流程控制结构只包括分支、循环和跳转三种语句.2.假设a是int类型的变量,并初始化为1,则下列〔D 〕是合法的条件语句?〔A〕if<a>{} 〔B〕if<a<<=3>{}〔C〕if<a=2>{}〔D〕if<true>{}[解析]条件语句中的"条件表达式"只能是boolean类型,不能是其他类型.3.下列说法中,不正确的一个是〔C 〕.〔A〕switch语句的功能可以由if…else if语句来实现〔B〕若用于比较的数据类型为double型,则不可以用switch语句来实现〔C〕if …else if语句的执行效率总是比switch语句高〔D〕case子句中可以有多个语句,并且不需要大括号{}括起来[解析]语句执行效率高低要根据具体语句来确定,不能简单地说if…else if语句的执行效率总是比switch语句高. 4.设a、b为long型变量,x、y为float型变量,ch为char 类型变量且它们均已被赋值,则下列语句中正确的是〔 B 〕.〔A〕switch<x+y> {} 〔B〕switch<ch+1> {}〔C〕switch ch {} 〔D〕switch<a+b>; {}[解析]switch后面的表达式必须放在括号<>中,且表达式的类型只能是byte、short、int和char类型,不能是其他类型.5.下列循环体执行的次数是〔 C 〕.int y=2, x=4;while<--x != x/y>{ }〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]第1次执行while时,--x的值为3,3/2=1,满足等号两端值不等的条件,执行一次循环体;第2次执行while 时,--x的值为2,2/2=1,条件满足,又执行一次循环体;第3次执行while时,--x的值为1,1/2=0,条件满足,再次执行一次循环体;第4次执行while时,--x的值为0,0/2=0,条件不满足满足,结束循环.因此在这个循环语句执行的过程中,循环体共执行了3次.6.下列循环体执行的次数是〔 B 〕.int x=10, y=30;do{ y-=x;x++; }while<x++<y-->;〔A〕1 〔B〕2 〔C〕3 〔D〕4[解析]执行1次循环体后,y的值为20,x值为11,然后执行while,此时x++的值为11,y—的值为20,因此x++<y—条件满足,判断完后,x的值变为12,y的值变为19;接着执行第2次循环体,执行完第2次循环体后,y的值为9,x值为13,然后执行while,此时x++的值为13,y—的值为9,因此x++<y—条件不满足,结束循环.因此在这个循环语句执行的过程中,循环体共执行了2次.7.已知如下代码:switch<m>{case0:System.out.println<"Condition 0">;case1:System.out.println<"Condition 1">;case2:System.out.println<"Condition 2">;case3:System.out.println<"Condition3">;break;default:System.out.println<"OtherCondition">; }当m的值为< D >时,输出"Condition 3"〔A〕2 〔B〕0、1 〔C〕0、1、2〔D〕0、1、2、3 [解析]当m的值为0、1、2、3时,都能输出"Condition 3",因为case 0、case 1、case 2后面的语句都没有break,因此可以继续向后执行.二、填空题1.跳转语句包括break、continue、return和throw 2.switch语句先计算switch后面的表达式的值,再和各case 语句后的值做比较.3.if语句合法的条件值是boolean 类型. 4.continue语句必须使用于循环语句中. 5.break语句有两种用途:一种从switch 语句的分支中跳出,一种是从循环语句内部跳出.6.do -while循环首先执行一遍循环体,而while循环首先判断表达式的值 . 7.与C++语言不同,Java语言不通过goto 语句实现跳转.8.每一个else子句都必须和它前面的一个距离它最近的if 子句相对应.9.在switch语句中,完成一个case语句块后,若没有通过break语句跳出switch语句,则会继续执行后面的case 语句块.10.在for循环语句中可以声明变量,其作用域是for循环体.第4章类与对象一、选择题1.下列哪种类成员修饰符修饰的变量只能在本类中被访问?〔D 〕〔A〕protected 〔B〕public 〔C〕default〔D〕private2.在Java语言中,哪一个包中的类是自动导入的?〔 A 〕A〕ng B〕java.awtC〕java.io D〕java.applet[解析]只有ng包中的类能够被自动导入.3.给出下面的程序代码:public class X4_1_3 {private float a;public static void m< >{ }}如何使成员变量a被方法m< >访问〔 C 〕〔A〕将private float a改为protected float a〔B〕将private float a改为public float a〔C〕将private float a改为static float a〔D〕将private float a改为float a[解析]static类型的方法只能访问static类型的数据成员.4.有一个类B,下面为其构造方法的声明,正确的是〔 B 〕.〔A〕void B<int x> {} 〔B〕B<int x> {}〔C〕b<int x> {} 〔D〕void b<int x> {}5.下面关于类的说法,不正确的是〔 C 〕.〔A〕类是同种对象的集合和抽象〔B〕类属于Java语言中的复合数据类型〔C〕类就是对象〔D〕对象是Java语言中的基本结构单位[解析]类是对象的抽象,对象是类的实例6.下面关于方法的说法,不正确的是〔C 〕. 〔A〕Java中的构造方法名必须和类名相同〔B〕方法体是对方法的实现,包括变量声明和合法语句〔C〕如果一个类定义了构造方法,也可以用该类的默认构造方法〔D〕类的私有方法不能被其他类直接访问[解析]类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方法. 7.关于内部类,下列说法不正确的是〔A 〕.〔A〕内部类不能有自己的成员方法和成员变量〔B〕内部类可用private或protected修饰符修饰〔C〕内部类可以作为其他类的成员,而且可访问它所在的类的成员〔D〕除static内部类外,不能在类内声明static成员8.定义外部类时不能用到的关键字是〔 C 〕.〔A〕final 〔B〕public 〔C〕protected 〔D〕abstract[解析]定义外部类不能使用protected修饰符.9.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为〔 D 〕〔A〕abstract void f<> 〔B〕public void f<>〔C〕final void f<> 〔D〕static void f<> [解析]只有static类型的方法才可以直接使用类名来引用.10.定义一个公有double型常量PI,哪一条语句最好?〔 B 〕〔A〕public final double PI;〔B〕public final static double PI=3.14;〔C〕public final static double PI;〔D〕public static double PI=3.14;[解析]用public final static来定义常量,既可以节省存储空间,又可以保证数值不会被改变.二、填空题1.对象是对事物的抽象,而类是对对象的抽象和归纳.2.从用户的角度看,Java源程序中的类分为两种:系统定义的类和用户自己定义的类.3.一个类主要包含两个要素:数据成员和成员方法.4.创建包时需要使用关键字package .5.类中的构造方法是一个特殊的方法,该方法的方法名和类名相同.6.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法.这个方法没有形式参数,也没有任何具体语句,不能完成任何操作.7.静态数据成员被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中.因此,一个类的任何对象访问它时,存取到的都是相同〔相同/不同〕的数值.8.静态数据成员既可以通过对象名来访问,也可以通过类名直接访问它.9.定义常量时要用关键字final ,同时需要说明常量的数据类型并指出常量的具体值 .10.方法体内定义变量时,变量前不能加修饰符;局部变量在使用前必须明确赋值,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个默认的值.11.static方法中只能引用static 类型的数据成员和static 类型的成员方法;而非static类型的方法中既可以引用static 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法.12.引用static类型的方法时,可以使用类名做前缀,也可以使用对象名做前缀.13.当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为import java.awt.event.*.14.定义类时需要class 关键字,继承类时需要extends 关键字,实现接口时需要关键字implements .三、判断题1.类是一种类型,也是对象的模板.〔√〕2.类中说明的方法可以定义在类体外.〔×〕3.实例方法中不能引用类变量.〔×〕4.创建对象时系统将调用适当的构造方法给对象初始化.〔√〕5.使用运算符new创建对象时,赋给对象的值实际上是一个引用值.〔√〕6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值.〔√〕7.对象可作方法参数,对象数组不能作方法参数.〔×〕8.class是定义类的惟一关键字.〔√〕9.Java语言会自动回收内存中的垃圾.〔√〕第5章子类与继承一、选择题1.已知有下面类的说明:public class X5_1_1 extends x{private float f =10.6f;int i=16;static int si=10;public static void main<String[] args> {X5_1_1 x=new X5_1_1<>;}}在main<>方法中,下面哪条语句的用法是正确的?〔 A 〕A.x.f B.this.si C.X5_1_1.i D.X5_1_1.f[解析]由于x是在main方法内部定义的对象,因此它可以引用类的非static类型的属性,因此选A,而this和super不能在main方法中使用,使用类名只能引用本类的静态属性,因此B、C、D不对. 2.下列程序的运行结果是〔C 〕.public class X5_1_2 extends x{int ab<>{static int aa=10;aa++;System.out.println<aa>;}public static void main<String[] args> { X5_1_2 x=new X5_1_2<>;x.ab<>;}}A.10 B.11C.编译错误D.运行成功,但不输出[解析]方法体内的局部变量不能使用static修饰符.3.下面关于接口的说法中不正确的是〔C 〕.A.接口中所有的方法都是抽象的B.接口中所有的方法都是public访问权限C.子接口继承父接口所用的关键字是implements D.接口是Java中的特殊类,包含常量和抽象方法[解析]子接口继承父接口所用的关键字也是extends,只有类实现接口时才使用implements.4.区分类中重载方法的依据是〔 A 〕.A.形参列表的类型和顺序B.不同的形参名称C.返回值的类型不同D.访问权限不同[解析]形参表的类型和顺序不同时区分重载方法的唯一标志.5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?〔 B 〕A.能,能B.能,不能C.不能,能D.不能,不能[解析]子类对象可以直接赋值给父类对象,而父类对象不能直接赋值给子类对象.6.Java语言类间的继承关系是〔 A 〕.A.单继承B.多重继承C.不能继承D.不一定[解析]Java语言类间的继承关系是单继承,但一个类可以实现多个接口.7.Java语言接口间的继承关系是〔B 〕.A.单继承B.多重继承C.不能继承D.不一定[7.解析]Java语言接口间的继承关系允许多重继承. 8.一个类实现接口的情况是〔A 〕.A.一次可以实现多个接口B.一次只能实现一个接口C.不能实现接口D.不一定[解析]Java语言允许一个类一次实现多个接口.9.定义外部类的类头时,不可用的关键字是〔 C 〕. A.public B.finalC.protected D.abstract[解析]定义外部类时不能使用protected关键字.10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量?〔 B 〕A.不能引用,必须改名,使它们的名称不相同B.在成员变量前加this,使用this访问该成员变量C.在成员变量前加super,使用super访问该成员变量D.不影响,系统可以自己区分[解析]this可以用来引用本类对象.11.下面说法不正确的是〔 B 〕.A.抽象类既可以做父类,也可以做子类B.abstract和final能同时修饰一个类C.抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类或接口D.声明为final类型的方法不能在其子类中重新定义[解析]abstract和final不能同时修饰一个类,因为abstract 类需要子类,而final类不能有子类.二、填空题1.消息就是向对象发出服务请求,是对数据成员和成员方法的引用.2.在面向对象系统中,消息分为两类公有消息和私有消息.3.在面向对象程序设计中,采用继承机制可以有效地组织程序结构.充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量.4.数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员.5.子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖.6.子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名、返回值类型和参数列表,否则就不是方法的覆盖,而是子类定义自己特有的方法,与父类的方法无关. 7.this代表了当前对象的一个引用,super表示的是当前对象的直接父类对象的引用.8.抽象类不能创建对象,该工作由抽象类派生的非抽象子类来实现.9.如果父类中已有同名的abstract方法,则子类中就不能〔能/不能〕再有同名的抽象方法.10.abstract类中不能有private 访问权限的数据成员或成员方法.11.interface 是声明接口的关键字,可以把它看成一个特殊类.接口中的数据成员默认的修饰符是public static final ,接口中的成员方法默认的修饰符是public abstract .12.如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现该接口的所有抽象方法;如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法.但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以与自身所实现接口中的抽象方法都必须有实在的方法体. 13.包的作用有两个,一是划分类名空间,二是控制类之间的访问.14.封装也称信息隐藏,是指类的设计者只为类的使用者提供类的可以访问的部分〔包括类的数据成员和成员方法〕,而把类中的其他成员隐藏起来,使用户不能访问的机制.15.Java提供了4种访问权限来实现封装机制,即private 、protected 、默认和public .16.Java中提供两种多态机制, 重载与覆盖.17.当一个构造方法需要调用另一个构造方法时,可以使用关键字this ,同时这个调用语句应该是整个构造方法的第一条可执行语句.18.如果子类自己没有构造方法,那么父类也一定没有〔有/没有〕带参的构造方法,此时它将继承父类的无参构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行父类的构造方法,然后再执行自己的构造方法 .19.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用super 关键字来调用它,但这个调用语句必须是子类构造方法的第一条可执行语句.20.创建一个名为myPachkage的包的语句为package myPackage; ,该语句应该放在程序第一行位置.三、判断题1.Java语言中,构造方法是不可以继承的.〔√〕2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目.〔×〕3.抽象方法是一种只有说明而无具体实现的方法.〔√〕4.Java语言中,所创建的子类都应有一个父类.〔√〕5.调用this 或super构造方法的语句必须放在第一条语句.〔√〕6.一个类可以实现多个接口,接口可以实现"多重继承".〔√〕7.实现接口的类不能是抽象类.〔√〕8.使用构造方法只能给实例成员变量赋初值.〔√〕9.Java 语言不允许同时继承一个类并实现一个接口.〔×〕。
java课后习题及答案Java课后习题及答案Java作为一门广泛应用于软件开发领域的编程语言,其学习和掌握对于计算机专业的学生来说是非常重要的。
在学习过程中,课后习题是巩固知识、提高编程能力的重要环节。
本文将为大家提供一些常见的Java课后习题及其答案,希望能对大家的学习有所帮助。
一、基础习题1. 编写一个Java程序,输出"Hello, World!"。
```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```2. 编写一个Java程序,计算并输出1到100之间的所有偶数的和。
```javapublic class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;System.out.println("1到100之间的所有偶数的和为:" + sum); }}```3. 编写一个Java程序,判断一个整数是否是素数。
```javapublic class PrimeNumber {public static void main(String[] args) {int num = 17;boolean isPrime = true;for (int i = 2; i <= Math.sqrt(num); i++) {if (num % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(num + "是素数");} else {System.out.println(num + "不是素数");}}```二、进阶习题1. 编写一个Java程序,实现一个简单的计算器,能够进行加、减、乘、除四则运算。
第一章课后习题1.编译Java程序的命令是什么?2.执行Java程序的命令是什么?3.Java应用程序和小程序的区别是什么?4.编写一个application ,实现在屏幕上打印自己名字的功能。
第一章课后习题答案1.编译Java程序的命令是什么?答案:javac 源文件名2.执行Java程序的命令是什么?java 主类名3.Java应用程序和小程序的区别是什么?Java application⏹由Java解释器独立运行字节码⏹由专门的命令行启动程序执行⏹程序中有定义了main()方法的主类Java applet⏹不能独立运行,字节码必须嵌入HTML文档⏹当浏览器调用含applet的Web页面时执行⏹程序中含有java. applet. Applet 类的子类4.编写一个application ,实现在屏幕上打印自己名字的功能。
class Test{public static void main(String[] args){System.out.println(“张三”);}}第二章课后习题(1)一、选择题1.下列变量定义错误的是。
A) int a; B) double b=4.5; C) boolean b=true; D)float f=9.8;2.下列数据类型的精度由高到低的顺序是:a)float,double,int,longb)double,float,int,bytec)byte,long,double,floatd)double,int,float,long3.执行完下列代码后,int a=3;char b='5';char c=(char)(a+b);c的值是?A)’8’ b)53 c)8 d)564.Unicode是一种_____________A) 数据类型 B)java包 C)字符编码 D)java类5.6+5%3+2的值是___________A)2 B)1 C) 9 D)106.下面的逻辑表达式中合法的是__________A)(7+8)&&(9-5) B)(9*5)||(9*7) C)9>6&&8<10 D)(9%4)&&(8*3) 7.java语言中,占用32位存储空间的是__________。
java课后习题答案及部分作业答案第⼀章Java概述⼀、选择题1、下⾯哪个是在Dos命令提⽰符下编译Java程序的命令?(A )A. javacB. javaC. javadocD. javaw2、以下哪些是Java程序中有效的注释符号?(ABC )A. //B. /* */C. /** */D. */ */3、以下哪个不是Java语⾔的特点?(B )A. ⾯向对象B. ⾃动检查语法错误C. 跨平台D. 解释执⾏4、Java编译器会将Java程序转换为(C )A. 可执⾏代码B. ⽬标代码C. 字节码D. 机器代码5、Java源⽂件的扩展名是(D )A. .classB. .jarC. .javD. .java⼆、简答题1、Java的跨平台的含义是什么?为什么Java可以跨平台?Java语⾔的⼀个⾮常重要的特点就是平台⽆关性。
它是指⽤Java编写的应⽤程序编译后不⽤修改就可在不同的操作系统平台上运⾏。
Java之所以能平台⽆关,主要是依靠Java虚拟机(JVM)来实现的。
JVM是⼀种抽象机器,它附着在具体操作系统之上,本⾝具有⼀套虚机器指令,并有⾃⼰的栈、寄存器组等。
Java编程⼈员在编写完Java程序后,Java编译器将Java源代码⽂件编译后⽣成字节码⽂件2、简述Java语⾔的特点Java具有以下特点:1)、简单性Java语⾔的语法规则和C语⾔⾮常相似,只有很少⼀部分不同于C语⾔,并且Java还舍弃了C语⾔中复杂的数据类型(如:指针和结构体),因此很容易⼊门和掌握。
2)、可靠性和安全性Java从源代码到最终运⾏经历了⼀次编译和⼀次解释,每次都有进⾏检查,⽐其它只进⾏⼀次编译检查的编程语⾔具有更⾼的可靠性和安全性。
3)、⾯向对象Java是⼀种完全⾯向的编程语⾔,因此它具有⾯向对象编程语⾔都拥有的封装、继承和多态三⼤特点。
4)、平台⽆关和解释执⾏Java语⾔的⼀个⾮常重要的特点就是平台⽆关性。
它是指⽤Java编写的应⽤程序编译后不⽤修改就可在不同的操作系统平台上运⾏。
java从入门到精通课后题学习Java从入门到精通是一个系统的过程,课后题是巩固知识和提高技能的重要方式之一。
以下是一些可能的课后题,涵盖了Java的不同方面和难度级别:1. 基础知识:a. 解释Java中的基本数据类型及其区别。
b. 什么是Java中的运算符?列举一些常用的运算符并给出示例。
c. 什么是条件语句和循环语句?举例说明它们的用法和区别。
2. 面向对象编程:a. 什么是类和对象?它们之间的关系是什么?b. 解释封装、继承和多态的概念,并给出实际的代码示例。
c. 什么是接口和抽象类?它们有何区别和用途?3. 异常处理:a. 什么是异常?列举一些常见的Java异常,并解释如何处理它们。
b. 什么是try-catch-finally块?如何使用它来捕获和处理异常?4. 集合框架:a. 解释Java集合框架的概念和作用。
b. 列举一些常用的集合类及其特点,例如ArrayList、HashMap等。
c. 如何遍历集合并进行增删改查操作?5. 文件操作:a. 如何使用Java读取和写入文本文件?b. 解释字节流和字符流的区别,并给出示例代码。
c. 如何处理文件读写中可能出现的异常?6. 多线程编程:a. 什么是线程?如何创建和启动一个线程?b. 解释线程同步和互斥的概念,并给出实际的代码示例。
c. 如何处理线程间的通信和共享资源的访问问题?7. 数据库连接:a. 如何在Java中连接和操作数据库?举例说明。
b. 解释JDBC的概念和作用。
c. 如何执行SQL查询和更新操作?以上只是一些示例题目,你可以根据自己的学习进度和需要进行适当调整和扩展。
通过课后题的练习和思考,可以帮助你更好地理解和掌握Java编程的各个方面,提高自己的编程能力。
习题一第1章一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件..2)使用javac编译源文件;得到字节码文件..3)使用解释器运行程序..3.由类所构成;应用程序必须有一个类含有public static void mainString args方法;含有该方法的类称为应用程序的主类..不一定;但最多有一个public类..4.Path设置为:以安装的版本为例..ClassPath设置为:set classpath=D:\jdk\jre\lib\rt.jar;.;5. .java和.class6. java Bird7.独行风格大括号独占行和行尾风格左大扩号在上一行行尾;右大括号独占行二、选择题1.B..2.D..三、阅读程序1.aPerson.java..b两个字节码;分别是Person.class和Xiti.class..c 得到“NoSuchMethodError”;得到“NoClassDefFoundError: Xiti/class”;得到“您好;很高兴认识您 nice to meet you”习题二第2章一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符..标识符由字母、下划线、美元符号和数字组成;第一个字符不能是数字..false不是标识符..2.关键字就是Java语言中已经被赋予特定意义的一些单词;不可以把关键字作为名字来用..不是关键字..class implements interface enum extends abstract..3.boolean;char;byte;short;int;long;float;double..4.float常量必须用F或f为后缀..double常量用D或d为后缀;但允许省略后缀..5.一维数组名.length..二维数组名.length..二、选择题1.C..2.ADF..3.B..4.BE..5.代码2代码3代码4代码5..6.B..三、阅读或调试程序1.低住佐佑佒体占何佖佗佘余佚佛作佝佞佟你佡佢2.答案是:234<468我输出结果后不回车我输出结果后自动回车到下一行x+y= 6663.属于操作题;解答略..4.代码1:4..代码2:b0=1..5.代码1:40..代码2:7四、编写程序1. public class E {public static void mainString args {你';我';他';}}2. public class E {public static void main String args { char cStart='α';cEnd='ω';forchar c=cStart;c<=cEnd;c++}}习题三第3章一、问答题1.boolean2.不可以3.boolean4. 不是必须的5.结束while语句的执行6.可以二、选择题1.A.. 2.C.. 3.C..三、阅读程序1.你;苹;甜2.Jeep好好3.x=-5;y=-1四、编程序题1.public class jiecheng {public static void mainString args { double sum=0;a=1;int i=1;whilei<=20 {sum=sum+a;i++;a=ai;}}}2.public class sushu {public static void mainString args { int i;j;forj=2;j<=100;j++ {fori=2;i<=j/2;i++ {ifj%i==0break;}ifi>j/2 {}}}}3.class qiuhe {public static void mainString args { double sum=0;a=1;i=1;do { sum=sum+a;i++;a=1.0/ia;}whilei<=20;使用do-while循环计算的sum="+sum;forsum=0;i=1;a=1;i<=20;i++ {a=a1.0/i;sum=sum+a;}使用for循环计算的sum="+sum;}}4.public class wanshu {public static void mainString args {int sum=0;i;j;fori=1;i<=1000;i++ {forj=1;sum=0;j<i;j++ {ifi%j==0sum=sum+j;}ifsum==i完数:"+i;}}}5.public class Xiti5 {public static void mainString args {int m=8;item=m;i=1;long sum=0;fori=1;sum=0;item=m;i<=10;i++ {sum=sum+item;item=item10+m;}}}6.public class Xiti6 {public static void mainString args { int n=1;long sum=0;whiletrue {sum=sum+n;n++;ifsum>=8888break;}满足条件的最大整数:"+n-1;}}习题四第4章一、问答题1. 封装、继承和多态..2.当类名由几个单词复合而成时;每个单词的首字母使用大写..3.名字的首单词的首字母使用小写;如果变量的名字由多个单词组成;从第2个单词开始的其它单词的首字母使用大写..4.属性5.行为6.用类创建对象时..没有类型7.用类创建对象时..8.一个类中可以有多个方法具有相同的名字;但这些方法的参数必须不同;即或者是参数的个数不同;或者是参数的类型不同..可以..9.可以..不可以..10.不可以..11.一个类通过使用new运算符可以创建多个不同的对象;不同的对象的实例变量将被分配不同的内存空间..所有对象的类变量都分配给相同的一处内存;对象共享类变量..12.代表调用当前方法的对象..不可以..二、选择题1.B..2.D..3.D..4.D..5.CD..6.代码1代码4..7.代码4..三、阅读程序1.代码1:1;代码2:121;代码3:121..2.sum=-100..3. 27..4.代码1:100;代码2:20.0..5.上机实习题目;解答略..6.上机实习题目;解答略..四、编程题CPU.javapublic class CPU {int speed;int getSpeed {return speed;}public void setSpeedint speed {this.speed = speed;}}HardDisk.javapublic class HardDisk {int amount;int getAmount {return amount;}public void setAmountint amount { this.amount = amount;}}PC.javapublic class PC {CPU cpu;HardDisk HD;void setCPUCPU cpu {this.cpu = cpu;}void setHardDiskHardDisk HD { this.HD = HD;}void show{速度:"+cpu.getSpeed;硬盘容量:"+HD.getAmount;}}Test.javapublic class Test {public static void mainString args {CPU cpu = new CPU;HardDisk HD=new HardDisk;cpu.setSpeed2200;HD.setAmount200;PC pc =new PC;pc.setCPUcpu;pc.setHardDiskHD;pc.show;}}习题五第5章一、问答题1.不可以..2.是..3.不继承..4.声明与父类同名的成员变量..5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型;重写的方法的名字、参数个数、参数的类型和父类的方法完全相同..重写方法的目的是隐藏继承的方法;子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为..6.不可以..7.Abstract类..8.上转型对象不能操作子类新增的成员变量;不能调用子类新增的方法..上转型对象可以访问子类继承或隐藏的成员变量;可以调用子类继承的方法或子类重写的实例方法..9.通过重写方法..10.面向抽象编程目的是为了应对用户需求的变化;核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责;从而让该类的设计者不去关心具体实现..二、选择题1.C..2.D..3.CD..4.D..5.B..6.B..7.D..8.B..9.A..三、阅读程序1.代码1:15.0..代码2:8.0..2.代码1:11..代码2:110..3.代码1:98.0..代码2:12..代码3:98.0..代码4:9..4.代码1:120..代码2:120..代码3:-100..四、编程题Animal.javapublic abstract class Animal {public abstract void cry;public abstract String getAnimalName;}Simulator.javapublic class Simulator {public void playSoundAnimal animal {现在播放"+animal.getAnimalName+"类的声音:";animal.cry;}}Dog.javapublic class Dog extends Animal {public void cry {汪汪...汪汪";}public String getAnimalName {return "狗";}}Cat.javapublic class Cat extends Animal {public void cry {喵喵...喵喵";}public String getAnimalName {return "猫";}}Application.javapublic class Example5_13 {public static void mainString args {Simulator simulator = new Simulator;simulator.playSoundnew Dog;simulator.playSoundnew Cat;}}习题六第6章一、问答题1.不能..2.不能..3.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中..那么该接口变量就可以调用被类实现的接口中的方法..4.不可以..5.可以..二、选择题1.D..2.AB..3.A..三、阅读程序1.代码1:15.0..代码2:8..2.代码1:18..代码2:15..四、编程题Animal.javapublic interface Animal {public abstract void cry;public abstract String getAnimalName;}Simulator.javapublic class Simulator {public void playSoundAnimal animal {现在播放"+animal.getAnimalName+"类的声音:";animal.cry;}}Dog.javapublic class Dog implements Animal {public void cry {汪汪...汪汪";}public String getAnimalName {return "狗";}}Cat.javapublic class Cat implements Animal {public void cry {喵喵...喵喵";}public String getAnimalName {return "猫";}}Application.javapublic class Example5_13 {public static void mainString args {Simulator simulator = new Simulator;simulator.playSoundnew Dog;simulator.playSoundnew Cat;}}习题七第7章一、问答题1.有效..2.可以..3.不可以..4.一定是..二、选择题1.C..2.C..三、阅读程序1.大家好;祝工作顺利2.p是接口变量..3.你好 fine thanks..4.属于上机实习程序;解答略..四、编程题import java.util.;public class E {public static void main String args {Scanner reader = new ScannerSystem.in;double sum = 0;int m = 0;whilereader.hasNextDouble{double x = reader.nextDouble;assert x< 100:"数据不合理";m = m+1;sum = sum+x;}个数的和为%f\n";m;sum;个数的平均值是%f\n";m;sum/m;}}习题八第8章一、问答题1.不是.."\\hello"是..2.4不存在空格是4存在空格是5和3..3.false和true..4.负数..5.是true..6.3和-1..7.会发生NumberFormatException异`常..二、选择题1.A..2.B..3.B..4.D..5.C..三、阅读程序1.代码:苹果..2.代码:Love:Game..3.代码1:15..代码2:abc我们..4.代码:13579..5.代码:9javaHello..6.属于上机实习程序;解答略..7.属于上机实习程序;解答略..四、编程题1.public class E {public static void main String args { String s1;s2;t1="ABCDabcd";s1=t1.toUpperCase;s2=t1.toLowerCase;String s3=s1.concats2;}}2. public class E {public static void main String args {String s="ABCDabcd";char cStart=s.charAt0;char cEnd = s.charAts.length-1;}}3. import java.util.;public class E {public static void main String args {int year1;month1;day1;year2;month2;day2;try{ year1=Integer.parseIntargs0;month1=Integer.parseIntargs1;day1=Integer.parseIntargs2;year2=Integer.parseIntargs3;month2=Integer.parseIntargs4;day2=Integer.parseIntargs5;}catchNumberFormatException e{ year1=2012;month1=0;day1=1;year2=2018;month2=0;day2=1;}Calendar calendar=Calendar.getInstance;calendar.setyear1;month1-1;day1;long timeYear1=calendar.getTimeInMillis;calendar.setyear2;month2-1;day2;long timeYear2=calendar.getTimeInMillis;long 相隔天数=Math.abstimeYear1-timeYear2/1000606024;年"+month1+"月"+day1+"日和"+year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天";}}4. import java.util.;public class E {public static void main String args {double a=0;b=0;c=0;a=12;b=24;c=Math.asin0.56;c=Math.cos3.14;c=Math.exp1;c=Math.log8;}}5.public class E {public static void main String args {String str = "ab123you你是谁 ";String regex = "\\D+";str = str.replaceAllregex;"";}}6. import java.util.;public class E {public static void mainString args {String cost = "数学87分;物理76分;英语96分";Scanner scanner = new Scannercost;double sum=0;int count =0;whilescanner.hasNext{try{ double score = scanner.nextDouble;count++;sum = sum+score;}catchInputMismatchException exp{String t = scanner.next;}}总分:"+sum+"分";平均分:"+sum/count+"分"; }}。
《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。
2、Java程序的运行环境简称之为JRE_____。
3、编译Java程序需要使用_javac_____命令。
4、javac.exe和java.exe两个可执行程序存放在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可执行文件,其中java.exe命令的作用是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;三、问答题1、简述Java的特点。
面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。
2、简述JRE与JDK的区别。
JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。
Java练习题库(含答案)一、Java语法基础(1-18)1、在Java中,负责对字节码解释执行的是()。
答案:BA、垃圾回收器B、虚拟机C、编译器D、多线程机制2、下列描述中,正确的是()答案:AA、Java程序的main方法必须写在类里面。
B、Java程序中可以有多个main方法。
C、Java程序中类名必须与文件名一样。
(public修饰的才有这要求)D、Java程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来。
3、下列描述中,正确的是()答案:AA、Java中的标识符是区分大小写的B、源文件名与public类名可以不相同C、Java源文件扩展名为.jarD、Java源文件中public类的数目不限4、下列关于Java中变量命名规范的描述中,正确的是( ) 答案:BA、变量由字母、下划线、数字、$符号随意组成。
(数字不能开头)B、变量不能以数字开头。
C、A和a在java中是同一个变量。
D、不同类型的变量,可以起相同的名字。
5、以下选项中,不是Java合法标识符的是( ) 答案:CA、 VOIDB、 x3xC、 finalD、 abc$def6、在Java中定义一个类时,所使用的关键字是()。
答案:AA、classB、publicC、structD、class 或struct7、下列关于运算符优先级别排序正确的是()答案:AA、由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;B、由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;C、由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;D、由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符;8、表达式(15+3*8)/4%3的值是( )答案:AA、 0B、 1C、 2D、 399、已知字符A对应的ASCII码值是65,那么表达式"A" + 1的值是()答案:CA.、66 B、B C、A1 D、非法表达式,编译出错10、下列关于boolean类型的叙述中,正确的是()答案:DA、可以将boolean类型的数值转换为int类型的数值B、可以将boolean类型的数值转换为字符串C、可以将boolean类型的数值转换为char类型的数值D、不能将boolean类型的数值转换为其他基本数据类型11、下面关于for循环的描述正确的是( ) 答案:AA、 for循环体语句中,可以包含多条语句,但要用大括号括起来。
Java练习题库一、基础知识篇1.1 变量与数据类型1. 定义一个整型变量并赋值为10。
2. 声明一个浮点型变量并初始化为3.14。
3. 创建一个字符变量并赋值为'A'。
4. 使用字符串类型声明并初始化一个变量,内容为"Hello World"。
1.2 运算符5. 计算5 + 3 2的值。
6. 判断下列表达式的结果:10 > 5 && 8 < 6。
7. 编写一个程序,实现两个整数的交换。
8. 使用三元运算符判断一个数是奇数还是偶数。
1.3 控制结构9. 编写一个for循环,输出1到10的整数。
10. 使用while循环计算1到100的和。
11. 根据分数判断学生等级(优秀、良好、及格、不及格)。
12. 编写一个switch语句,根据月份输出对应的天数。
二、面向对象篇2.1 类与对象13. 创建一个名为Person的类,包含姓名和年龄属性。
14. 为Person类添加一个方法,用于打印个人信息。
15. 编写一个构造方法,为Person类初始化姓名和年龄。
16. 创建一个Student类,继承自Person类,并添加一个成绩属性。
2.2 封装、继承与多态17. 将Person类的姓名和年龄属性设置为私有,并提供对应的get和set方法。
18. 在Student类中重写toString方法,输出学生信息。
19. 定义一个接口Animal,包含一个方法eat()。
20. 创建两个类Cat和Dog,实现Animal接口,并分别实现eat()方法。
2.3 异常处理21. 编写一个程序,捕获并处理数组越界异常。
22. 创建一个自定义异常类MyException,并在适当的时候抛出异常。
23. 使用trycatchfinally结构编写一个读取文件的程序。
三、高级特性篇3.1 集合框架24. 使用ArrayList存储并遍历一组字符串。
25. 创建一个HashMap,存储学生姓名和成绩,并遍历输出。
Java练习题一、基本语法1. 编写一个Java程序,输出“Hello, World!”。
2. 声明一个整型变量并赋值为10,然后输出该变量的值。
3. 编写一个Java程序,实现两个整数的加、减、乘、除运算。
4. 声明一个浮点型变量并赋值为3.14,然后输出该变量的值。
5. 编写一个Java程序,判断一个整数是奇数还是偶数。
6. 使用三元运算符计算两个整数中的较大值。
7. 编写一个Java程序,实现字符串的拼接。
8. 声明一个布尔型变量并赋值为true,然后输出该变量的值。
9. 编写一个Java程序,输出1到100的所有偶数。
10. 使用for循环输出九九乘法表。
二、数组与字符串1. 声明一个整型数组并初始化,然后输出数组中的所有元素。
2. 编写一个Java程序,实现数组的逆序输出。
3. 计算一个整型数组的平均值。
4. 编写一个Java程序,查找数组中的最大值和最小值。
5. 使用冒泡排序算法对整型数组进行排序。
6. 编写一个Java程序,实现字符串的反转。
7. 判断一个字符串是否为回文。
8. 输出一个字符串中字母和数字的个数。
9. 编写一个Java程序,实现字符串的截取。
10. 使用StringBuilder类拼接一个由100个“Java”组成的字符串。
三、面向对象1. 定义一个学生类(Student),包含姓名、年龄和成绩属性,并实现一个打印学生信息的方法。
2. 编写一个Java程序,创建一个学生对象并设置其属性,然后调用打印学生信息的方法。
3. 定义一个矩形类(Rectangle),包含长和宽属性,并实现计算面积和周长的方法。
4. 编写一个Java程序,创建两个矩形对象,并比较它们的面积大小。
5. 定义一个动物类(Animal),包含吃、睡和叫的方法,然后创建一个狗类(Dog)继承动物类,并重写叫的方法。
6. 编写一个Java程序,演示多态性,创建一个动物数组,包含狗和猫对象,并调用它们的叫方法。
JAVA习题集(含答案)习题一:1.简述Java的发展过程。
2.什么是软件?3.什么叫做源程序?4.什么叫做编译?5.什么是Java 的byte-codes?它的最大好处是什么?6.机器语言程序、高级语言程序以及可表示成Java字节码的程序之间的区别是什么?7.Java程序可分为哪两种?分别如何运行?8.试简述J2SE、J2ME与J2EE的简单区别。
9.练习使用浏览器查看Java API文档。
10.SDK的编译命令是什么?11.试修改例1-1程序,使其输出的字符串为“I’d like to study Java !”,并在DOS命令行环境下编译与运行该程序。
习题一参考答案:1.答:1991:Sun Microsystems公司进军消费电子产品(IA)市场。
1991.4:Sun 成立“Green”小组,以C++为基础开发新的程序设计语言,并将其命名为Oak。
1992.10:Green小组升格为First Person公司,他们将Oak的技术转移到Web上,并把Oak改名为Java。
1993~1994:Web在Internet上开始流行,致使Java得以迅速发展并获得成功。
1995.5:Sun Microsystems公司正式发表Java与HotJava产品。
1995.10:Netscape与Sun Microsystems合作,在Netscape Nevigator中支持Java。
1995.12:微软(Microsoft)IE加入支持Java的行列。
1996.2:Java Beta测试版结束,Java 1.0版正式诞生。
1997.2:Java发展至1.1版。
Java的第一个开发包JDK(Java Development Kit)发布。
1999.7:Java升级至1.2版。
2000.9:Java升级至1.3版。
2001.7:Java升级至1.4版。
2.答:软件可以理解为程序的另一种名称。
3.答:直接使用高级语言书写的程序代码称为源程序4.答:把用高级语言编写的源程序翻译成可执行(目标)程序的过程称为编译。
1、在下列说法中,选出最正确的一项是( )。
1.Java语言是以类为程序的基本单位的2.Java语言是不区分大小写的3.多行注释语句必须以//开始4.在Java语言中,类的源文件名和该类名可以不相同2、下列选项中不属于Java虚拟机的执行特点的一项是( )。
1.异常处理2.多线程3.动态链接4.简单易学3、下列选项中属于Java语言的垃圾回收机制的一项是( )。
1.语法检查2.堆栈溢出检查3.跨平台4.内存跟踪4、下列选项中属于 Java语言的安全性的一项是( )。
1.动态链接2.高性能3.访问权限4.内存跟踪5、下列选项中,属丁JVM执行过程中的特点的一项是( )。
1.编译执行2.多进程3.异常处理4.静态链接6、在Java语言中,那一个是最基本的元素?( )1.方法2.包3.对象4.接口7、如果有2个类A和B,A类基于 B类,则下列描述中正确的一个是( )。
1.这2个类都是子类或者超类2.A是B超类的子类3.B是A超类的子类4.这2个类郡是对方的子类8、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?( )1.abstract2.private3.protected4.不使用保留字9、编译一个定义了3个类和10个办法的Java源文件后,会产生多少个字符码文件,扩展名是什么?( )1.13个字节码文件,扩展名是.class2.1个字节码文件,扩展名是.class3.3个字节码文件,扩展名是.java4.3个字节码文件,扩展名是.class10、下列属于Java语言的特点的一项是( )。
1.运算符重载2.类间多重继承3.指针操作4.垃圾回收11、在创建Applet应用程序时,需要用户考虑的问题是( )。
1.窗口如何创建2.绘制的图形在窗口中的位置3.程序的框架4.事件处理12、于Java语言的内存回收机制,下列选项中最正确的一项是( )。
1.Java程序要求用户必须手工创建一个线程来释放内存2.Java程序允许用户使用指针来释放内存3.内存回收线程负责释放无用内存4.内存回收线程不能释放内存对象13、下列关于Java程序结构的描述中,不正确的一项是( )。
第1章一、选择题1.下列选项中,不属于Jav a语言特点的一项是(C )。
(A)分布式(B)安全性(C)编译执行(D)面向对象【解析】Java程序采用解释执行的方法。
在系统编译运行Java程序时,Java编译器将Jav a程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。
2.在Java语言中,( C )是最基本的元素?(A)方法(B)包(C)对象(D)接口【解析】构成Java程序的基本元素类(抽象的对象)。
3.编译一个定义了3个类和10个方法的Java源文件后,会产生(D )个字节码文件?扩展名是( D )?(A)13个字节码文件,扩展名为.class(B)1个字节码文件,扩展名为.class(C)3个字节码文件,扩展名为.java (D)3个字节码文件,扩展名为.class【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。
4.在创建Appl et应用程序时,需要用户考虑问题是( B )。
(A)窗口如何创建(B)绘制的图形在窗口中的位置(C)程序的框架(D)事件处理【解析】创建Appl et程序时必须继承系统类Appl et,而Apple t类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。
5.Java语言属于(B )种语言?(A)面向机器的语言(B)面向对象的语言(C)面向过程的语言(D)面向操作系统的语言【解析】Java语言是一种纯面向对象的语言。
6.下列关于Ap plica tion和A pple t程序的说法中不正确的一项是(B)。
(A)Applica tion使用解释器j ava.exe (B)Application不使用独立的解释器(C)Applet在浏览器中运行(D)Applet必须继承Java的A p plet类【解析】Application程序包含m ai n()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。
习题二一、问答题1.什么叫标识符?标识符的规则是什么?false是否可以作为标识符。
用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列成为标识符。
标识符由字母,下划线、美元符号和数字组成;第一个字符不能是数字,false 不是标识符。
2.什么叫关键字?true和false是否是关键字?请说出6个关键字。
关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
true 和 false 都不是关键字。
其他的关键字:class (类) implements(实现接口) interface(接口类) enum (枚举)extends(继承)abstract(抽象类或抽象方法)3.Java的基本数据类型都是什么?boolean,char,byte,short,int,long,float,double4.float型常量和double型常量在表示上有什么区别?float常量必须用F或f为后缀。
double常量用D或d为后缀。
但double常量允许省略后缀。
5.怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。
一维数组名.length 二维数组名.length二、选择题1.下列哪项字符序列可以做为标识符? CA. trueB. defaultC. _intD. good-class2.下列哪三项是正确的float变量的声明? ADFA. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;3.下列哪一项叙述是正确的? BA. char型字符在Unicode表中的位置范围是0至32767B. char型字符在Unicode表中的位置范围是0至65535C. char型字符在Unicode表中的位置范围是0至65536D. char型字符在Unicode表中的位置范围是-32768至32767 4.以下哪两项是正确的char型变量的声明? BEA. char ch = "R";B. char ch = '\\'C. char ch = 'ABCD';D. char ch = "ABCD";E. char ch = '\ucafe';F. char ch = '\u10100'5.下列程序中哪些【代码】是错误的?代码:2,3,4,5错public class E {public static void main(String args[]) {int x = 8;byte b = 127; //【代码1】b = x; //【代码2】x = 12L; //【代码3】long y=8.0; //【代码4】float z=6.89 ; //【代码5】}}6.对于int a[] = new int[3];下列哪个叙述是错误的? BA. a.length的值是3。