河南理工大学JAVA课后习题答案解析

河南理工大学JAVA课后习题答案解析
河南理工大学JAVA课后习题答案解析

第1章

(一)填空题

(1)C++是由C语言发展起来的,而Java是由Oak 软件发展起来的。

(2)随着Java语言的不断发展,Sun公司将Java细分为三个版本,三个版本的简称为J2SE 、J2EE 、J2ME 。

(3)Java本身的编译器是由语言编写的,运行系统的JVM(Java虚拟机)则是用语言实现的。

(4)多线程是Java程序的,它能同步共享数据,处理不同的事件。

(5)Java虚拟机执行过程的三个特点是:、、。

(6)Java的机制使得程序员从手工管理内存中解脱出来。

(二)选择题

(1)线程是Java程序的( C )机制。

A.检查

B.解释执行

C.并行 C.并发

(2)下面对于Java和C++的区别,描述不正确的是(C )。

A.Java没有指针而C++有

B.Java具有跨平台性而C++没有

C.Java支持多继承而C++只支持单继承

D.Java提供内存自动管理而C++不能

(3)Java作为编程语言,(D )特点是Java不具有的。

A.利用了面向对象的技术基础

B.可移植性

C.独立于硬件结构

D.多重继承

(4)Java和C++都是面向对象的语言,他们所具有的相同的特点是(下面都不对)。A.运算符重载 B.多重继承性 C.与硬件无关 D.指针操作

(5)Java语言具有许多优势和特点,以下(D )特点能保证软件的可移植性。

A.健壮性

B.安全性

C.跨平台

D.动态性

(6)在下列说法中错误的是( A )。

A.多行注释语句是以//开始

B.Java语言是区分大小写的

C.Java语言是以类为程序的基本单位的

D.Java程序有执行速度快的特点

(7)下面( B )不是Java虚拟机(JVM)执行过程的特点。

A.多线程

B.及时执行

C.动态连接

D.异常处理

(8)下面(D )不是Java语言的特点。

A.分布式计算

B.健壮性

C.跨平台

D.静态性

(9)下面不属于Java语言特点的是(C )。

A.动态性

B.解释执行

C.面向过程

D.多线程

(10)与Java语言安全性有关的一项是(B )。

A.并发执行

B.访问权限检查

C.封装性

D.异常处理

(11)下面不属于Java语言实现机制的是(D )。

A.并行机制

B.Java虚拟机

C.垃圾回收机制

D.代码安全检测

(12)下列属于Java语言垃圾回收机制的一项是( A )。

A.内存跟踪

B.异常处理

C.代码安全检测

D.健壮性

第2章

(一)填空题

(1)Java编译器将用Java语言编写的源程序编写成。

(2)Java程序基本上可以分成两类,即和。

(3)Java程序能在WWW浏览器上运行的是程序。

(4)Java源程序文件和字节码文件的扩展名分别为和。

(5)Java源程序的运行,至少要经过和两个阶段。

(6)与结构化编程语言不同,Java是一种完全且与平台无关的语言。

(二)选择题

(1)下列()注释风格在Java是错误的。

A./**comment**/

B./*comment*/

C./*comment

D.//comment

(2)Java是一种()语言。

A.编译型

B.解释型

C.混合型

D.以上都不是

(3)Java作为编程语言,()是最基本的元素。

A.对象

B.方法

C.包

D.接口

(4)JDK中,用于编译程序的工具是()。

A.Javac

B.Javap

C.Java

D.Javadoc

(5)下列描述中,不正确的是()。

A.一个Java源文件不允许有多个公共类

B.Java通过接口支持多重继承

C.Java不支持多线程

D.Java程序主要分为Application和Applet两类

(6)在创建Applet的应用程序时,用户应考虑的问题是()。

A.窗口如何创建

B.绘制的图形在窗口中的位置

C.程序的框架

D.事件处理

(7)下列选项中,不属于Java核心包的一项是()。

A.Javax.swing

B.Java.io

C.Java.util

https://www.360docs.net/doc/5715052856.html,ng

(8)JDK安装完成后,主要的命令,如Javac、Java等,都存放在根目录的()文件夹下。

A.bin

B.jre

C.doc

D.include

第3章

(一)填空题

(1)执行下列程序,输出的结果为。

Public class Teat1{

Public static void main(String [] args){

Int a=16

Int b=2

Do{

a/=b;

}while(a>3)

System.out.println(a);

} }

(2)执行下列程序,输出的结果为。

Public class Test2{

Public static void main(String args){

Int x=5;

Double y=22.5;

String s=”abc”;

S+=x+y;

System.out.println(c);

}

}

(3)在switch分支语句中的常量类型必须和表达式的类型,并且每个子句的常量值必

须互不相同。

(4)在使用分支语句编写程序的时候,表达式只能返回int、byte、、char类型的值。(5)在分支语句中break语句用于跳出语句。

(6)条件语句控制程序的流程是通过判断来进行的。

(7)分支语句包括和。

(8)循环语句的控制机制是。

(9)循环语句包括四部分:、、和。

(10)循环语句的三种循环结构:、、、。

(11)在Java程序中,do-while循环语句块至少被执行次。

(12)在for循环语句的迭代部分可以使用进行多个操作。

(二)选择题

(1)下面选项不是表达式语句的是()。

A.c++;

B.a=b+c;

C.a+=b;

D.System.out.println(“A”)

(2)下列说法不正确的是()。

A.表达式可以是其他表达式的操作数

B.单个常量或变量可以作为表达式

C.表达式和表达式语句是一样的

D.表达式的类型可以和操作数的类型不一样

(3)下面选项符合Java语言语法的语句是()。

A.int a=6; inst b=7;

B.int a=4, int b=2;

C.double a=b*/.8;

D.int a=9,b=1,c=8;a=b+c=a-b+c;

(4)执行下列程序,输出结果为()。

Public class B{

Public static void main(String [] args){

Int x=5;

Double y=10.5f;

Float z=(float)(x*y);

System.out.println(z);

}

}

A.50.0

B.52.0

C.50.5

D.52.5

(5)下列程序输出的结果为()。

