




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java技术课程2019年春季期末考试复习题二、考试重点(占期末考试成绩60%)一、 单项选择题.计算机硬件能直接执行的只能是( B )。A.符号语言程序 B.机器语言程序 C.汇编语言程序 D.高级语言程序. Java 语言属于(C )。A.面向过程的解释型语言B.面向过程的编译型语言C.面向对象的解释型语言D.面向对象的编译型语言.根据TIOBE编程语言社区排行榜的统计,使用率居于前三的编程语言是(A)。A. Java、C、C+B. Java、C找 C+Java、Python、RubyD. Objective-C 、C+、Java.下述Java平台中,最适于开发嵌入式系统应用程序的是( C
2、 )。A. Java SEB. Java EEC. Java MED. Java Applet.下面关于Java类文件的说法错误的是(D )。Java编译器会为源程序中的每个类单独生成一个类文件Java类文件中存储的代码必须符合JVM规范Java类文件中存储的代码是二进制形式的代码Java类文件必须用Java语言编写得到.下列关于Eclipse 说法错误的是(A )。A.使用Eclipse 开发Java程序时,程序员编辑源程序后即可运行该程序,因此无编译程序的过程Eclipse 中的Workspace用于存储工程的路径C.在Windows系统下,Eclipse 程序包解压缩后即可直接使用,无需
3、安装Eclipse是一个基于Java的、可扩展的、开放源代码的开发平台.下列关于IDE开发环境Eclipse的说法错误的是(D )。Eclipse可以通过插件(plugin )的方式扩展其功能Eclipse联盟是由 旧M公司捐资组建的Eclipse使用了 SWT图形界面技术Eclipse的运行不需要有JRE的支持.关于Eclipse 的视景说法错误的是(C )。A.每个视景都定义了工作台中各个视图的初始设置和布局. 一个工作台窗口包含多个独立的视景,但同一时刻只有一个视景是对用户可见的C.视景的布局是可以改变的,但改变多次后无法再恢复到初始设置D.每个视景都有自己的视图和编辑器,用户可以在各个
4、视景间切换.在Java 中,由Java 编译器自动导入,而无需在程序中用import 导入的包是(A )。A. java.langB. java.awtC. java.ioD. java.applet10.在Java中,用package语句声明一个包时,该包的层次结构必须是( B )。A.与文件的结构相同B.与文件目录的层次相同C.与文件类型相同D.与文件大小相同11.下面不是包的用途的是(AA.规定一组类的对外界面B.方便类的查找和使用 C.防止命名冲突D.访问控制Java中用于描述对象的状态的语法成分是(B )。A.修饰符B.变量C.方法D.语句Java中用于描述对象的行为的语法成分是(C
5、 )。A.常量B.变量C.方法D.语句应用程序的main方法中有以下语句:String s1=new String(abc);String s2=new String(abc); boolean b1=s1.equals(s2);boolean b2=(s1=s2);System.out.print(b1+ +b2);则输出的结果是( A )。A. true falseB. false trueC. true trueD. false false应用程序的 main 方法中有以下语句: String s = 12; s = s + 34; System.out.println(s);则下述说法
6、正确的是( C ) 。程序有错误,不能通过编译 TOC o 1-5 h z 程序没有错误,运行输出结果为:46程序没有错误,运行输出结果为:1234程序没有错误,运行输出结果为:12设有如下类定义class Fruit / 水果类 int grams; / 克数(质量) Fruit(int grams) this.grams = grams; int totalCalories() /卡路里(热量) return grams * 10; 则创建一个Fruit 类的对象实体的语句是( D )。Fruit f;B. Fruit(30);C. new Fruit();D. new Fruit(30)
7、;17.设有如下程序段 class Tes t private int m; public static void fun()/some code 要使成员变量 m 能够被方法A. 将 private int m B. 将 private int m C. 将 private int m D. 将 private int m 18. 设有如下类定义C )。则下面叙述最为准确的是(A )。 A. 类 Bfun() 直接访问,则下面选项正确的是(改成 protected int m改成public int m改成static int m改成 int mclass A private int i;
8、protected int j; class B extends A private int k; protected int m; 的对象包含数据域 i,j,k,m类 B 的对象包含数据域j,k,m类 B 的对象包含数据域k,m类 B 的对象包含数据域m下述关于重载和覆盖的叙述正确的是( A )。子类方法覆盖父类方法时,子类方法不能比父类方法更“私有”静态方法不能被重载C. 私有方法不能被重载D. 重载方法不能抛出父类中的不可检测异常下述关于构造方法的叙述正确的是( B )。A. 构造方法不能被重载B. 构造方法不能被覆盖C. 构造方法可以返回一个基本数据类型的数据或者一个对象的引用D. 构
9、造方法的代码在执行时,先执行子类中的代码,然后再向上执行它祖先中的代码下面叙述正确的是( C )。语句“XextendsY”是正确的,当且仅当语句“XextendsY”是正确的,当且仅当语句“XextendsY”是正确的,当且仅当X 是一个类, Y 是一个接口X 是一个接口, Y 是一个类X 和 Y 都是类,或都是接口D. 语句“ X extends Y ”是正确的,对于X 和 Y 是类和接口的任意组合以下接口定义正确的是( D )。interface B void print() ; abstract interface B void print(); 为已定义接口 abstract voi
10、d print() ; abstract interface B extends A1, A2 / A1, A2interface B void print(); 给定下面程序段public class Navel private int size = 7;private static int length = 3;public static void main(String args) / TODO Auto-generated method stub new Navel().go();void go() int size = 5;System.out.println(new Gazer()
11、.adder(); class Gazer int adder() return size * length; 下面选项正确的是( B )。A. 输出 15B. 输出 21C. 抛出一个运行时异常D. 编译错误给定下面程序段public class Testpublic static void aMethod() throws Exception trythrow new Exception();finallySystem.out.println(finally); public static void main(String args) try aMethod(); catch(Except
12、ion e) System.out.println(exception); System.out.println(finished); 下面选项正确的是( C )。通过编译,程序运行结果是finally通过编译,程序运行结果是 exception finished C. 通过编译,程序运行结果是finally exception finishedD. 编译错误,不能通过编译 25. 下面关于异常的陈述正确的是( A )。 A. 语句“ catch(X x) ”能够捕获类 X 及其子类对象的异常 B. Error 类是一个运行时异常 C. 任何可能抛出一个Error 类对象的语句必须被封装到一个
13、try 语句块中D. 任何可能抛出一个Exception 类对象的语句必须被封装到一个try 语句块中下面能够创建一个DataOutputStream 对象的语句是( D )。A. New DataOutputStream(out.txt); B. New DataOutputStream(new File(out.txt); C. New DataOutputStream(new FileWriter(out.txt); D. New DataOutputStream(new FileOutputStream(out.txt); 27. 设在 Windows 系统上有文件d:temp.txt
14、 ,下述不能创建一个File 类实例的语句是( A )。A. new File(d:temp.txt);B. new File(d:temp.txt);C. new File(d:/temp.txt);D. new File(d:/temp.txt);下面可以从一个输入流中读取一行内容的方法是( B )。 A. next()B. nextLine()C. nextInt()D. nextDouble()给定下面程序段 public class Try6 implements Runnable public static void main(String args) Thread t = new
15、 Thread(this);t.start();public void run() System.out.println(test); 下面选项正确的是( A )。程序不能编译通过,因为静态方法中不能使用 this 引用程序能够通过编译,但是运行的时候没有任何输出,因为没有调用 run() 方法程序能够编译和运行,并且在控制台窗口显示字符串 test上述都不对)。当你使用语句 Thread = new Thread(object) 创建线程对象时, object 必须满足的条件是( DA. object 是 Thread 类的实例 B. object 是 JFrame 类的实例C. objec
16、t 是 Applet 类的实例 D. object 是 Runnable 接口的实例事件监听接口中的方法的返回值是(C )。A. intB. String C. voidD. Object下面关于布局管理的叙述正确的是(D )。顺序布局能够用于放置水平大小随容器大小变化而变化的组件网格布局能够用于放置大小为常数定值的组件边界布局能够用于放置大小为常数定值的组件网格包布局能够提供网格布局类似的布局,并且允许个别的行和列具有自己特定的大小当 ActionEvent 事件发生时,能够取得事件源对象的方法是( B )。A. public Class getClass()B. public Object
17、 getSource()C. public Component getSource() D. public Component getTarget()用鼠标单击JFrame 窗口右上角的关闭按钮,发生的事件是( B )。A. ItemEvent B. WindowEventC. MouseMotionEventD. ComponentEvent用来处理监听器的组件是( B )。D. 代理器对象A. 事件源对象B. 监听器对象C. 适配器对象下面关于 JDBC 的陈述错误的是( D )。JDBC 本身是个商标名JDBC 由一组用 Java 类和接口组成的JDBC 可以使程序员能够用纯Java A
18、PI 来编写数据库应用程序JDBC驱动程序必须由ORACLE公司开发JDBC 接口 Statement 中定义的A. ResultSetB. int记录数量JDBC 接口 Statement 中定义的A. ResultSet记录数量JDBC 接口 Statement 中定义的ResultSetB. intexecute() 方法的返回类型是( C )。C. booleanexecuteQuery () 方法的返回类型是( A )。intC. booleanexecuteUpdate () 方法的返回类型是( B )。boolean. 受影响的记录数量D.D.受影响的受影响的40. 获取 Res
19、utlSet 对象 rst 的第一行数据,以下正确的是( C )。A. rst.hashNext();B. rst.next();C. rst.first();D. rst.nextRow();第一部分:多项选择题题 1. 属于 Java 运行时环境的组成部件的是( CD ) 。A. Java 编程语言B. Java 类文件C. Java APID. Java 虚拟机题2.下面哪些关键字能用来控制对类成员的访问(AB。?A. publicB. protectedC. privateD. default题3.类B是一个抽象类,类 C是类B的非抽象子类,下列创建对象 x1的语句中正确的是(BC )
20、。A. B x1= new B();B. B x1= newC();C. C x1=new C();D. C x1= newB();题4.下面关于Java中异常处理try 块的说法正确的是(AC )。try块后通常应有一个catch 块,用来处理try 块中抛出的异常catch 块后必须有finally 块C.可能抛出异常的方法调用应放在try 块中D.对抛出的异常的处理必须放在 try 块中题5. 关于BufferedReader 类的readLine()方法,以下说法正确的有( ACD )。A.方法readLine() 每次读取一行数据B.方法readLine() 每次读取一个字节C.该方
21、法可能抛出IOException 异常,调用该方法时通常应将它放到try 块中,并通过catch 块处理异常D.如果读到流的末尾,该方法返回的结果为null填空题.程序设计语言按思维模式可以分为面向过程的语言和面向对象的语言两类。. Java 的三个版本是 _Java SE、 _Java EE 和 _Java ME。.完整的Java体系结构包括四个组件,分别是_Java编程语言,、_Java类文件格式_、_Java应用程序编程接口和Java虚拟机。. Java运行时环境是由 _Java虚拟机_和_核心类_组合形成的。.在Java类文件中存储的二进制代码称为_字节码它们是JVM的指令。.在主机操
22、作系统上由软件实现的Java虚拟机实际上是用本地(如C/C+等)语言编写的程序。. Java虚拟机主要包括两个模块,一个是类装载器,另一个是执行引擎。. JDK提供了开发Java程序所需的各种工具(诸如 Java编译器、Java虚拟机等程序)和资源,同时也提供了运 行Java程序的 Java 运行时环境。.环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用和具体程序相关。.开发一个完整的Java应用程序系统,为了便于管理,可能需要将一系列的程序文件、资源文件和其它相关 文件放到一个 Java 项目中。. Eclipse 根据任务的不同把视图和编辑器预先划分为不同的类别,预设好视图
23、的排列方式,并把每一个类别 称为一个视景(或透视图)。.为管理和使用大量的类和接口,Java把一组类和接口封装在一个 包内。.对象是程序的基本组成实体,类是创建对象的模版 。. Java源程序中的类可以分为两种,分别是系统类和用户自己定义类。.编译程序的时候会自动导入到程序中的系统包是java.lang 。.把基本数据类型包装成类的好处是可以提供基本数据类型的信息,还可以使用类的方法对数据进行操作。.在Java 中,int 类型的包装类是 Integer , char类型的包装类是 Character 。. Integer 类的parseInt()方法的功能是把一个字符串转换为一个整型数据。.
24、 Java把数据输出到控制台是使用标准输出流或System.out 完成的。. Scanner类是在java.util包中定义的。.创建一个连接到标准输入流对象System.in 的 Scanner对象的语句是 Scanner myScanner = newScanner(System.in); 。.设 myS是一个 Scanner类的实例,则语 句int x= myS.nextInt();的作用是读取一个整数,然后把这个 整数赋给变量 x。. Java提供的专门用于格式化输出数据的方法是System.out.printf()。. Java提供的用于处理日期和时间信息的系统类是java.uti
25、l.Date。.字符串常量是用双引号括起来的字符序列。. Java用于处理处理字符串的类有两个,分别是 String 类和StringBufer 类。. Java的编译器会为每个字符串常量生成一个_String 类的实例。的空间给这个对象。我们把创建好取得字符串的长度的方法是调用字符串对象的length()方法。在Java中,杳当创建一个对绕此 系统都会从E管理的内存中分期一定二 的对象叫做对象实体,而这个对象实体的“标识” 叫做 对象的弓用 构造方法有两个作用,一个作用是提供要实例化的类的类名,另一个作用是把新创建的对象初始化new关键字用于创建对象,new关键字被执行之后会返回新创建对象的
26、引用.在声明成员变量的时候,用关键字static修饰的变量是类变量,类变量也称为静态变量。.在声明成员变量的时候,没有被关键字static修饰的变量是 实例变量。.在声明成员方法的时候,用关键字static修饰的方法是类方法,类方法也称为静态方法。.在声明成员方法的时候,没有被关键字static修饰的方法是 实例方法。.调用类方法有两种情况,一种是通过 类名调用类方法,另一种是通过 对象名 调用类方法。.在面向对象的程序中,方法是用于定义对象的某个特定功能 的代码段。.方法名和方法的参数类型称为方法的签名 。.调用方法的语句格式是reference.method(arguments)。.编译源
27、程序时,编译器会为方法添加一个隐式参数,用来存储运行时刻传来的当前对象的引用.面向对象技术有三个基本特性,分别是 封装、继承 和多态 。.包含在对象属性中的数据值的集合通常称为对象的状态 。.对象除了保存数据之外,还提供若干操作数据的方法,用以描述的对象的行为 。.封装有两方面的意思:一个方面是对象封装了功能的内容实现机制,另一个方面是对象封装了它持有的数据.在Java中,通过在类定义里面定义属性和 方法 ,强制实现对数据和功能的封装。. Java程序中的所有类都由系统类Object直接继承或间接继承得到的。. Java中的多态是指 一个程序中同名的不同方法共存 的情况。. Java中的多态分
28、为 编译时多态和运行时多态 两类。 TOC o 1-5 h z .使用接口实际上要做两件事:第一是声明接口(定义接口),第二是在类中实现接口。.回调是一种常见的程序设计模式,这种模式在Java中通常是用 接口来实现。.所谓异常,就是 程序的运行时错误 。. “异常”产生时,意味着在当前环境下无法获得必要的信息来解决问题,我们所能做的就是从当前环境中跳出,并且把问题提交给上一级别的环境。.我们把生成异常对象并把它交给运行时系统的异常处理机制的过程称为抛出异常。.运行时系统的异常处理机制在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到包含相应异常处理不能通过编译的方法为止,这个过程称为捕获
29、异常。.编译器要求我们编写的程序必须对可检测的异常进行处理,否则.异常通常由以下两种情况引起,一种是程序执行了不合法的动作,另一种是通过执行throw语句由程序显式抛出。.按照数据的传输方向,流可以分为 输入流和输出流 两类。.按照数据的格式,流可以分为字节流和字符流两类。.系统类FileInputStream 和FileOutputStream 用于以字节方式处理文件的输入和输出,称为文件输入 /输出 流。.系统类FileReader 和FileWriter用于以字符方式处理文件的输入和输出,称为文件读写器。.系统类 BuferedReader 和BuferedWriter 分别称为缓冲读取
30、器和缓冲写入器。 TOC o 1-5 h z .使用缓冲流的好处是可以减少系统和外部设备交换数据的次数。.系统类DataInputStream. 和DataOutputStream 称为数据输入/输出流,它们在输入输出数据的同时能为流市的数据进行变换处理。一.提供操作系统目录管理功能的文件类是File 。.用于文件的随机读写操作的文件类是RandomAccessFile _。.通俗地讲,线程就是一个代码执行流。. Java程序是从一个众所周知的入口点开始执行的,即是从 main()方法的第一条语句开始执行的。.当Java程序启动时*系统就为它创建好一个线程,用这个线程执行 main()方法中的
31、代码序列。这个系统 M建好的线程叫主线程。. JVM创建的线程称为 系统线程,我们自己在程序中用代码创建的线程称为用户线程 。. Java API提供创建线程的系统类是Thread, 它的对象就是一个线程。.线程类的获取当前线程对象引用的方法是currentThread(),获取当前线程名字的方法是 getName()。.在Java中,线程被表示为 Java.lang.Thread类的一个实例。. 一个线程要完成一个应用任务,为了完成该应用任务而编写的代码要放到 run ()方法中。.创建好线程对象之后并不意味着这个线程就会被处理机(JMV)运行,还需要调用线程对象的start() 方班启动线
32、屉。.我们称实现了 Runnable接口的类为线程化的类,称实现了该接口的类的实例为可运行的对象 。.从实现了 Runnable接口的对象创建线程对象的方法是,建立一个单独的Thread对象,并把可运行对象传递给专门的 Thread类的 构造方法。.线程生命周期共有五个状态,分别是新建状态、就绪状态、运行状态、阻塞状态、死亡状态。. Java的线程调度策略采用 抢占式调度。.使用Swing编写程序的图形界面要引入两个程序包,其中包含 Swing的基本类的程序包是 java.swing 、 包含与处理事件相关的接口和类的程序包是java.awt.event 。.使用布局管理器要引入java.aw
33、t 包。.事件监听者必须实现与事件类型相对应的事件监听接口 ,它才具有处理那类事件的能力。. Java有三种窗口,分别是 Applet 窗口、框架窗口( JFrame)和 无边框的窗口( JWindow)。.设 mw是一个 JFrame窗口,取得 mw的内容面板的语句是 mw.getContentPane() 。.要获取事件 e的命令字符串,从而知道是哪一个组件激发的事件,则应该使用的代码是e.getActionCommand() 。.面板有两种,分别是普通面板(JPanel)和滚动面(JScrollPane) 。.布局管理器是实现了 LayoutManager接口的类。.小应用程序和面板默认
34、的布局管理器是FlowLayout 。. JWindow JFrame 和 JDialog 默认的布局管理器是 BorderLayout 。.空布局就是把一个容器的布局管理器设置为null 布局。.当把一个容器的布局管理器设置为null布局的时候,可以使用setBounds()方法手工设置组件本身的大小和组件在容器中的位置。.菜单分为下拉式菜单和弹出式菜单 两种。.处理菜单项事件的接口是ActionListener .要实现的接口方法是actionPerformed().获得事件源的方法是getSource()。.在 Swing 中,有两个对话框类,一个是 JDialog类,它指JOption
35、Pane类,它提供构造常见对话框功能。.滚动条对彖的事件处理事件类型是AdjustmentEvents、一 一,要实现的事件监听接口的方法是agjUStmentValueChanaged(),注册事件监听器的方法是addAdjustmentListener() ,获取事件源对象的方法是 getAdjustable() 一。. Java 处理鼠标事件提供了两个接口,分别是 MouseListener 接口 和 MouseMotionListener 接 口 。. Java技术中,应用程序使用JDBC访问数据库。其中, JDBC API和JDBC驱动程序协同实现Java程序对数据库的访问功能。.
36、DriverManage 类的getConnection()方法用于建立数据库连接。. java.sql包中用于处理特定数据库连接的类是Connection 类 。. java.sql包中用于在指定白连接中处理 SQL语句的类是Statement类_。. java.sql包中用于管理查询结果集的类是ResultSet 类。三、判断题.程序设计语言按思维模式可以分为编译执行语言和解释执行语言两类。()BA.正确B.错误.在主机操作系统上由软件实现的Java虚拟机实际上是用本地语言(如 C/C+等)编写的程序。()AA.正确B.错误. Eclipse 联盟是由Sun公司捐资组建的。()BA.正确B
37、.错误. Eclipse 根据任务的不同把视图和编辑器预先划分为不同的类别,预设好视图的排列方式,并把每一个类别 称为一个视景。()AA.正确B.错误 TOC o 1-5 h z .为管理和使用大量的类和接口,Java把一组类和接口封装在一个包内。()AA.正确B.错误.把基本数据类型包装成类的好处是可以提供基本数据类型的信息,还可以使用类的方法对数据进行操作。(A )A.正确B.错误.在声明成员变量的时候,用关键字 class 修饰的变量是类变量。()BA.正确B.错误. new运算符用于创建对象,new运算符被执行之后会返回新创建对象的内存地址。()BA.正确B.错误. Java中的多态是
38、指一个程序中同名的不同方法共存的情况。()AA.正确B.错误. Java中的多态是指用一个类可以创建功能不同的对象。()BA.正确B.错误.使用接口实际上要做两件事:第一是声明接口,第二是在类中实现接口。()AA.正确. Java使用接口实现“回调”程序设计模式。()AA.正确B.错误. Java程序运行时出现的异常通常是由计算机硬件错误引起的。()BA.正确B.错误.我们把生成异常对象并把它交给运行时系统的异常处理机制的过程称为捕获异常。()BA.正确B.错误.按照数据的传输方向,流可以分为字节流和字符流两类。()BA.正确B.错误.用于文件的随机读写操作的文件类是 File。()BA.正确
39、B.错误.当Java程序启动时,系统就为它创建好一个线程,用这个线程执行main()方法中的代码序列。这个系统创建好的线程叫主线程。 ( ) AA. 正确B. 错 误线程要完成一个应用任务,为了完成该应用任务而编写的代码要放到 start() 方法中。 ( ) B TOC o 1-5 h z A. 正确B. 错误小应用程序和面板默认的布局管理器都是FlowLayout 。 ( ) AA. 正确B. 错误要获A. 正确取B. 错 误事件第二部分:简答题题1e. 什么是包?它的主要作用是什么?答案:包是Java 提供的一种组织类的机制,有时也称为类库。这种机制功能相似或相关的类或接口组织在同的一个
40、包中, 命 方便类的查找和使用。 Java 使用包(package )这种机制是为了防止命名冲突,访问控制,提供搜索和定位类( 令 class )、接口、枚举 ( enumerations )和注释( annotation )等题2字.类方法和实例方法有哪些不同?符 答: 答: 在声明成员方法的时候,用关键字static 修饰的方法就是类方法,没有被关键字 static 修饰的方法就是实例方法。类方法也称为静态方法。类方法和实例方法的区别在于类方法不针对特定的对象,所以在没有创建对象之前可以执行,而且在类方法中只能访问串类变量和类方法,而不能访问实例变量和实例方法。实例方法则只能针对特定的对象
41、执行,从因此,如果任何对象都不存在,则也就没有可以执行的实例方法。题3而.什么是接口?它的作用是什么?知 答案:在 Java 中,接口不是类,而是一组抽象方法和常量的集合,用来描述类应该提供什么样的功能。在接口中定 义的方法仅仅给出方法名称、参数列表、返回值类型等信息的说明,并不给出方法体的具体代码,即没有给出方法 道 功能的具体实现。在程序中定义了一个接口以后,就可以声明某些类实现了这个接口,在实现了该接口的类中再给 是 出接口的方法的功能代码。这相当于用接口规范了实现接口的那些类都必须以特定的形式提供一组特定的功能。反过来,实现某个接口的类必须提供该接口规定的功能,并且要遵从接口中定义的方
42、法的格式约定。 哪题 4. 什么是线程?使用多线程有哪些好处?又会带来哪些问题?个 答案:通俗地讲,线程是一个代码执行流。 使用多线程的好处是:( 1)多线程为多个代码执行流并发执行提供了可能。 ( 2)多线程程序比多进程程序降低了资源占用要求。 组使用多线程也会对系统产生一些不利影响: ( 1 )线程需要占用内存,线程越多,内存占用越多。( 件2)线程过多,会消耗大量CPU 时间来跟踪线程。( 3)必须考虑多线程同时访问共享资源的问题,如果没有协调好,就会产生令人意想不到的问题,例如死锁和资源竞争等。( 激4)因为同一个任务的所有线程都共享相同的地址空间,并共享任务的 发全局变量,所以程序也
43、必须考虑多线程同时访问的全局变量问题的事编译型语言和解释型语言有什么不同?Java 程序执行前需要用编译器编译,但为什么却说 Java 是解释型答案:编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候就不用再进行翻译了。解释型语言是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。口I 又。C/C+则前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。在运行的时候,由应件,而 Java 、等都是编译型语言,而 Java、C#?都是解释型语言。虽然.;并不是将程序编译成机器语言,而是将它编
44、译成字节码(可以理解为一个中间语JVM将字节码再翻译成机器语言。C/C+编译和链接后,可形成独立的可执行文它必须由专用的解释器换成本地机器代码后才能执行。此外,像JavaScript 、 VBScript 、 PHP、 PERL 等脚本语言一般也都由相应的脚本引擎来解释执使行Java 程序在运行之般也都由相应的脚本弓擎来解释执什么是 Java 虚拟机?它的主要功能是什么?答:JVM 是在一台计算机上由软件模拟,也可用硬件实现的假想的计算机,它定义了指令集(相当于中央处理器CPU) 、寄存器、类文件结构栈、垃圾收集堆、内存区域等。JVM 是执行 Java 程序的引擎。 Java 程序编译后得到的
45、二进制形式的字节码实际上就是JVM 指令。什么是包?它的主要作用是什么?答:包是 Java 提供的一种组织类的机制,有时也称为类库。这种机制功能相似或相关的类或接口组织在同一个包 中, 方便类的查找和使用。Java 使用包( package )这种机制是为了防止命名冲突,访问控制,提供搜索和定位类( cl ass) 、接口、枚举 ( enumerations )和注释( annotation )等。类变量和实例变量有哪些不同?答: 在定义成员变量时,如果用 static 修饰符修饰,则该变量是类变量(也称“静态变量”),否则是实例变量。 类变量不属于类的任何一个具体对象。它保存在类的内存区域的
46、公共存储单元。类的任何一个对象对类变量的 存取都是对同一个内存单元进行操作。 与类变量相对,实例变量属于类的某个具体的对象。它在类的每个对象的内存区域中都保存一份。类的任何一个对象对实例变量的存取都是对自己内存区域内保存的实例变量的副本进行操作。5什么是内部类?使用内部类有什么好处?答: Java 允许将一个类的定义放在另一个类的内部。定义在另一个类内部的类就是内部类。但内部类是一种编译器 现象,与虚拟机无关。当使用内部类时,编译器会从外部类中把内嵌的类分离出来并调整编译结果。内部类允许我们把一些逻辑相关的类组织在一起,并控制在内部的类的访问特性。内部类的对象持有一个隐式引用,它引用了实例化该
47、内部对象的外围类对象。通过这个引用,可以访问外围类对象的全部状态。什么是多态?Java的编译时多态和运行时多态有什么区别?答: Java 中的多态就是指一个程序中同名的不同方法共存的情况。分为编译时多态和运行时多态两类。 方法重载可以实现Java的编译时多态。它是在相同类内,定义名称相同,但参数个数或参数类型不同的方法。编译器会根据实参的个数和类型,确定调用哪个方法。所谓编译时多态,是指程序会根据参数的不同来调用相应的 方法。具体调用哪个被重载的方法,是由编译器在编译阶段决定的。所以编译时多态也叫做静态多态性。方法覆盖可以实现Java 的运行时多态。它是在子类当中,定义名称、参数个数与类型均与
48、父类相同的方法,用 以改写父类方法的功能。运行时多态是一种在运行时,而不是在编译时调用覆盖方法的一种机制。对于覆盖的方法, Java 运行时系统根据调用该方法的实例的类型,来决定选择哪个方法调用。什么是接口?它的作用是什么?答:在 Java 中,接口不是类,而是一组抽象方法和常量的集合,用来描述类应该提供什么样的功能。在接口中定义的方法仅仅给出方法名称、参数列表、返回值类型等信息的说明,并不给出方法体的具体代码,即没有给出方法 功能的具体实现。在程序中定义了一个接口以后,就可以声明某些类实现了这个接口,在实现了该接口的类中再给 出接口的方法的功能代码。这相当于用接口规范了实现接口的那些类都必须
49、以特定的形式提供一组特定的功能。反过来,实现某个接口的类必须提供该接口规定的功能,并且要遵从接口中定义的方法的格式约定。什么是异常? Java 处理异常的方法是什么?答:所谓异常,就是程序的运行时错误。 Java 通过面向对象的方法来处理异常。在一个方法的运行过程中,如果发生了一个异常,则 Java 虚拟机会如 同创建其它对象一样,使用 new 在堆上创建异常对象。然后,当前的执行流程被终止,并且从当前环境中弹出异常对象的引用。此时, Java 的异常处理机制接管程序,并开始寻找一个恰当的的地方来继续执行程序。这个恰当 的地方就是“异常处理程序”,它的任务是将程序从错误状态中恢复或者做一些简单
50、地处理后结束程序。简述异常的传播途径。答:在trycatchfinally”结构中,如果没有一个catch 子句能够匹配已经产生的异常,则执行finally 子 句(如果存在)。此时,如果仍然没有程序能够处理这个异常,好像发出异常的语句根本没有嵌套在 try 语句中, 控制流程将会立即离开当前方法,过早地返回调用当前方法的方法中。如果这个调用语句处于某一个 try 语句范围 之内,则将开始执行新一轮的异常匹配操作。节点流和处理流有什么差别?答: 节点流从一个特定的数据源读写数据。即节点流是直接操作文件,网络等的流。处理流是“连接”在已存在的 流(节点流或处理流)之上通过对数据的处理为程序提供更
51、为强大的读写功能。 FileInputStream 、FileOutputStream 、 FileReader 、 FileWriter 都是节点流。缓冲流、转换流、数据流和对象流都是处理流什么是线程?使用多线程有哪些好处?又会带来哪些问题?答: 通俗地讲,线程是一个代码执行流。 使用多线程的好处是:( 1 )多线程为多个代码执行流并发执行提供了可能。 ( 2 )多线程程序比多进程程序降低 了资源占用要求。 使用多线程也会对系统产生一些不利影响:( 1)线程需要占用内存,线程越多,内存占用越多。(2)线程过多, 会消耗大量CPU 时间来跟踪线程。( 3)必须考虑多线程同时访问共享资源的问题,
52、如果没有协调好,就会产生令人意想不到的问题,例如死锁和资源竞争等。(4)因为同一个任务的所有线程都共享相同的地址空间,并共享任务的全局变量,所以程序也必须考虑多线程同时访问的全局变量问题试比较 Runnable 接口中定义的 run() 方法与 Application 程序入口 main() 方法有哪些相近之处?在 Runnable 接口中定义的惟一的方法是run() ,在线程执行时调用。线程退出 run() 之后,就已经死亡,无法重新启动或复用。不管是正常退出还是由于未捕获异常退出,情况都是如此。在效果上,线程的 run() 方法与 Java 应用程序的 main() 方法作用相同:就是代码
53、的初始入口点。在应用程序中, mian() 控制程序的主流程,在线程中, run() 控制线程任务的处理流程。 从本质上来说,对于一个新创建的线程, run() 方法可以被看成是main() 方法:如同程序是从main() 方法开 始运行一样,新线程就是从其run() 方法开始运行过命令行来设定的),而新创建的线程是用静态实例变量或者程序员设计的其他的。但是 main() 方法从 argv 来获取它的参数( argv 一般是通编程的方式从原始线程获取它的参数的。因此,我们可以通过构造方法、技术来获得这些参数如何用分层次的方法看待组件和容器之间的关系?容器和组件通常是具有一定的包含关系的。可以按照这样的观点分层次: 顶层容器(不会包含在其它任何容器中的容器),例如 JFrame 、 JApplet 、 JDialog 、 JWindow 等; 中间容器,例如 JPanel 、JScrollPane 、 JSplitPane 、 JToolBar 等; 基本控件,例如 JButton 、 JComboBox 、 JList 、 JMenu 、JTextField 等; 可编辑的组件,例如 JColorChooser 、 JFileC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售合同里面的质量协议
- 法院签订法企共建协议书
- 汽柴油购销意向合同范本
- 项目投资合作协议书合同
- 物业费如何计算合同范本
- 苏州加装电梯协议书范本
- 矿山承包开采合同协议书
- 海南文旅合作协议书范本
- 签订协议一方拒绝给合同
- 网络安装服务的合同范本
- 小学语文二年级上册《去外婆家》教学设计二
- 反洗钱诚信承诺书
- GB/T 13077-2024铝合金无缝气瓶定期检验与评定
- 2024住宅设计规范
- 2024版人教版英语初一上单词默写表
- 2024-2029年中国电线电缆行业十四五发展分析及投资前景与战略规划研究报告
- 阿森斯失眠量表(AIS)
- (高清版)DZT 0203-2020 矿产地质勘查规范 稀有金属类
- 产教融合校企合作
- 医院年度成本分析报告
- 青少年非自杀性自伤的研究现状
评论
0/150
提交评论