logo资料库

中软国际JAVA工程师招聘笔试题及参考答案.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
中软国际JAVA工程师招聘笔试题及参考答案
中软国际 JAVA 工程师招聘笔试题及参考答案 本卷总分 100 分,70 分及格,时间 60 分钟 姓 名 : ____________ 岗 位 : _____________ 地 点 : □ 南 京 □ 深 圳 到 职 日 期 : ______________ 一、问答题 1.C++或 Java 中的异常处理机制的简单原理和应用。 当 JAVA 程序违反了 JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。 违反语义规则包括 2 种情况。一种是 JAVA 类库内置的 语义检查。例如数组下标越界,会引发 IndexOutOfBoundsException;访问 null 的对象时会 引发 NullPointerException。另一种情况就是 JAVA 允许程序员扩展这种语义检查,程序员 可以创建自己的异常,并自由选择在何时用 throw 关键字引发异常。所有的异常都是 java.lang.Thowable 的子类。 2. Java 的接口和 C++的虚类的相同和不同处。 C++虚类相当于 java 里的抽象类, 相同点:(1)都包含抽象方法,声明多个类共用方法的返回值和参数表; (2)都不能被实例化; (3)都是应用数据类型。可以声明抽象类及接口变量,并将子类的对象赋给抽象类变量, 或将实现接口的类的变量赋给接口变量。 不同点:(1)一个类只能继承一个抽象类,是单继承;一个类可以实现多个接口,具有多重 继承的能。 (2)抽象类及其成员具有与普通类一样的访问权限;接口的访问权限有 public 和默 认权限,但接口中成员的访问权限都是 public; (3)抽象类中可以声明成员变量, 成员变量的属性可以更改;接口中只能声明常量。 (4)抽象类中可以声明抽象方法, 普通方法及构造方法;接口中只能声明抽象方法。 3. 垃圾回收的优点和原理。并考虑 2 种回收机制。 Java 语言中引入的垃圾回收机制:它使得 Java 程序员在编写程序的时候不再需要考 虑内存管理。由于有个垃圾回收机制,Java
中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止 内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运 行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收, 程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制:有分代 复制垃圾回收和标记垃圾回收,增量垃圾回收。 4. 给我一个你最常见到的 runtime exception。 自考 Java 语言快速入门 Java 语言基础 Java 语言概述 试图将对象强迫转换为不是实例的子类时,抛 ClassCastException 整数除以零”时,抛 ArithmeticException 空指针时,抛 NullPointerException 下表越界,ArrayIndexOutOfBoundsException 5. 作用域 public,private,protected,以及不写时的区别 作用域 当前类 同一 package 子孙类 其他 package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时默认为 friendly 6. error 和 exception 有什么区别 Error(错误)表示系统级的错误和程序不必处理的异常,是 java 运行环境中的内部错误或者 硬件问题,比如,内存资源不足等,内存溢出, 对于这种错误,程序基本无能为力,除了退 出运行外别无选择。
Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计 的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。 7. List, Set, Map 是否继承自 Collection 接口 Collection 代表一组 Object,即 Collection 的元素。所有实现 Collection 接口的类都必 须提供两个标准的构造函数 无参构造函数用于创建一个空的 Collection,有一个 Collec 参数的构造函数 用于创建一 个新的 Collection; 由 Collection 接口派生的两个子接口是 List,Set; List 必须保持元素的特定顺序,而 Set 不能有重复元素; Map 不是继承 Collection 接口;Map 是成对放的,一放一对。。分成 KEY 和 VALUE 8. abstract class 和 interface 有什么区别 相同点:(1)都包含抽象方法,声明多个类共用方法的返回值和参数表; (2)都不能被实例化; (3)都是应用数据类型。可以声明抽象类及接口变量,并将子类的对象赋给抽象类变量, 或将实现接口的类的变量赋给接口变量。 不同点:(1)一个类只能继承一个抽象类,是单继承;一个类可以实现多个接口,具有多重 继承的功能。 (2)抽象类及其成员具有与普通类一样的访问权限;接口的访问权限有 public 和默认权限,但接口中成员的访问权限都是 public; (3)抽象类中可以声明成员变量,成员变量的属性可以更改;接口中只能声明常量。 (4)抽象类中可以声明抽象方法,普通方法及构造方法;接口中只能声明抽象方法。 9. abstract 的 method 是 否 可 同 时 是 static, 是 否 可 同 时 是 native , 是 否 可 同 时 是 synchronized abstract 需要重载,static 为类方法,没有重载一说 abstract 为没有实现的方法,native 为本机实现的方法,自相矛盾 abstract 方法没有实现,也不可能实际调用抽象方法,没有必要 synchronized 修饰,当然子 类可以根据需要同步该方法.
10. 接口是否可继承接口 抽象类是否可实现(implements)接口 抽象类是否可继承实体 类(concrete class) 接口是否可继承接口? 答:不可以。接口是要被实现而不是被继承的因为接口里面的方法必须全部是抽象方法,接 口 A 实现了接口 B,那么 A 就要重写 B 的抽象方法,重写了之后,A 的性质也就不是接口 A 了,变成了抽象类 A 抽象类是否可实现接口? 答:可以 ,抽象类中可以实现接口中声明的方法。 抽象类是否可继承实体类? 答:可以,抽象类中只要含有抽象的方法即可。 11. 启动一个线程是用 run()还是 start() 启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行状态, 这意味着它可以由 JVM 调度并执行。这并不意味着线程就会立即运行。run()方法可以产生 必须退出的标志来停止一个线程 12. 构造器 Constructor 是否可被 override Constructor 不能被继承,所以 Constructor 也就不能被 override,但是可以 overload,所 以你可以看到有多个构造函数这种情况。 13. EJB 与 JAVA BEAN 的区别? Java Bean 是可重复的组件,对 Java Bean 并没有严格的规范,从理论上讲,任何一个 Java 类都可以是一个 Bean。但通常的情况下,由于 Java Bean 是被容器所创建的,所以 JavaBean 应具有一个无参的构造器,另外通常的 JavaBean 还要去实现 serializable 接口用与实现 Bean 的持久性,JavaBean 不能跨进程访问的。 EJB 的全称是(Enterprise Java Bean) 相当于 DCOM,即分布式组件,它是基于 Java 的远程方法调用的(RMI)技术的,所以 EJB 可以被远程访问的(跨进程、跨计算机)。但 EJB 必须部署在 Webspere、WebLogic 这样的 容器中,EJB 客户不直接访问真的 EJB 组件,而是通过容器访问的。EJB 容器是 EJB 组件的 代理,EJB 组件由容器所创建和管理。客户通过访问真正的 EJB 组件。 14. 描述一下你最常用的编程风格。 1. 类名首字母大写,比如 SupportAction, Servlet, Exception 等
2.方法一般定义为 public。当然,如果方法仅仅在当前类用到可以定义为 private,而如果 希望一个子类沿用这个方法则不同,这时候的方法应定义为 protected 3.常量一般全部大写,也可以包含下横线: public static final int LOGIN_SUCCESS 4. 给自己的代码加入注释 注释就是类的描绘、方法存在的原因、它完成了什么以及它对它其中(变量)的作用域. 15. 描述 Struts 体系结构?对应各个部分的开发工作主要包括哪些? Struts 体系结构 包括模型层(Model),视图层(View),控制器(Controller)。 模型(Model) 在 Struts 的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事 务逻辑)。内部状态通常由一组 ActinForm Bean 表示。根据设计或应用程序复杂度的不同, 这些 Bean 可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。 大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的 bean 调用。 视图(View) 视图主要由 JSP 建立,struts 包含扩展自定义标签库(TagLib),可以简化创建完全国际 化用户界面的过程。目前的标签库包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及 Template Tags 等。 控制器(Controller) 在 struts 中,基本的控制器组件是 ActionServlet 类中的实例 servelt,实际使用的 servlet 在配置文件中由一组映射(由 ActionMapping 类进行描述)进行定义. 二、编程题 1. SQL 问答题 表结构: 1、 表名:g_cardapply 字段(字段名/类型/长度): g_applyno varchar 8;//申请单号(关键字) g_applydate bigint 8 ; // 申 请 日 期 g_state varchar 2 ; // 申 请 状 态 2 、 表 名 : g_cardapplydetail 字段(字段名/类型/长度): g_applyno varchar 8;//申请单号(关键字) g_name varchar 30;//申请人姓名 g_idcard varchar 18;//申 请人身份证号 g_state varchar 2;//申请状态 其中,两个表的关联字段为申
请单号。 题目: 1、 查询身份证号码为 440401430103082 的申请日期 Select g1.g_applydate from g_cardapply g1, g_cardapplydetail g2 where g1.g_applyno=g2. g_applyno and g2.g_idcard='440401430103082' 2、 查询同一个身份证号码有两条以上记录的身份证号码及记录个数 select g_idcard, count(g_applyno) from g_cardapplydetail group by g_idcard having COUNT(g_applyno)>2 3、 将身份证号码为 440401430103082 的记录在两个表中的申请状态均改为 07 update g_cardapplydetail set g_state='07' where g_idcard='440401430103082' update g_cardapply set g_state='07' where g_applyno in( select g1.g_applyno from g_cardapply g1,g_cardapplydetail g2 where g1.g_applyno=g2.g_applyno and g_idcard='440401430103082') 4、 删除 g_cardapplydetail 表中所有姓李的记录 delete from g_cardapplydetail where g_name like '李%' 如果还要删除 g_cardapply 与姓李相关的记录则 sql 语句是: delete from g_cardapply where g_applyno in( select g1.g_applyno from g_cardapply g1,g_cardapplydetail g2 where g1.g_applyno=g2.g_applyno and g_idcard='440401430103082') 2. 写出连接 SQLSERVER 数据库和 ORACLE 数据库的连接方法 连接 SQLSERVER: String driver=”com.microsoft.jdbc.sqlserver.SQLServerDriver”;//驱动 String url="jdbc:Microsoft:sqlserver://localhost:1433;databasename=DBName ";// 路径 String username=”sa”;//用户名 String userpassword=””;//密码 Try{ Class.forName(driver);//加载驱动 Connection connection=DriverManager.getConnection(url,username,password);//建立 数据库链接; Statement stat=connection.createStatement(); ………….. }
分享到:
收藏