Public class A{

Public static void main(String [] args){

Int a=3.b=4,c=5,d=6,e=7;

If(ad) System.out.println(“who”);

Else System.out.println(“why”);

}

}

A.why

B.who why

C.who

D.没结果

(6)下面选项不属于Java的流程控制结构的是()。

A.分支语句

B.循环语句

C.赋值语句(表达式结构)

D.递归

(7)下面不是合法的条件语句的一项是()。

A.if(a>b){…}

B.if(a=1){…}

C.if(a>b&&b>c){…}

D.if(3>2){…}

(8)执行下列代码之后,输出的结果为()。

Public class H{

Public static void main(String [] args){

Int sum=2,a=3,b=5,c=7;

While(a

While(b!=c){

sum+=b;

b++;

}

b=4;

a++;

}

System.out.println(sum);

}

}

A.23

B.24

C.25

D.26

(9)以下说法正确的是()。

Int a=10;

Int t=0;

do {t=a++;} while(t<=10);

A.一次都不执行

B.执行一次

C.执行两次

D.无限次执行

(10)下面语句中不是循环语句的是()。

A.for语句

B.while语句

C.switch语句

D.do-while语句

第4章

(一)判断题

(1)所谓对象,就是一组类的集合。()(2)方法的声明和方法调用的形式一样。()(3)类是对一组具有相同属性、表现相同行为的对象的描述。()(4)类成员只有三种访问控制级别:公有(public)、受保护(protected)和私有(private)。(5)Java语言中对象传递的是引用而不是值。()(6)所谓非静态的成员变量是指每一次创建对象都会分配一个存储空间来储存这个变量,每一个对象都拥有这个变量的存储空间,这个变量是属于类的,是类的变量。()(二)填空题

(1)面向对象的语言将客观世界都看成由各种对象所组成。具有共同特征和行为的对象组成类,类是变量和的集合。

(2)在面向对象方法中,类的实例被称为。

(3)在Java中,对象使用应遵循的原则是。

(4)在Java中,类描述的是具有相同属性的。

(5)在Java程序里,对象是类的一个。

(6)在Java程序结构里,最基本的概念是类和。

(7)引用static类型的方法时,可以使用做前缀,也可以使用做前缀。

(8)类中的方法是一个特殊的方法,其名称与类名相同。

(9)一个类主要包含两个成员要素:和。

(10)静态数据成员既可以通过来访问,也可以通过来访问。

(11)Java是面向对象的语言,对象是客观事物的,对象与之是一一对应的。

(12)定义一个类包括定义类头和定义两个部分。

(13)Java语言以为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。

(14)把对象实例化可以生成多个对象,使用运算符为对象分配内存空间。

(15)在Java中有一种叫做特殊方法,在程序中用它来对类成员进行初始化。

(三)选择题

(1)下面关于类变量和实例变量的叙述中描述错误的是()。

A.实例变量是类的成员变量

B.类变量第一次用到时被初始化,以后创建其他对象时就不再进行初始化

C.实例变量在每次创建对象时都被初始化

D.实例变量是用statiic修饰的成员变量

(2)下面()修饰符可以使一个类中的成员变量能被外部类调用。

A.public

B.protected

C.private

D.没有修饰符

(3)定义类中可以用来修饰类名的修饰符是()。

A.private

B.abstract

C.native

D.protected

(4)定义类头时,不可以放到类名前面的关键字是()。

A.public

B.abstract

C.final

D.static

(5)关于用关键字private修饰的成员变量,下列说法正确的是()。

A.可以被其他包的类访问

B.只能被同一个包中的其他类访问

C.只能被该类自身所访问或修改

D.可以被其他包中的该类的子类访问

(6)下面关于类的说法中,错误的是()。

A.类是经过抽象的共有属性的集合

B.类是Java程序的核心和本质

C.类是对象的模板,二类对象则是类的实例化结果

D.在面向对象的编程语言中,类不是一个独立的程序单位

(7)下面有关变量调用的语句正确的是()。

Public class Number{

Int a=2;

Float b=12;

Static int c=13;

Public static void main(string args[]){

Number one=new Number();}

}

A.one.a

B.Number.a

C.number.a

D.Number.one

(8)设Test为已定义的类,下面声明类Test对象a的语句正确的是()。

A.Test a=Test();

B.public Test a;

C.Test a=new Test();

D.public Test a=new Test(); (9)下面()不是对象的特征。

A.对象的行为

B.对象的状态

C.对象的局部变量

D.对象的标识符

(10)定义抽象类时所用到的关键字是()。

A.final

B.public

C.abstract

D.protected

(11)定义一个公有double型符号常量PI,下面的语句中正确的是()。

A.public final double PI;

B.public final static double PI=3.14159;

C.public final static double PI;

D.public static double PI=3.14159;

(12)有一个类B,下面为其构造方法的声明,正确的是()。

A.void B(int x){}

B.B(int x){}

C.void b(int x){}

D.b(int x){}

(13)为B类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形

式为()。

A.abstract void f()

B.public void f()

C.final void f()

D.static void f()

第6章

(一)判断题

(1)抽象类不能实例化。()(2)一个类中,只能拥有一个构造方法。()(3)内部类都是非静态的。()(4)接口中的所有方法都没有被实现。()(5)实现一个接口,则在类中一定要实现接口中的所有方法。()(6)在Java程序中,通过类的定义只能实现单一继承。()(7)语句“import java.applet.Applet;”中最后的Applet代表的是类(class)。()(二)填空题

(1)抽象方法只能存在于抽象类中,抽象方法用关键字来修饰。

(2)Java语言中是所有类的根。

(3)new是对象的操作符。

(4)我们在Java程序中,把关键字加到方法名称的前面,来实现子类调用父类的方法。(5)在Java程序里,同一类中重载的多个方法具有相同的方法名和的参数列表,重载的方法可以有不同的返回值类型。

(6)如果一个类中定义了几个名为method的方法,这些方法的参数都是整数,则这些方法的必须是不同的,这种现象称为方法的重载。

(7)Java程序引入接口的概念,是为了弥补只允许类的的缺憾。

(8)Java语言通过接口支持继承,使类继承具有更灵活的扩展性。

