Java基础程序设计_课后习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
【思考题】
1、简述path环境变量的作用。
2、请说说你对JVM的理解。
【答案】
1、path环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。
2、JVM是Java Virtual Machine的缩写,全称是Java虚拟机。Java语言的一个非常重要的特性就是跨平台性,而Java虚拟机是实现这一特性的关键。不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
第二章
【思考题】
1、请简述&与&&的区别。
2、简述break、continue和return语句的区别。
【答案】
1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
当运算符“&”和“&&”的右边为表达式时,使用“&”进行运算,不论左边为true或
者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“&&”被称作短路与。
2、break语句:在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
continue语句:continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
return语句:return语句可以用于从当前的方法中退出,返回到调用该方法的语句处,继续执行。return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
第三章
【思考题】
1、什么是对象什么是类类和对象有什么关系
2、请简述this关键字的应用。
【答案】
1、对象(Object)是一个应用系统中用来描述客观事物的实体,是具有特定属性和行为(方法)的基本运行单位,是类的一个特定状态下的实例。对象可以是一个实体、一个名词、一个可以想象为有自己标识的任何东西,可以概况来说:万物皆对象。
类(Class)是Java代码的基本组织模块,是用以描述一组具有共同属性和行为对象的基本原型,是对这组对象的概况、归纳和抽象的表达。类是对象的模板,它定义了本类对象所拥有的属性集和行为集,是对一组具有相同属性和相同方法的对象的定义。
类和对象之间是抽象和具体的关系:类是一个模板,是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类必须通过对象才能使用,而对象中的属性和行为必须在类中定义。
2、this关键字的应用如下:
1)通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题。
2)通过this关键字可以调用本类中的成员方法。
3)可以在一个构造方法中使用“this([参数1,参数2…])”的形式调用本类中的其他构造方法。
第四章
【思考题】
1、请简述方法重写和方法重载的区别
2、请列举抽象类和接口的区别(至少5点)
【答案】
1、方法重写(Overriding)和方法重载(Overloading)是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类多态性的一种表现。
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中定义的方法,对它而言,父类中定义的方法如同被“屏蔽”了。
如果在同一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
2、抽象类和接口有如下区别:
1)抽象类可以有构造方法,接口中不能有构造方法。
2)抽象类中可以有普通成员变量,接口中没有普通成员变量。
3)抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有
非抽象的普通方法。
4)抽象类中的抽象方法的访问类型可以是public,protected和(默认类型),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5)抽象类中可以包含静态方法,接口中不能包含静态方法。
6)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认为public static final类型。
7)一个类可以实现多个接口,但只能继承一个抽象类。
第五章
【思考题】
1、请简述String类和StringBuffer类的区别。
2、请简述装箱和拆箱的概念。
【答案】
1、String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度可以随时修改。在操作字符串时,如果该字符串仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类。String类覆盖了Object类的equals()方法,而StringBuffer 类没有覆盖Object类的equals()方法。String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能。
2、包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型,反之,拆箱是指将引用数据类型的对象转为基本数据类型。