Java期末考试题与答案Word文档格式.docx
- 文档编号:19409415
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:10
- 大小:20.06KB
Java期末考试题与答案Word文档格式.docx
《Java期末考试题与答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java期末考试题与答案Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
XX禁止读写文件;
许多安全特性相继不断的被加入Java中。
(5)解释的
Java代码是解释执行的,我们使用Java编译器将Java代码编译成字节码,这是一种中间代码,然后由Java解释器解释执行。
而C++程序是编译执行的,C++程序代码被编译为本地机器指令,然后执行。
(6)与平台无关的
Java作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。
只要有Java运行系统的机器都能执行这种中间代码。
Java源程序被编译成一种与机器无关的字节码格式,在Java虚拟机上运行。
(7)多线程的
Java语言的一个重要特性就是在语言级支持多线程的程序设计。
多线程就好像我们做一张桌子,如果你一个人完成这张桌子—就好像单线程,那么你需要先做桌面,做完桌面后,再做4个桌子腿,如果现在有5个人来做桌子—在程序中开辟5个线程,其中1个人做桌面,另外4个人分别做4个桌子腿,那么这两种方式效率的高低,相信大家都能区分出来。
(8)动态的
Java的动态特性是其面向对象设计方法的扩展。
它允许程序动态地装入运行过程中所需要的类。
在C++程序设计过程中,每当在类中增加一个实例变量或一个成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。
Java从以下几个方面采取措施来解决这个问题。
a)Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下来,传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。
b)一个在存储器中生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定。
这样,对类中的变量和方法进行更新时就不至于影响现存的代码。
c)解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。
在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。
如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。
d)Java还简化了使用一个升级的或全新协议的方法。
如果你的系统运行Java程序时遇到了不知怎样处理的程序,Java能自动下载你所需要的功能程序。
2.什么是java虚拟机?
Java虚拟机JVM(JavaVirtualMachine)在JAVA编程里面具有非常重要的地位。
约相当于JAVA运行环境JRE。
JAVA虚拟机是在真实机器中用软件模拟实现的一种想象机器,它为不同的硬件平台提供了一种编译JAVA技术代码的规范,该规范使JAVA软件独立于平台。
JVM对下列各项做出了定义:
指令集,寄存器,类文件格式,栈,垃圾收集堆,存储区。
Java虚拟机的功能:
(1)通过ClassLoader寻找和装载Class文件
(2)解释字节码成为指令并执行,提供Class文件的运行环境
(3)进行运行期间垃圾回收
(4)提供与硬件交互的平台
JAVA虚拟机是JAVA平台无关的保障。
正是因为有虚拟机这中间层,JAVA才能够实现与平台无关。
虚拟机就好比是一个JAVA运行的基本平台,所有的JAVA程序都运行在虚拟机上。
所有与平台有关的东西都是由虚拟机去处理。
3.什么是方法重载(Overloading)与方法覆盖(Overriding)?
(1)方法重载(Overloading):
方法重载是指同名的方法在不同的地方具有多种含义。
方法重载使得在类中可以存在方法名相同的多个方法,但方法的原型不能完全相同,由方法的参数不同来决定所使用的是哪个方法。
方法的原型包括方法名和方法参数类型。
(2)方法覆盖(overriding)
方法覆盖也叫方法重写,是指方法的含义被重新编写后的方法所替代。
对于方法覆盖,子类可以重新实现父类的某些方法,并具有自己的特征。
这样,覆盖隐藏了父类的方法,使子类可以具有自己的实现方法。
子类覆盖父类的方法时,子类中方法的访问权限不能低于父类中该方法的访问权限
4.java中equals和“==”的区别?
使用“====”比较基本类型字段,使用equals方法比较对象字段。
====操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同;
equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
显然,当equals为true时,====不一定为true。
5.什么是抽象类?
什么是接口?
一般称含有抽象方法的类称为抽象类。
抽象类是不能被实例化的类,用abstract修饰。
接口是一种与类相似的结构,但接口不是类,而是一组对类的要求,这些类要与接口一致一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。
6.什么是多态?
一个对象变量可以指向多种实际类型对象的现象被称为“多态”(polymorphism)。
7.异常的分类?
它们的区别是什么?
Error:
称为错误,由Java虚拟机生成并抛出,包括动态连接失败、虚拟机错误等,程序对其不作处理。
Exception:
所以异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用
户显式的声明或捕获。
RuntimeException:
一类特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序的可读性和运行效率影响很大。
因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。
8.什么是流?
流(stream)是输入和输出设备的一种抽象表示,这些设备是数据源或数据终点。
可以象流中写入数据,也可以从流中读出数据。
可以把流想象为流入自己程序或从自己程序中流出的字节序列。
当把数据写入流时,该流称为输出流。
输出流可以通往任何可以传输字节序列的设备,例如硬盘上的文件,或连接用户系统至远程系统的电话线路。
输出流也可以通向显示器,但这会大大限制其真正的功能。
二、程序设计题(共4个题,每题15分,共60分)
1、输出1到100以内的前10个质数。
publicclassZhishu{
publicstaticvoidmain(Stringargs[])
{
System.out.println("
1到100以内的前10个质数:
"
);
ints,i,j=0;
for(s=2;
s<
=100;
s++)
{
for(i=2;
i<
=s/2;
i++)
if(s%i==0)
break;
}
if(i>
s/2)
j++;
if(j<
=10)
System.out.println("
第"
+j+"
个:
+s);
}
2、计算并输出result=1!
+2!
+3!
+…+10!
的结果。
publicclassSum{
result=1!
ints=0,t=1;
intn;
for(n=1;
n<
=20;
n++)
t=t*n;
s=s+t;
}
result="
+s);
3、定义一个长方形类,该类具有长和宽两种属性,并具有相应的构造方法、属性访问方法和计算周长和面积的方法,要求输出长是5宽是4的长方形的面积和周长。
publicclassRectangle{
privatedoublelength;
//长
privatedoublewidth;
//宽
publicRectangle(){}//无参数的构造方法
publicRectangle(doublelength,doublewidth)
this.length=length;
this.width=width;
}//带参数的构造方法
publicvoidsetLength(doublelLength)
length=lLength;
publicvoidsetWidth(doublewWidth)
width=wWidth;
publicdoublegetLength()
returnlength;
publicdoublegetWidth()
returnwidth;
publicdoublearea(doublei,doublej)
{//计算面积
return(length*width);
publicdoublepermcter(doublei,doublej)
{//计算周长
return((length+width)*2);
publicstaticvoidmain(String[]args)
长为5,宽为4的长方形的周长与面积:
RectangleRectangle=newRectangle(5,4);
周长(5,4)="
+Rectangle.permcter(5,4));
面积(5,4)="
+Rectangle.area(5,4));
4、定义一个父类Parents和两个子类Father类和Mother类:
Parents类具有两个属性:
姓名和年龄,该类所包含的方法除了构造方法和相应的get和set方法,还有一个print()用来打印对象的具体的信息,例如,输出“我是家长,我的名字是...,我的年龄是...岁"
;
Father类增加了一个属性:
爱好,并重写了父类Parents中的print()方法,输出“我是父亲,我的名字是...,我的年龄是...岁,我的爱好是...”;
Mother类增加了一个属性:
头发的颜色,并重写了父类Parents中的print()方法,输出“我是母亲,我的名字是...,我的年龄是...岁,我头发的颜色是...”。
最后定义一个测试类Test,要求显示如下信息:
5、我是家长,我的名字是王瑞,我的年龄是36岁
6、我是父亲,我的名字是张峰,我的年龄是45岁,我的爱好是打保龄球
7、我是母亲,我的名字是孙娟,我的年龄是36岁,我的头发颜色是棕色
Parents:
publicabstractclassParents{
privateStringname;
//姓名
privateintage;
//年龄
publicParents(){
publicParents(Stringname,intage){
this.setName(name);
this.setAge(age);
publicvoidsetName(Stringname){
this.name=name;
publicStringgetName(){
returnname;
publicvoidsetAge(intage){
this.age=age;
publicintgetAge(){
returnage;
voidSys(){
我是家长,"
+"
我的名字是"
+this.getName()+"
,我的年龄是"
+this.getAge()+"
岁"
Father:
publicclassFatherextendsParents{
privateStringfavor;
publicFather(Stringname,intage,Stringfavor){
super(name,age);
this.favor=favor;
publicvoidsetFavor(Stringfavor){
this.favor=favor;
publicStringgetFavor(){
returnfavor;
voidSys()
{
我是父亲,"
岁,我的爱好是"
+this.getFavor());
Mother:
publicclassMotherextendsParents{
privateStringhairColor;
//头发颜色
publicMother(Stringname,intage,StringhairColor){
this.hairColor=hairColor;
publicvoidsetHairColor(StringhairColor){
this.hairColor=hairColor;
publicStringgetHairColor(){
returnhairColor;
System.out.print("
我是母亲,"
岁,我头发的颜色是"
+this.getHairColor());
Test:
publicclassTest{
publicstaticvoidmain(String[]args)
{
Parentsp=newParents("
王瑞"
36);
Fatherf=newFather("
张峰"
45,"
打保龄球"
Motherm=newMother("
孙娟"
36,"
棕色"
p.Sys();
f.Sys();
m.Sys();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 期末 考试题 答案