Java第一章期末考试_第1页
Java第一章期末考试_第2页
Java第一章期末考试_第3页
Java第一章期末考试_第4页
Java第一章期末考试_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章什么是java的虚拟机?任何一种可以运行java字节码的软件都可以看成是java的虚拟机。什么是字节码?采用字节码的好处是什么?Java程序经过编译器后,java程序会转成于平台无关的机器码,java称之为字节码。字节码可以跨平台运行。(编译一次,到处运行)什么是平台无关性?Java语言怎样实现的?用户可以使用任何一种java编译器将java源程序编译成字节码文件后,无论使用哪种操作系统,都可以在含有JVM的平台上运行。java编译器将java源程序编译成字节码文件。java语言程序有几种?包含哪几个方面?Javaapplication称为java应用程序。Javaapplet称为java小程序。包含package语句,import语句,类定义。什么是java程序的主类?应用程序与小程序的主类有什么不同?主类是程序执行的起始点。应用程序的主类是包含有main()方法的类,不一定是public类,小程序的主类必须包含有一个继承自系统类JApplet或Applet的子类,而且必须是public类。第二章什么是jdk?Jdk由javaAPI,java运行环境和一组建立、测试工具的java实用程序等组成。环境变量Path和ClassPath的作用是什么?如何设置这两个环境变量?Path的作用是设置供操作系统去寻找可执行文件的路径,对java而言既是java的安装路径。Classpath的作用于path的相似,是jvm执行java程序时搜索类的路径的顺序,最先找到的为准。java应用程序的源文件与小程序源文件的命名有什么规定?java应用程序的源文件:首先,源文件的扩展名必须是.java;如果源文件只要一个类,那么文件名必须与类名一致﹔如果源文件中有多个类,则只能有一个类是public类,如果有,那么源文件的名字必须与该public类的名字完全相同;如果源文件中包含多个类,没有public类,那么源文件的名字只要与某个类的名字相同即可。小程序源文件:一个java小程序的源文件也是由若干类组成的,一个java小程序的源文件不再需要main()方法,但必须有一个父类为Applet的类,这个类就是Java小程序源文件的主类。小程序源文件的主类必须是public,Java小程序源文件的名字一定要与主类的名字相同。java应用程序与小程序之间有哪些差别?应用程序的主类不一定要求是public类,但小程序的主类要求必须是public类。

主类是Java程序执行的入口点。第三章自动类型转换的前提是什么?转换时从短到长的优先级顺序是什么?转换前的数据类型与转换后的类型兼容。转换后的数据类型的表示范围比转换前的类型大。从键盘输入一个浮点数,然后将浮点数的整数部分输出。从键盘输入两个整数,计算它们相除的结果并输出。从键盘上输入圆柱的高和半径,计算体积并输出。计算下列结果。X=3,y=17,yn=true.X+y*x--=54-x*y+y=-34X<y&&yn=trueX>y||!yn=falseY!=++x?x:y=4Y++/--x=8(先返回Y再做自加运算,先进行自减运算再返回X)第四章学生的成绩分为四个等级:85~100为A,70~84为B,60~69为C,0~59为D,键盘输入一个0~100的成绩,评定并输出相应的等级。Java应用程序,输出1~100之间既可以被3整除,又可以被7整除的数。编写java应用程序,从键盘上输入数n,计算并输出1!+2!+......+n!的结果。键盘输入一个整数,判断该数是否为完全数。第五章从键盘输入n个数,求这几个数中的最大数和最小数并输出。找出4*5矩阵中值最小和最大元素,并分别求出其值所在的行号和列号。编写java应用程序,比较命令行中给出的两个字符串是否相等,并输出比较结果。从键盘上输入一个字符串和一个字符,从该字符串中删除给定的字符。第六章定义一个类时所使用的修饰符有哪几个?每个修饰符的作用是什么?是否可以混用?public将一个类声明为公共类,它可以被任何对象访问,一个程序的主类必须是公共类

abstract将一个类声明为抽象类,没有实现的方法,需要子类提供方法的实现

final将一个类声明为最终类即非继承类,表示它不能被其他类所继承

friendly友元类型,默认的修饰符,只有在相同包中的对象才能使用这样的类

类的访问控制符只有一个public。其他的修饰符中,abstract和final相互对立,所以不能同时应用在一个类的定义中。成员变量和局部变量的区别有哪些?