(9)接口是一种只含有抽象方法或的特殊抽象类。

(10)abstract方法与final并列修饰同一个类。

(11)每个applet程序必须有一个类是类的子类。

(12)在Java程序里,类之间实现共享属性的机制称为。

(13)在Java程序里,在一个类内部嵌套定义的类称为。

(14)一个类可以从它的父类中继承所有的属性和方法。采用这种方法可以提高软件的。(15)接口是包含常量和抽象方法的一个特殊的。

(16)在运行时,由Java解释器自动引入,而不用import语句引入的包是。

(17)一个子类一般比其基类封装的功能要。

(18)标记成的类的成员不能由该类的方法访问。

(19)如果一个类包含一个或多个abstract方法,它就是一个类。

(20)接口中的数据成员是,接口中没有什么方法,所有成员方法都是方法。

问答题

1.JDK安装完成后,如何设置环境变量?

2.什么是类?什么是对象?

3.线程的生命周期有哪几部分组成?各自的功能是什么?

4.简述Java应用程序与Applet小程序在开发过程中的区别。

5.用例子说明Java中基于Socket的C/S模式的服务器端的编程模式。(只要求写出必要的语句,其他语句用省略号表示)

6.Java实现多线程的方法有哪些?

7. 常用的Java开发平台有哪些?

8.如何定义方法?方法有哪些类型?

9.什么是线程和进程?两者的区别是什么?

程序设计

1.用循环结构编程实现显示输出下面由数字构成的图案。

9 8 7 6 5 4 3 2 1

8 7 6 5 4 3 2 1

7 6 5 4 3 2 1

6 5 4 3 2 1

5 4 3 2 1

4 3 2 1

3 2 1

2 1

1

2.定义一个实现常用数学运算的类MyMath,类中提供max()、min()、sum()与average()四个静态方法,每个方法带有三个整形参数,分别实现对三个整数求取最大值、最小值、和值及平均值的运算。在主类中对任意输入的三个整数,调用MyMath类的四种静态方法,求取结果并输出。

3. 创建一个Frame类型的窗口,在窗口中放置必要的标签、文本、列表框、单选按钮及复选框等组件,用来显示一名学生的个人基本信息。

4.求水仙花数:水仙花数是这样的一个三位正整数,此数各数字的立方之和恰好等于该数之值。例如153就是一个水仙花数:153=13+53+33。编程找出所有这样的水仙花数并输出到屏幕。

5.编写一个Application程序,程序中包括计算机类Computer,生成几个Computer类对象并输出相关信息。

Computer类具有品牌、产地、CPU类型、内存容量、硬盘大小、是否带有刻录光驱、购买日期、购买地点、价格等属性。

Computer类包括以下几类方法:

①两个构造方法;

②dispMessages()方法,该方法输出计算机对象的一些属性信息。

6.创建一个Frame类型的窗口,采用GridLayout布局,依照Windows的简单计算器的样式,在窗口中创建一个计算器的界面。

7.杨辉三角是中国古代著名的数学问题,其前几行的内容如下图所示:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

……

通过观察,不难发现,杨辉三角每一行中左右边界元素值均为1,而非边界元素的值等于其上一行对应位置元素值与上一行对应位置左邻元素值之和。

编程实现对任意输入的正整数n值(1≤n≤10),按上面的格式输出杨辉三角前n行的内容。

8.定义student类,其中包括四个私有变量(name、age、sex、score)、一个构造方法和show()方法。各成员的含义如下。

变量name为字符串类型String,用于存储学生的姓名。

变量age为int类型,用于存储学生的年龄。

变量sex为boolean类型,用于存储学生的性别,男生为false,女生为true。

变量score为double类型,用于存储学生的成绩。

构造方法包括四个参数,用于为变量(name、age、sex和score)赋值。

Show()方法无参数,用于输出变量(name、age、sex和score)的值。

第一部分 Java的类

1.请解释Java语言的跨平台特性。

参考答案:Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。他的意思就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM 解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,所以可以实现同样的应用在不同平台上都能运行。

2.请列举JAVA语言的主要特点

参考答案:JAVA语言有很多特点,主要包括①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。

3.请说明一个JAVA类中主要包含哪几个元素?并说明每种元素的作用。

参考答案:JAVA类中主要包含属性、方法、构造方法、块以及内部类。属性用来定义对象的数据;方法用来定义对象的行为;构造方法可以用来创建对象;块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;内部类作为类的一个成员存在,能够访问外部类的属性和方法。

4、请说明构造方法的作用和特征

参考答案:构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。

5、什么事方法重载(overload)?

参考答案:方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。

6、请列举Java语言中的权限访问修饰符,并说明每种权限的含义。

参考答案:Java语言中有四种权限访问修饰符,即public、protected、同包以及private,public表示公共权限,即任何包中都可以访问:protected表示受保护权限,即同包中可以访问,同包中的子类可以访问:同包权限是默认权限,即不显示指明权限修饰符的时候就是同包权限,表示只有同包中可以访问:private是私有权限,表示只能在本类中访问。

7、请列举Java语言中的八种基本数据类型,并说明每种数据类型的含义及长度。

参考答案:Java语言的八种基本数据类型有:byte字节型,8位长度:short

短整型,16位长度,int整型,32位长度:long长整型,64位长度:float单精度浮点型。32位长度:double双精度浮点型,64位长度:char字符型,16位长度:boolean型,表示逻辑值,有true和false两个值,分别表示真和假

8.什么叫引用类型,引用类型和基本数据类型有什么区别?

参考答案:Java语言中除了基本数据类型之外的类型,都称为引用类型。引用类型就是类的类型,所有的对象都是引用类型,包括数组对象。引用类型必须使用new调用构造方法进行赋值,引用类型的变量拥有自己的属性和方法,可以使用圆点调用自己的属性和方法。基本数据类型直接使用=号进行赋值,且没有自己的属性和方法,往往都在声明属性或方法时使用。

9.对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

参考答案:使用“=”赋值不一定每次都创建一个新的字符串,而是从“字符串实例池”中查找字符串。使用new进行赋值,则每次都创建一个新的字符串。

