【计算机类职业资格】(Java)程序员面试-9及答案解析.doc
《【计算机类职业资格】(Java)程序员面试-9及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】(Java)程序员面试-9及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、(Java)程序员面试-9 及答案解析(总分:100.00,做题时间:90 分钟)一、论述题(总题数:25,分数:100.00)1.Java 语言有哪优点 (分数:4.00)_2.Java 与 C/C+有什么异同 (分数:4.00)_3.为什么需要 public static void main (Stringargs)这个方法 (分数:4.00)_4.如何实现在 main()方法执行前输出“Hello World” (分数:4.00)_5.Java 程序初始化的顺序是怎样的 (分数:4.00)_6.Java 中的作用域有哪 (分数:4.00)_7.一个 Java 文件中是否可以定义多个类 (
2、分数:4.00)_8.什么是构造函数 (分数:4.00)_9.为什么 Java 中有接口没有任何方法 (分数:4.00)_10.Java 中的 clone 方法有什么作用 (分数:4.00)_11.什么事是反射机制 (分数:4.00)_12.package 有什么作用 (分数:4.00)_13.如何实现类似于 C 语言中函数指针的功能 (分数:4.00)_14.面向对象与面向过程有什么区别 (分数:4.00)_15.面向对象有哪特征 (分数:4.00)_16.面向对象的开发方式有什么优点 (分数:4.00)_17.什么是继承 (分数:4.00)_18.组合和继承有什么区别 (分数:4.00)_
3、19.多态的实现机制是什么 (分数:4.00)_20.重载和覆盖有什么区别 (分数:4.00)_21.抽象类 (分数:4.00)_22.内部类有哪 (分数:4.00)_23.如何获取父类的类名 (分数:4.00)_24.this 与 super 有什么区别 (分数:4.00)_25.变量命名有哪规则 (分数:4.00)_(Java)程序员面试-9 答案解析(总分:100.00,做题时间:90 分钟)一、论述题(总题数:25,分数:100.00)1.Java 语言有哪优点 (分数:4.00)_正确答案:()解析:Sun Microsystems 公司对 Java 语言的描述如下:“Java is
4、 a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language”。具体而言,Java 语言具有以下几个方面的优点: 1) Java 为纯面向对象的语言。Java 编程思想提到 Java 语言是一种“Everything is object”的语言,它能够直接反应现实生活中的对象,例如火车、动物等,因此通过它,开发人员编写程序更为容易。 2)平台无关性
5、。Java 语言可以“一次编译,到处运行”。无论是在 windows 平台还是在 Linux、MacOS 等其他平台上对 Java 程序进行编译,编译后的程序在其他平台上都可以运行。由于 Java 为解释型语言,编译器会把 Java 代码变成“中间代码”,然后在 Java 虚拟机(Javavirtual Machine, JVM)上解释执行。由于中间代码与平台无关,因此,Java 语言可以很好地跨平台执行,具有很好的可移植性。 3)Java 提供了很多内置的类库,通过这些类库,简化了开发人员的程序设计工作,同时缩短了项目的开发时间,例如,Java 语言提供了对多线程的支持,提供了对网络通信的支
6、持,最重要的是提供了垃圾回收器,这使得开发人员从对内存的管理中解脱出来。 4)提供了对 Web 应用开发的支持,例如,Applet、Servlet 和 JSP 可以用来开发 Web 应用程序;Socket、RMI 可以用来开发分布式应用程序的类库。 5)具有较好的安全性和健壮性。Java 语言经常被用在网络环境中,为了增强程序的安全性,Java 语言提供了一个防止恶意代码攻击的安全机制(数组边界检测和 Bytecode 校验等)。Java 的强类型机制、垃圾回收器、异常处理和安全检查机制使得用 Java 语言编写的程序有很好的健壮性。 6)去除了 C+语言中难以理解、容易混淆的特性,例如头文件
7、、指针、结构、单元、运算符重载、虚拟基础类、多重继承等,使得程序更加严谨、简洁。 常见笔试题: Java 语言是由_语言改进并重新设计而来的。 AAda BC+ CPascal DBASIC 答案:B。Ada 语言是美国军方为了整合不同语言开发的系统而发明的一种语言,其最大的特点是实时性,在 Ada95 中已加入面向对象内容。Pascal 语言是为提倡结构化编程而发明的语言。BASIC 语言为了让大学生容易地控制计算机开发的语言,其特点是简单易懂,且可以用解释和编译两种方法执行。C+语言是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言,它支持过程化程序设计、数据抽象、面向对象程序设
8、计、泛型程序设计等多种程序设计风格。Java 语言是一种面向对象语言,从语法结构上看,与 C+类似。2.Java 与 C/C+有什么异同 (分数:4.00)_正确答案:()解析:Java 与 C+都是面向对象语言,都使用了面向对象思想(例如封装、继承、多态等),由于面向对象有许多非常好的特性(继承、组合等),因此二者都有很好的可重用性。 需要注意的是,二者并非完全一样,下面主要介绍它们的不同点: 1)Java 为解释性语言,其运行过程为:程序源代码经过 Java 编译器编译成字节码,然后由 JVM 解释执行。而 C/C+为编译型语言,源代码经过编译和链接后生成可执行的二进制代码。因此,Java
9、 的执行速度比 C/C+慢,但是 Java 能够跨平台执行,而 C/C+不能。 2)Java 为纯面向对象语言,所有代码(包括函数、变量等)必须在类中实现,除基本数据类型(包括int、float 等)外,所有类型都是类。此外,Java 语言中不存在全局变量或全局函数,而 C+兼具面向过程和面向过程编程的特点,可以定义全局变量和全局函数。 3)与 C/C+语言相比,Java 语言中没有指针的概念,这有效防止了 C/C+语言中操作指针可能引起的系统问题,从而使程序变得更加安全。 4)与 C+语言相比,Java 语言不支持多重继承,但是 Java 语言引入了接口的概念,可以同时实现多个接口。由于接口
10、也具有多态特性,因此在 Java 语言中可以通过实现多个接口来实现与 C+语言中多重继承类似的目的。 5)在 C+语言中,需要开发人员去管理对内存的分配(包括申请与释放),而 Java 语言提供了垃圾回收器来实现垃圾的自动回收,不需要程序显式地管理内存的分配。在 C+语言中,通常都会把释放资源的代码放到析构函数中,Java 语言中虽然没有析构函数,但却引入了一个 finalize()方法,当垃圾回收器将要释放无用对象的内存时,会首先调用该对象的 finalize()方法,因此,开发人员不需要关心也不需要知道对象所占的内存空间何时会被释放。 C+语言支持运算符重载,而 Java 语言不支持运算符
11、重载。C+语言支持预处理,而 Java 语言没有预处理器,虽然不支持预处理功能(包括头文件、宏定义等),但它提供的 import 机制与 C+中的预处理器功能类似。C+支持默认函数参数,而 Java 不支持默认函数参数。C/C+支持 goto 语句,而 Java 不提供 goto语句(但 Java 中 goto 是保留关键字)。C/C+支持自动强制类型转换,这会导致程序的不安全;而 Java 不支持自动强制类型转换,必须由开发人员进行显式地强制类型转换。C/C+中,结构和联合的所有成员均为公有,这往往会导致安全性问题的发生,而 Java 根本就不包含结构和联合,所有内容都封装在类里面。Java
12、 具有平台无关性,即对每种数据类型都分配固定长度,例如,int 类型总是占据 32 位,而 C/C+却不然,同一个数据类型在不同的平台上会分配不同的字节数。 Java 提供对注释文档的内建支持,所以源码文件也可以包含它们自己的文档。通过一个单独的程序,这些文档信息可以提取出来,并重新格式化成 HTML。 Java 包含了一些标准库,用于完成特定的任务,同时这些库简单易用,能够大大缩短开发周期,例如,Java 提供了用于访问数据库的 JDBC 库,用于实现分布式对象的 RMI 等标准库。C+则依靠一些非标准的、由其他厂商提供的库。 常见笔试题: 下列说法中,错误的有_。 AJava 面向对象语言
13、容许单独的过程与函数存在 BJava 面向对象语言容许单独的方法存在 CJava 语言中的方法属于类中的成员(member) DJava 语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同 答案:A、B、C。见上面讲解。3.为什么需要 public static void main (Stringargs)这个方法 (分数:4.00)_正确答案:()解析:public static void main (Stringargs)为 Java 程序的入口方法,JVM 在运行程序时,会首先查找 main()方法。其中,public 是权限修饰符,表明任何类或对象都可以访问这个方法,sta
14、tic 表明main()方法是一个静态方法,即方法中的代码是存储在静态存储区的,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过类名. main()直接访问,JVM 在启动时就是按照上述方法的签名(必须有 public 与 static 修饰,返回值为 void,且方法的参数为字符串数组)来查找方法的入口地址,若能找到,就执行;找不到,则会报错。void 表明方法没有返回值,main 是 JVM 识别的特殊方法名,是程序的入口方法。字符串数组参数 args 为开发人员在命令行状态下与程序交互提供了一种手段。因为 main 是程序的入口方法,所以当程序运行时,第一个执行
15、的方法就是 main()方法。通常来讲,要执行一个类的方法,先必须实例化一个类的对象,然后通过对象来调用这个方法。但由于 main 是程序的入口方法,此时还没有实例化对象,因此在编写 main()方法时就要求不需要实例化对象就可以调用这个方法,鉴于此,main()方法需要被定义成 public 与 static。下例给出了在调用 main()方法时传递参数的方法。 public class Test public static void main(Stringargs) for(int i=0;iargs. length;i+) System.out.println(argsi); 在控制台下
16、,使用 javac Test java 指令编译上述程序,使用 java Test arg1 arg2 arg3 指令运行程序,程序运行结果为: arg1 arg2 arg3 引申: 1main()方法是否还有其他可用的定义格式? 1)由于 public 与 static 没有先后顺序关系,因此下面的定义也是合理的。 static public void main (Stringargs) 2)也可以把 main()方法定义为 final。 public static final void main (String args) 3)也可以用 synchronized 来修饰 main()方法。
17、 static public synchronized void main (Stringargs) 不管哪种定义方式,都必须保证 main()方法的返回值为 void,并有 static 与 public 关键字修饰。同时由于 main()方法为程序的入口方法,因此不能用 abstract 关键字来修饰。 2同一个 java 文件中是否可以有多个 main()方法? 虽然每个类中都可以定义 main()方法,但是只有与文件名相同的用 public 修饰的类中的 main()方法才能作为整个程序的入口方法。如下例所示,创建了一个名为 Test.java 的文件。 class T public
18、static void main(Stringargs) System.out.println(“T main“); public class Test /程序入口函数 public static void main(Stringargs) System.out.println(“Test main“); 程序运行结果为: Test main 常见笔试题: Java 程序中程序运行入口方法 main 的签名正确的有_。 Apublic static void main (Stringargs) Bpublic static final void main (Stringargs) Cstati
19、c public void main (Stringargs) Dstatic public synchronized void main (Stringargs) Estatic public abstract void main (Stringargs) 答案:A、B、C、D。见上面讲解。4.如何实现在 main()方法执行前输出“Hello World” (分数:4.00)_正确答案:()解析:众所周知,在 Java 语言中,main()方法是程序的入口方法,在程序运行时,最先加载的就是main()方法,但这是否意味着 main()方法就是程序运行时第一个被执行的模块呢? 答案是否定的。
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 JAVA 程序员 面试 答案 解析 DOC