(1)从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或方法的参数;成员变量可以被public、private、static等修饰符所修饰,而局部变量则不能被访问控制修饰符及static所修饰;成员变量和局部变量都可以被final所修饰。

(2)从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在于堆内存,而局部变量是存在于栈内存的。

(3)从变量在内存中的生存时间上看,成员变量是对象的一部分,它随对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失。

(4)成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但没有被static修饰的成员变量必须显示地赋值);而局部变量则不会自动赋值,必须显示赋值后才能使用。定义一个“student”类,包含的内容有:

成员变量:学号,姓名,性别,班干部否,数学,语文,外语

成员方法:输入,总分,平均分

编程实现这个类,并调用相应的方法输入数据,计算总分和平均分。以m行n列二维数组为参数进行方法调用,计算二维数组各列元素之和,并返回所计算的结果。第七章什么是方法的重载?

重载是指相同的方法名称,如果参数个数不同,或者是参数个数相同,但类型不同,则方法就具有不同的功能。一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序能正确执行吗?为什么?

构造方法的作用是在对象被创建时初始化对象的成员的方法。

能,这是因为如果省略构造方法,Java会自动调用默认的构造方法。构造方法有哪些特性?

(1)构造方法的方法名与类名相同;

(2)构造方法没有返回值,也不能写void;

(3)构造方法的主要作用是完成对类对象的初始化工作;

(4)构造方法一般不能由编程人员显示地直接调用,而是用new来调用;

(5)在创建一个类的对象的同时,系统会自动调用该类的构造方法为新对象初始化。静态变量与实例变量有哪些不同?

静态变量是隶属于类的变量,而不是属于任何一个类的具体对象;是公共的存储单元,不保存在某个对象实例的内存空间中,而是保存在类的内存空间的公共存储单元中;静态变量不需要实例化就可以引用。实例变量有各自的存储空间来保存自己的值,而不与其他对象共享。静态方法与实例方法有哪些不同?

静态方法实质是属于整个类的方法,它在内存中的代码段将被所有的对象所公用,而不被任何一个对象所专用;由于静态方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员,而只能处理属于整个类的成员;在静态方法中不能使用this或super。

实例方法是属于某个具体对象的方法;调用实例方法必须先创建对象,再利用对象来调用方法,而无法不通过对象而直接去调用;在这个对象创建时,对象的方法在内存中拥有属于自己的专用的代码段。对象的相等与指向它们的引用相等,两者有什么不同?1.Cylindervolu1=newCylinder(1.0,2);2.Cylindervolu2=newCylinder(1.0,2);3.Cylindervolu3=volu1;尽管创建的两个对象看上去完全相同,但它们是两个彼此独立的对象,是两个占据不同内存空间地址的不同对象,而引用变量volu1与volu2的值分别是这两个对象在内存中的首地址,显然它们是不想等的。而volu1和volu3是指向同一个对象的两个变量,它们的值是同一对象在内存中的首地址,所以它们是相等的。什么是静态初始化器?其作用是什么?静态初始化器由谁在何时执行?它与构造方法有何不同?

静态初始化器是由关键字static修饰的一对花括号“{}”括起来的语句组。

作用是用来初始化工作的。

不同:

(1)构造方法是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化。

(2)构造方法是在用new运算符创建新对象时由系统自动执行,而静态初始化器一般不能由程序来调用,它是在所属的类被加载入内存时由系统调用执行。

(3)用new运算符创建多少个新对象,构造方法就被调用多少次,但静态初始化器则在类被加载入内存时只执行一次,与创建多少个对象无关。

(4)不同于构造方法,静态初始化器不是方法,因而没有方法名、返回值和参数。第八章在调用子类的构造方法之前,会先自动调用父类中没有参数的构造方法,其目的是什么?

其目的是为了帮助继承自父类的成员做初始化的操作。用父类对象变量可以访问子类的成员吗?若可以,则只限于什么情况?

可以,只限于“覆盖”的情况发生时。也就是说,父类与子类的方法名称、参数个数与类型必须完全相同,才可通过父类的变量调用子类的方法。如果某一方法仅存在于子类中,当以父类变量调用它时,编译时将产生错误。3.什么是“多态”机制?Java语言是如何实现多态的?

相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态。

覆盖与重载均是Java语言多态的技巧之一。4.方法的“覆盖”与方法的“重载”有何不同?