10.String类是一个“不可变类”,请解释“不可变类”的含义。

参考答案:所谓的不可变类,就是当字符串初始化后,就不能够被改变。

11.String类和StringBuffer类有什么区别?

参考答案:String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

12.StringBuffer和StringBuilder类有什么区别?

参考答案:StringBuffer是线程安全的字符串缓冲,而StringBuilder不是线程安全的。

13.包装器类型包括哪些类,有什么作用?

参考答案:包装类器包括Byte、Short、Integer、Long、Float、Double、Character、Boolean等类,主要用来对byte、short、integer、long、float、double、character、boolean这八种基本数据类型进行包装,使其称为引用类型。

14. 请说明Java语言中的值传递规则。

参考答案:基本数据类型传递的是值,引用类型传递的是引用,即虚地址。

15.使用static修饰属性或方法后,属性和方法有什么特征?

参考答案:static修饰属性或方法后,属性和方法不在属于某个特定的对象,而是所有共享,也可以说是static成员不依赖某个对象,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。

16.使用final修饰属性后,属性有什么特征?

参考答案:fianl修饰属性后,属性就成为一个常量。常量只要被赋值,就不能被改变。

17.请说明操作符==的作用。

参考答案:==可以用来比较基本类型或者引用类型。比较基本类型时,==用来比较二进制的值,比较引用类型时,用来比较对象的虚地址。

18请说明&&与&的区别和联系

参考答案:&&会发生短路问题,当第一个表达式的值为false时,将直接返回结果为false而不会判断第二个表达式的值。而&不会发生短路问题,即使第一个表达式的值是false,会判断第二个表达式的值。

19. break语句能在什么场景使用。

参考答案:break语句可以再循环体中使用,也可以在switch的case语句中使用。

20.for循环中的break语句和continue语句的使用。

参考答案:break可以用来中断循环,continue可以用来继续下一次循环。

21 请说明一个JAVA

解析:无论简单还是复杂的JAVA应用,都是由若干个类组成,所以类是JAVA应用的组成单位。了解

一个类中包含的主要元素能够对类有一个清晰的认识。一个类中往往会有五种元素,即属性、方法、构造方法、块以及内部类、其实块和内部类比较少见。参考答案:JAVA类中主要包含属性、方法、构造

存在,能够访问外部类的属性和方法

第二部分类之间的关系

1.用代码表示A类关联B类的情况。

参考答案:

Class A{

Private B b;

Public void setB(B b){

This.b=b;

}

}

2.请说明Java语言中数组的基本概念,数组的作用,以及数组的声明创建方式。

参考答案:数组时相同元素的集合,作为数据容器使用。声明创建一个int型数组,如下所示:int[]x=new int[3];其中3是数组的长度,该数组能够存储3个int型变量。

3.使用代码,创建一个长度为5的String型数组,并使用增强for循环迭代数组打印出数组中的元素。

参考答案:

String[] sArray = new String[5];

For(String s:sArray){

System.out.println(s);

}

4.说明Arrays类的作用。

参考答案:Arrays类是java.util包中的一个类,类中所有的方法都是static方法,这些方法都是数组对象的工具方法,能够对数组进行处理,如sort方法可以对数组元素进行排序

5.请使用简单代码展示A类依赖B类的含义。

解析:对于程序员来说,了解类和类之间的关系非常必要。依赖关系指的是一种瞬间的关系。如果A 依赖B,一般指的是A类的某个行为,需要B类对象作为参数。

参考答案:

Class A{

Public void f(B b)

}

6.请说明依赖关系和关联关系的区别。

解析:关联关系和依赖关系是非常常见的两种关系,二者的区别也很明显,程序员了解二者的区别能够更深入的理解面向对象的思想。

参考答案:依赖关系是一种瞬时关系,A依赖B,指的是A的某个行为的参数是B的类型,也就是说,A要想实现这个行为,必须依赖B的实例,A关联B,是一种长久的关系。关联关系的是B作为A的属性存在,只要实例化一个A的对象,就会为这个A的对象实例化一个B的对象,作为它的属性使用,可以在

A中任何需要使用B的地方使用B。

7.继承有什么作用,Java语言中的继承有什么特点?

解析:继承是面向对象语言的一大特征,主要作用是重复使用,子类通过继承父类,能够重复使用父类的属性和方法。指的注意的是,有两个策略都可使实现重复使用,一个是关联,一个是继承,实际编程中,关联用的更多。因为子类继承父类后,相当于父类中的细节将暴露给子类。初级程序员一定不要随意使用继承,避免滥用继承。

参考答案:继承主要为了能够重复使用父类中的成员。Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类。

8、什么是方法覆盖(override)?并说明方法覆盖与方法重载(overioad)的区别。

解析:方法覆盖是一个非常重要的概念,是多态性的一个体现。方法覆盖发生再去爱继承关系中,当子类需要修改从父类继承到某个方法的方法体时,就可以声明一个父类同名同参数同返回值的方法,这样就对父类中的那个方法进行了覆盖,子类对象调用该方法时将自动绑定到子类中的方法。API中很多类中都进行了方法覆盖,如String类中的toString方法,就覆盖了父类Object中的toString方法。

参考答案:覆盖是发生在继承关系的子类中,当子类要修改从父类继承的某个方法的方法体时,就可以在子类中声明一个与父类同名、同参数并且同返回值类型的方法,这就是方法覆盖。而重载与继承没有关系,指的是在一个类中可以同时声明多个同名但不同参数的方法,称为重载。

9、请说明什么是抽象类?抽象类有什么作用?

解析:初级程序员往往不需要自己创建抽象类,但是必须了解抽象类的概念,并且会使用抽象类。抽象类往往是设计阶段的概念,用来定义多个子类的模板,一些具体的实现可以在子类中进行。初级程序员往往需要会创建子类继承抽象类,实现抽象类中的方法。在API 中,抽象类比比皆是。

参考答案:抽象类是不能实例化的类,使用abstract修饰。抽象类往往用来做父类使用,定义一些子类的共同属性或行为。

10、请说明抽象方法的含义,并说明抽象类与抽象方法的关系。