覆盖是指在子类中,定义名称、参数个数与类型均与父类相同的方法,用以重写父类里同名方法的功能。

重载是指在同一个类内定义名称相同,但参数个数或类型不同的方法,因此Java可根据参数的个数或类型的不同来调用相应的方法。5.this和super分别有什么特殊的含义?

super是从子类的构造方法调用父类的构造方法

this是在同一个类内调用其他的构造方法6.什么是最终类与最终方法?它们的作用是什么?

如果一个类被final修饰符所修饰,则说明这个类不能再被其他类所继承,即该类不可能有子类,这种类被称为最终类。

如果用final修饰成员方法,则该成员方法不能再被子类所覆盖,即该方法为最终方法。对于一些比较重要且不希望被子类重写的方法,可以使用final修饰符对成员方法进行修饰,这样可以增加代码的安全性。7.什么是抽象类与抽象方法?使用时应注意哪些问题?

在Java语言中还可以创建专门的类来作为父类,这种类被称为抽象类。

并不能直接由抽象类创建对象,只能通过抽象类派生出新的子类,再由其子类来创建对象。8.什么是接口?为什么要定义接口?

接口的结构与抽象类非常相似,其本身也具有数据成员与抽象方法,但它与抽象类有下列不同:

(1)接口的数据成员必须初始化;

(2)接口中的方法必须全部都声明为abstract的,即接口不能像抽象类一样拥有一般的方法,而必须全部是抽象方法。

接口可以实现类的多重继承。9.如何定义接口?接口与类有哪些异同?[public]interface接口名称[extends父接口名列表]{[public][static][final]数据类型成员变量名=常量;...[public][abstract]返回值的数据类型方法名(参数表);...}接口与一般的类一样,本身也具有成员变量与成员方法,但接口的成员变量一定要赋初值,且此值不能再被修改,若省略成员变量的修饰符,系统默认为publicstaticfinal;而其成员方法必须是抽象方法,方法前即使省略修饰符,系统仍然默认为publicabstract。什么是包?它的作用是什么?如何创建包?如何引用包中的类?

包就是Java语言提供的一种区别类名空间的机制,是类的组织方式,包对应一个文件夹,包中还可以再有包,称为包等级。包实际上提供了一种命名机制和可见性限制机制。第九章异常是什么?简述Java语言的异常处理机制。

异常是指程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。

Java语言中定义了很多异常类,每个异常类都代表一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当Java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之对应时,系统多会产生一个相应的该异常类的对象,即产生一个该错误的异常。一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,从而保证整个程序运行的安全性。这就是Java的异常处理机制。Throwable类的两个直接子类Error和Exception的功能各是什么?用户可以捕获到的异常是哪个类的异常?

Error子类由系统保留,因为该类定义了那些应用程序通常无法捕捉到的异常。即Error类对象是由Java虚拟机生成并抛出给系统,这种错误有内存溢出错、栈溢出错、动态链接错等。通常Java程序不对这种错误进行直接处理,必须交由操作系统处理。

Exception子类是供应用程序使用的,它是用户程序能够捕捉到的异常情况,通常产生它的子类来创建自己的异常。即Exception类对象是Java程序抛出和处理的对象,它有各种不同的子类分别对应于各种不同类型的异常。什么是运行时异常?什么是非运行时异常?

运行时异常是程序运行时自动地对某些错误做出反应而产生的。

非运行时异常是程序运行过程中由环境原因造成的异常。抛出异常有哪两种方式?

(1)系统自动抛出的异常:所有系统定义的运行异常都可以由系统自动抛出

(2)使用throw语句抛出的异常:用户程序自定义的异常不可能依靠系统自动抛出,而必须借助于throw语句来定义何种情况算是产生了此种异常对应的错误,并应该抛出这个异常类的对象在异常处理机制中,用catch()括号内的变量e接收异常类对象的步骤有哪些?

try块中代码可能会抛出一个或多个异常,若发生异常,则程序的运行便中断,并抛出由异常类所产生的对象e;

catch语句块紧跟在try语句块的后面,用来指定需要捕获的异常类型,若抛出的异常对象属于catch后面括号内欲捕获的异常,则catch会捕获此异常,然后进入到catch块内继续执行若try语句结构中有多个catch()子句,这些子句的排列顺序与程序执行效果是否有关?为什么?