解析:抽象方法都是在抽象类中定义的,是用来定义子类what to do的策略,而具体的how to do都在子类中实现。

参考答案:抽象方法是没有办法体的方法,使用abstract修饰。抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。

11、super关键字的两种用法。

解析:使用一些IDE生成代码时,常常会在构造方法中见到super这个关键字。顾名思义,super是和父类有关的一个关键字,熟悉super的用法对熟练掌握继承很有必要。

参考答案:如super():表示调用父类中的每一参考的构造方法:又如super(10);表示调用父类中的具有一个整型参数的构造方法。第二种用法是在子类中调用父类中的成员,如super.f();意思是调用父类中的f()方法。

12、final类与final方法有什么作用?

解析:final修饰符是一个用途非常广泛的修饰符,可以修饰类,方法,以及属性。

参考答案:final类是不能够被继承的类,称为终极类,如String类就是final类,不能有子类。final修饰方法后,是终极方法,不能被子类覆盖,但是可以被子类继承使用。

13.什么是多态函数?多态函数有什么用?

解析:多态性是面向对象语言的的一大特征,重载,覆盖,多态参数是多态性的一种表现形式。多态

参数处处可见,例如某方法f(Object o),这个方法的参数类型是Object,使用该方法时,只要传递给f的单数类型是Object即可。也就是说,Object类的任意参数可以传递给f方法。这就是多态参数。意思是对外形式都一样,都是Object,具体实现可以是这个类型的任意子类,这就使得该方法比较灵活,Object类即使有了新的子类,却不需要修改,就能直接作用到那个子类。了解多态参数的含义和使用,对于Java的使用特别关键。

参考答案:多态函数就是参数的类型是某个父类类型,具体为这个参数赋值的不同以使用该父类的任意子类的对象。使用多态参数,可以使程序的扩展性更好,即使%%%%的子类方法不需要任何修改,就能接受子类类型进行处理。

14.Object类有什么特点?

解析:Object类是一个非常重要的类,是所有类的父类,包括数组在内,也就是对一个Java类,不管是API中定义的,还是自定义的类,都直接或间接的继承了Object类。所以,如果有一个方法f(Object o),那么可以传递给这个方法任意一个类的对象,包括%%%%。因为所有对象都可以说是Object类型。

参考答案:Object类是多有类的直接或间接的父类。

15.Object类中的toString方法有什么用?

解析:Object类是所有类的父类,所以Object类中的方法是所有类都默认具备的。类中的toString方法可以将任意一个对象作为字符串返回, API中很多类已经覆盖了这个方法,将其返回值的格式进行了自定义,如String类中的方法已经覆盖为返回字符串的字符序列。toString方法在很多场合被自动调用,例如打印一个对象时,就自动调用该对象的toString 方法。

参考答案:toString方法可以把对象作为字符串返回。

16.Object类中的equals方法和hashCode方法。

解析:在Object类中,equals方法比较对象的引用值,也就是只有物理上是同一对象的两个引用,在使用equals方法返回true。hashCode方法返回一个对象的内在地址的十六进制值。由于Object类是所有类的父类,所以任意类中都拥有这两个方法,并都可以进行覆盖。尤其是操作Set,Map对象时集合元素类的equals方法和hashCode方法非常必要。

参考答案:Oject类中的equals方法用来比较两个引用值,hashCode用来返回引用的内地址的十六进制数值。在Set以及Map集合中,判断两个元素是否重复时,往往需要使用这两个方法。这两个方法往往被子类覆盖,覆盖的规则是:如果存在x和y两个对象,调用x.equals(y)返回true时,那么调用hashCode 方法的返回值也该相同;如果x.equals(y)返回false时,那么调用hashCode方法返回的值可能相同,也可能不同。

17.接口有什么特点,与抽象类有什么区别?

解析:接口的概念是一个设计层面的概念,初级程序员往往不会自己定义接口,但是会使用接口,理解接口的概念非常必要。接口定义了实现类的规范,即what to do的部分,所有实现类必须按照这个规范进行实现。

参考答案:接口的特点是不能定义变量,而且所有方法都是抽象方法。而抽象类中可以有变量,也不强

制必须有抽象方法。

18.类继承父类与类实现接口,有什么区别?

解析:类继承父类与类实现接口,本质上其实是一样的。都是将父类或者接口作为模板,在这个模板上进行扩展或者重写。程序员在实际编程中,常常需要继承父类或者实现接口。

参考答案:类继承父类只是单继承,也就是一个子类最多只有一个父类;而类实现接口可以多实现,就是一个子类可以同时实现多个接口,并覆盖所有接口中的所有抽象方法。

https://www.360docs.net/doc/5715052856.html,parable接口有什么作用

解析:comparable接口是在实际编程中常常使用的接口,该接口定义了comareTo(Object o)方法,用来定义对象的比较逻辑。这个接口常常在其他API中会强制使用,例如Arrays类的sort(Object[])方法,就强制数组元素必须实现Comparable接口,与这个接口类似的另外一个接口是Comparator。

参考答案:Comparable接口定义了compareTo(Object o)方法,可以用来实现对象的比较逻辑,这个接口常常在其他API中强制使用,用来规范对象的比较逻辑

第五部分其他特性

32、抽象类与接口?

答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。

35、面向对象的特征有哪些方面

答:主要有以下四方面:

1.抽象:

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4. 多态性:

多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

53、静态变量和实例变量的区别?

答:static i = 10; //常量 class A a; a.i =10;//可变

java课后题答案

第1章Java概述 1.编译java application源程序文件将产生相应的字节码文件,这些字节码文件别 的扩展名为、java 2.执行一个java程序fristapp的方法就是运行java fristapp 3.main()方法的返回类型就是void 4.在java代码中,public static void main方法的参数描述正确的就是string args 【】,string【】args 5.内存的回收程序负责释放无用内存√ 6.java体系主要分为java ME,Java SE,JavaEE三大块 第2章Java基础 1.Java语言中,下列标识符错误的就是40name 2.java变量中,以下不属于引用类型的数据类型就是字符型 3.double d=5、3E12 × 4.C 5.A 6.for循环的一般形式为;for(初值;终值;增量),以下对for循环的叙述,正确 的就是初值与增量都就是赋值语句,终值就是条件判断语句 7.当输入下面选项中3值时,将会输出default 8.下面哪种方法能够支持javadoc命令/**…*/ 9.下面声明一个string类型的数组正确的就是string str[] 10.下面定义一个整型数组,不合法的就是int[][]array=new int[][4]; 11.给定代码;。。。。。下面叙述正确的就是输出的结果为:0 12.java语言规定,标示符只能由字母,数字美元符$与下划线租成,并且第一个 字符不能就是数字;java就是区分大小写的。 13.表达式1/2*3的计算结果就是0;设x=2,则表达式(x++)/3的值就是0 14.数组的长度可以用其属性lengt h获得;创建一个数组对象可以使用new关键 字创建 第3章面向对象基础 1.在java中引用对象变量与对象间有什么关系?引用变量就是指向对象的一个指针 2.对象就是面向对象技术的核心所在,在面向对象程序设计中,对象就是累的抽象× 3.构造方法何时被调用?创建对象时 4.A,B,D 5.在java语言中在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2、在类c中 要使用类a的方法与类b的方法b,需要选择import p1、*; import p1、p2,*;

JAVA课后练习题

P37 3.编程题 (1)球体的体积计算公式为4/3πr3,编写一个程序输入半径,求体积。 import javax.swing.*; public class volume{ public static void main(String args[]){ String s=JOptionPane.showInputDialog("请输入半径:"); double r=Double.parseDouble(s); double volume=Math.PI*r*r*r*4/3; "圆的体积=%.3f",volume); } } (2) 输入矩形的长和宽,计算矩形的周长和面积。 import javax.swing.*; public class jx{ public static void main(String args[]){ String a=JOptionPane.showInputDialog("请输入长:"); double length=Double.parseDouble(a); String b=JOptionPane.showInputDialog("请输入宽:"); double wide=Double.parseDouble(b); double area=length*wide; double c=length*2+wide*2; "矩形面积=%.3f",area); "矩形周长=%.3f",c); } } (3)从键盘输入摄氏温度C,计算华氏温度F的值并输出.其转换公式如下: F=(9/5) C+32 import javax.swing.*; public class Test3 { public static void main(String args[]) { String x= JOptionPane.showInputDialog("请输入摄氏温度:"); double r= Double.parseDouble(x); double F= (9/5)*r+32; "华氏温度=%f",F); }

JAVA练习题含答案-answers to practice 2

Multiple Choice 1)Which operator is used to concatenate two strings? (a)+ (b)– (c)* (d)/ Answer: A (see page 35) 2)Which operator returns the remainder of integer division? (a)% (b)/ (c)* (d)none of the above Answer: A (see page 26) 3)What is the value of the variable c in the statements that follow? String phrase = "Make hay while the sun is shining."; char c = phrase.charAt(10); (a)w (b)h (c)i (d)None of the above Answer: B (see page 40) 4)The escape sequence the represents the new-line character is: (a)\r (b)\t (c)\n (d)\\ Answer: C (see page 43) 5)The syntax that declares a Java named constant named SALES_TAX is: (a)double SALES_TAX = 7.50; (b)public double SALES_TAX = 7.50; (c)public static double SALES_TAX = 7.50; (d)public static final double SALES_TAX = 7.50; Answer: D (see page 47)

java入门到精通课后练习和答案(1-6章)