有关;由于异常对象与catch块的匹配是按照catch块的先后排列顺序进行的,所以在处理多异常时应注意认真设计各catch块的排列顺序。一般地,将处理较具体的较常见的异常的catch块应放在前面,而可以与多种异常相匹配的catch块应放在较后的位置。若将子类异常的catch语句块放在父类的后面,则编译不能通过。系统定义的异常与用户自定义的异常有何不同?如何使用这两类异常?

系统定义的异常类主要用来处理系统可以预见的较常见的运行错误;

用户自定义的异常类主要用来处理用户程序中可能产生的逻辑错误,使得这种错误能够被系统及时识别并处理,而不致扩散产生更大的影响,从而使用户程序有更好的容错性能,并使整个系统更加稳定。第十章1.什么是流?Java语言中分为哪两种流?这两种流有何差异?

流是指计算机各部件之间的数据流动。

按照数据的传输方向,流可分为输入流与输出流。

对于输入流只能从其读取数据而不能向其写入数据;

对于输出流只能向其写入数据而不能从其读取数据。2.InputStream、OutputStream、Reader和Writer四个类在功能上有何异同?

InputStream和OutputStream类通常是用来处理位流,也就是二进制文件,但也可以处理纯文本文件;

Reader和Writer类是用来处理字符流,也就是纯文本文件3.利用基本输入输出流实现从键盘上读入一个字符,然后显示在屏幕上。4.Java语言中定义的三个标准输入输出流是什么?它们对应什么设备?

System.in对应于输入流,通常指键盘输入设备;

System.out对应于输出流,指显示器等信息输出设备;

System.err对应于标准错误输出设备,使得程序的运行错误可以有固定的输出位置,通常该对象对应于显示器。5.利用文件输出流创建一个文件file1.txt,写入字符“文件已被成功创建!”,然后用记事本打开该文件,看一下是否正确写入。利用文件流入打开第7题中创建的文件file1.txt,读取其内容并显示在屏幕上。利用文件输入输出流打开7题创建的文件file1.txt,然后在文件的末尾追加一行字符串“又添加了一行文字!”。产生15个20~9999之间的随机整数,然后利用bufferedWriter类将其写入文件file2.txt中;之后在读取该文件中的数据并将它们升序排序。第十一章1.简述线程的基本概念,程序、进程、线程的关系是什么?

运行一个进程时,将程序中一些彼此相对独立的代码段可以同时运行,从而获得更高的执行效率的运行单位,成为线程。

系统运行一个程序即是一个进程从创建、运行到消亡的过程。

线程与进程相似,也是一个执行中的程序,但线程是一个比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程,形成多条执行线路。2.什么是多线程?为什么程序的多线程功能是必要的?

多线程就是同时执行一个以上的线程,一个线程的执行不必等待另一个线程执行完才执行,所有的线程都可能发生在同一时刻。但操作系统并没有将多个线程看做多个独立的应用,来实现线程的调度和管理以及资源分配。

由于可以共享内存,所以各线程之间的通信速度很快,线程之间进行切换所占用的系统资源也较少。3.线程有哪些基本状态?这些状态是如何定义的?新建状态:当一个Thead类或其子类的对象被声明并创建,但还未被执行的这段时间里,处于一个特殊的新建状态中;

就绪状态:也称为可运行状态,处于新建状态的线程被启动后,将进入线程队列排队等待CPU时间片,此时它已具备了运行的条件;

运行状态:当就绪状态的进程被调度并获得处理器资源时,进入运行状态;

阻塞状态:一个正在执行的线程如果在某些特殊情况下,如被人为挂起或需要执行费时的输入输出操作时,将让出CPU并暂时中止自己的执行,进入阻塞状态;

消亡状态:不具备继续运行的能力;

4.Java程序实现多线程有哪两个途径?

Thread类和Runnable接口。5.在什么情况下必须以类实现Runnable接口来创建线程?

类本身已经继承了某个父类,由于Java语言不允许多重继承,所以就无法在继承Thread类,这种情况下可以创建一个类来实现Runnable接口。6.什么是线程的同步?程序中为什么要实现线程的同步?是如何实现同步的?

线程的同步就是保证线程在一个完整的操作所有动作的执行过程中,都占有相关资源而不被打断;

在线程执行过程中,在执行有关的若干个动作时,没有能够保证独占相关的资源,而是被其他线程的操作打断或干扰而引起数据混乱,为了防止这样的情况发生,要实现线程的同步

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论