1.9练一练 一.填空题 1.运行编译后的class文件,需要输入命令java 2.JVM是指java虚拟器 3.Java程序源文件扩展名为java 二,简答题 1.简述java语言的特点 (1)简洁有效(2)可移植性(3)面向对象(4)解释型(5)适合分布式计算 2.java虚拟器的作用是什么? 答:保证编译后的java代码能够在安装java虚拟器的系统上运行。 2.5练一练 一.填空题 1.java程序是从main()处开始运行的。 2.在java中,多行注释的开始和结束标记分别为/*和*\。 3.声明1个名称“count”的整形变量的语句为int count; 4.Java程序中的标识符可由字母、数字、下划线和美元符号组成,但不能以数字开头,不能保留java保留的关键字。 二、简答题 1.简述设置变量的3种方法。 (1)在声明前设置 (2)在声明后设置 (3)在任何位置声明设置 2.简述提高程序可读性的两种方法。 *添加注释*使用缩进方法编写 3.4练一练 1.Eclipse是IBM花巨资开发的IDE集成开发环境(Intergrated Development Environment)。 2.【源代码】菜单中所包含的命令都是和代码编写相关的,主要用于源代码工作。 3.选择【文件】>【新建】>【项目...】命令,打开【新建项目】对话框。 二.简答题 1.Eclipse提供了哪两种程序调试方式? *java应用程序*调试 2.取消Eclipse启动时出现的设置工作空间的对话框的具体方法是什么? Eclipse启动时在【设置工作空间】的对话框中选中【将此值用作缺省值并且不再询问】复选框。 4.3练一练 1.变量是利用声明的方式,将内存中的某个块保留下来以供程序使用 2.常量就是固定不变的量,一旦被定义,它的值就不能再被改变。 3.当常量用于一个类的成员变量时,必须给常量赋值,否则会出现编译错误。 二.简答题 1.简述变量的命名规则 Java程序中的标识符可由字母、数字、下划线和美元符号组成,但不能以数字开头,不能保留java保留的关键字。 2.按作用范围划分,变量是如何划分的?

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工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、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;

JAVA实用教程(第三版)课后习题答案

第一章Java语言概述 2.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确 3.java应用程序的主类必须含有怎样的方法? 答:含有main方法 4。“java应用程序必须有一个类是public类”这句话正确吗? 答;不正确,只能有一个public类 5。“java Applet程序的主类必须是public类”这句话正确吗? 答:正确,因为java Applet主类必须是Applet类的子类并且是public 的类 6。请叙述java源程序的命名规则。 答:与public的类同名。 7。源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.面向对象的程序设计语言有那些基本特征? 答:封装;继承;多态性。 9.在Java程序中有多个类文件时,用Java命令应该运行那个类?答:具有main方法的类 第二章基本数据类型和数组 4。下列哪些语句是错的?

Int x=120; Byte b=120; b=x; 答:B=x;错应为b=(byte)x 5。下列哪些语句是错的? 答:y=d;错,应y=(float)d 6。下列两个语句是等价的吗? Char x=97; Char x=…a?; 答:是等价的。 7。下列system.out.printf语句输出结果是什么? Int a=97; Byte b1=(byte)128; Byte b2=(byte)(-129); System.out.printf(“%c,%d,%d”,a,b1,b2); 如果输出语句改为: System.out.printf(“%d,%d,%d”,a,b1,b2); 输出什么? 答:输出a ,-128,127 修改后输出97,-128,127 8.数组是基本数据类型吗?怎样获取数组的长度? 答:不是基本数据类型,是复合数据类型。可以通过:数组名.length

软件工程实践者的研究方法(中文版第七版)课后习题答案

作业答案。 2.1 a.设计者对于用户要问的问题: 项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些? b. 用户对设计者应该问的问题: 目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问? 还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问? 用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样) 需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。 2.7 详细描述三个适合用于瀑布模型的软件项目。 (要求学生不仅仅列出项目的名称,而要说明为什么适合) 瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。图书馆系统、销售管理系统都是。 3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。 结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。 特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征: 1)本地解析HTML页面 2)展示HTML页面 3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

java课后习题及答案

第一章JA V A语言概论 一、选择题 1. 下列不属于java语言特点的是:B A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是:C A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是:B A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的A A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是A A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成B A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指A A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是C A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的A

java课后习题

第一章 (5)上机练习JAVA应用程序和小程序的运行方法。 第二章 (5)编写一个小程序(Applet)要求输入两个整数,在状态条显示较大的数,紧跟着显示“is larger”。若二者相等,显示“the two numbers are equal!”。 (6)编写一个模拟同时掷两个骰子的程序。要用Math.random()模拟产生第一个骰子,然后再产生第二个骰子,将两个结果相加,相加的和等于7的可能性最大,等于2和12的可能性最小。程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7,故在3600次掷骰子的结果中应有1/6的可能性是7。图2-2表示出了出现36种情况的组合。 1 2 3 4 5 6 图2-2 掷骰子的各种情况 第三章 (5)编程:编写一个applet,输入一个数,判断输入的这个数是否为回文数。所谓回文数就是从左向右看和从右向左看都一样。例如,121、13431都是回文数,而12345不是回文数。 (6)编写一个applet,采用下列公式计算e^x的值:e^x=1+(e^1)/1!+(e^2)/2!+……+(e^n)/n!。从键盘输入x和n,编程计算e^x的值。 (7)编程:产生20个int类型的随机数,针对每个数使用if-then-else判断它是大于、小于或等于下一个数(注意:最后一个数不参与比较)。 第四章 (3)定义一个圆类circle,它有一个变量radius(半径)。从键盘输出数据,通过构造函数的参数传递给radius,编程计算并输出圆的周长和面积。但是,必须确保输入的数据不为负数。 (4)定义一个整形集合类integerSet。这种类型的对象可以储存10个20~80之间的整数,

《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十七章练习题答案

《Java语言程序设计(基础篇)》(第10版梁勇著) 第十七章练习题答案 17.1 import java.io.*; import java.util.*; public class Exercise17_01 { public static void main(String[] args) throws IOException { try ( Formatter output = new Formatter(new FileOutputStream("Exercise17_01.txt", true)); ) { for (int i = 0; i < 100; i++) output.format("%d", (int)(Math.random() * 100000)); } } } 17.2 import java.io.*; public class Exercise17_02 { public static void main(String[] args) throws IOException { try ( DataOutputStream output = new DataOutputStream(new FileOutputStream("Exercise17_02.dat", true)); ) { for (int i = 0; i < 100; i++) output.writeInt((int)(Math.random() * 100000)); } System.out.println("Done"); } } 17.3 import java.io.*;

java练习题答案

第1章java语言概述习题 一、填空题 1、面向对象程序的主要特征:继承,__封装___,___多态 _____。 2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是 因为它使代码可以__重用或复用___. 3、java语言中,为将源代码翻译成 __字节码__文件时产生的错误称为编译错误, 而将程序在运行中产生的错误称为运行错误。 4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java 是java语言中的解释执行器,基本语法是:java[选项]___类名___. 5、java语言的主要贡献者是谁James gosling 二、[ 三、单选题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文 件的扩展名为( B)。 A、java B、.class C、html D、.exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首 部, 以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) ) D、public void main(String arg[]) 三、判断 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 四、问答题 1、编写、运行java程序需要经过哪些主要步骤 答:1.编写源文件,扩展名必须是.java 2.编写java源程序,使用java编译器编写源文件,得到字节码文件 ~ 3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字 节码文件。 2、阅读下列java源代码文件,并回答问题 public class Speak{ void speakHello(){ "I'm glad to meet you"); } } … class Xiti8{

操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2 资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率消耗,内存资源 1.3 在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4 在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5 描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而且I/O 可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O 也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6 集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU 组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

《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工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言

C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、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的区别。

java语言程序设计课后习题答案解析

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1= =str2); //false String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1= =str2); //false 因此自符串如果是对内容进行比较,使用equals方法比较可靠。 String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1.equals(str2)); //true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true 5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。n的每位数字是1,6,7,8。若n为任意值呢? 法一: public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; int count; thousand=n/1000; count=n%1000; hundred=count/100; count=count%100; decimal=count/10; count=count%10; unit=count; System.out.println("1678包含的数 字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } //如果n为任意值 import java.io.*; public class Exercise51{ public static void main(String[] args) throws IOException{ System.out.print("请输入一个整数:"); InputStreamReader isStream=new InputStreamReader(System.in); BufferedReader bfReader=new BufferedReader(isStream); String input=bfReader.readLine(); int length=input.length()-1; int n=new

java课后习题

Java编程习题 输出一行信息“This is a c program” 从键盘输入两个数,求较大者并输出 输入a,b,c三个值,输出其中最大者 求5! 从键盘输入一个大写字母,要求改用小写字母输出 写程序,判断某一年是否为闰年 求1+2+3+…+100的和 求2+4+6+…+100的和 求1+3+5+…+99的和 求1-/2+/3-/4+…+1/99-1/100的和 求Fibonacci数列前40个数,每行输出4个数 从键盘输入一个数,判断该数是否为素数 求100~200之间的全部素数 用冒泡法对10个数排序(由小到大) 有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号输出下列图形 * *** ***** 求一个3*3的整型矩阵主对角线元素之和。 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点 求10!,要求用递归实现 用选择法对数组中10个整数按由小到大排序 计算一个正整数的各位数字之和与之积。 编写一程序,从键盘输入一个5位数,判断该数是不是回文数。回文数是指个位数字与万位数字相同,十位数字与千位数字相同,例如12321是回文数。 求1+(1+2)+(1+2+3)+···+(1+2+3+···+10)的值 编程,输入一正整数,找出该数的各位数字中最大的一个数字。 打印以下图案: ***** ***** ***** ***** ***** 按以下规律打印10行字符。 * # # % % % * * * * # # # # #

% % % % % % ... … 请编写一个程序,输出1~1000之间的即被3整除,又被5整除的整数,并输出这样的数的个数。输出格式为每行输出5个数,数与数之间用逗号隔开,行尾没有逗号,在新的一行输出个数。 请编写一个程序,判断键盘输入的字符是否为数字,若是在下一行输出yes,若不是在下一行输出no,一次只能输入一个字符,总共可输入10次,结果在键入当前字符后立即输出。 目前人民币1元以下的币有1角、2角、5角三种,请计算出破开1元钱的方法有多少种。输出格式为一种方法一行,每行输出:1角n个、2角m个、5角j个。最后在新的一行中输出:Total=x,输出总计有多少种方法。 小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?输出:Total=n。 输出a~z字符的ASCII编码 输入一个2~99之间的数据,判断该数据是否是一个同构数。同构数是指该数出现在其平方数的右边,例如5和25是同构数。 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3 两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单。 求数列1,1,1,3,5,9,17,31,。。。的前15个数,此数列的规律是从第4个数开始,每个数等于前3个数的和。 请编写程序,删除数组tt中所有值为x的元素,输出执行删除操作前、后的数组。要求:数组tt中共有10个元素,且通过初始化获得初值;删除数据x的值由用户键盘输入。 从键盘输入一个4*5的矩阵,输出该矩阵的转置矩阵。 编写一程序,将两个字符串连接起来,不要用strcat函数。 输出以下的杨辉三角形(要求输出10行) 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 。。。。。。。。。。。。。。。。 编程输出如下所示的上半三角矩阵。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 请编写程序,将5*5的二维整型数组w中两条对角线上的元素乘以整数m,输出原始数组

Java程序的设计课后复习题参考答案

高等院校计算机基础教育规划教材《Java 程序设计》课后习题参考答案 ――大学 习题1参考答案 1.Java语言的特点有哪些? 答:参考1.1.2 防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。因此,如果要求类成员部的一致性,就应该通过类本身的方法来处理。 这种数据隐藏技术就是面向对象的重要特性——封装。它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。 2.简述封装的优点。 答:封装是一个简单而有效的思想,优点有:(1)模块化,对成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。 面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。 3.Java的基本工具有哪些? (1)javac 编译器 (2)java 解释器 (3)jdb Java 语言调试器 (4)javadoc API文档管理器 (5)javah 头文件生成器 (6)appletviewer 小应用程序浏览器 (7)javap 类文件反汇编器 4.Java开发环境是如何配置的? 答:对于Windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编辑系统变量]窗口的[变量值]框后加上上面两条语句。

《Java基础入门》_课后习题答案解析__1~

第1章 Java开发入门 一、填空题 1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程 序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java程序!"); } } 第2章 Java编程基础 一、填空题 1、 class 2、 true和false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、56 二、判断题 1、错 2、对 3、错 4、对 5、错

Java2实用教程课后复习题参考答案

Java2 实用教程(第三版) 课后习题参考答案 第1 章Java 入门 1. 开发与运行Jav a 程序需要经过哪些主要步骤和过程? 答:( 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. Jav a 程序是由什么组成的?一个程序中必须要有public 类吗?Jav a 源文件的命名规则是怎样的?答:①Java 程序由类组成。 ②应用程序可以没有public 类;小应用程序一定有一个类是public 类(主类)。 ③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java; 有多个类时,如果有public 类(最多一个),源文件名与public 类的类 名相同,拓展名是.java;没有public 类,源文件名与任何一个类的类名 相同即可,拓展名为.java。 小应用程序:源文件名与主类的类名相同,拓展名是.java。 4. 在运行小程序的HTM L 文件中可以使用codebas e 属性指定小程序的字节码所驻留的目录。如果不使用 codebas e 属性,小程序的字节码文件必须和运行它的HTM L 文件在同一目录中。编写一个小程序并将小程 序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTM L 文件(注意其中的codebas e 属性): 存放在另一个目录中。 答:以书中小应用程序为例进行说明: ①编写Java 小应用程序源代码 import java.applet.*; import java.awt.*; public class Boy extends Applet {

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application 的入口方法main()的检验: main()方法的参数名就是否可以改变? main()方法的参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法的参数名可以改变。(2)main()方法的参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译不?如果能编译,能运行不? 参考答案:当一个程序没有main()方法就是,就是可以编译通过的,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? byte i = 127; byte j = 128; long l1 = 999999; long l2 = 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与long l2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 = 3、5; float f2 = 3、5f; 参考答案:java中浮点型的数据在不声明的情况下都就是double型的,如果要表示一个数据就是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型的,但就是int类型无法转换为char类型的;(2)int 可以转换为double类型的,但就是double类型无法转换为int 类型的。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1) 4+5 == 6*2 (2) (4=5)/6 (3) 9%2*7/3>17 (4) (4+5)<=6/3 (5) 4+5%3!=7-2 (6) 4+5/6>=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法的。 7、下列()就是合法的Java标识符。 (1) Counter1 (2) $index, (3) name-7 (4) _byte (5) larray (6) 2i

相关文档
最新文档