JAVA笔试面试题及答案.pdf_第1页
JAVA笔试面试题及答案.pdf_第2页
JAVA笔试面试题及答案.pdf_第3页
JAVA笔试面试题及答案.pdf_第4页
JAVA笔试面试题及答案.pdf_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

一 选择题 30 分 1 下列哪些情况可以终止当前线程的运行 a 抛出一个异常时 b 当该线程调用 sleep 方法时 c 当创建一个新线程时 与当前进程无关 d 当一个优先级高的线程进入就绪状态时 2 下面哪些为构造函数的特性定义 a 在类中声明构造函数时 名称应该与类名相同 b 具有重载特性 可以建立多个相同的名称 c 使用类建立新对象时 会自动执行构造函数 因此在构造函 数内设定变量的初值或进行内存分配 d 以上都是 3 关于异常处理机制的叙述哪些正确 a catch部分捕捉到异常情况时 才会执行finally部分 无论是否 有毛病 都执行 b 当try区段的程序发生异常时 才会执行catch区段的程序 c 不论程序是否发生错误及捕捉到异常情况 都会执行finally部 分 d 以上都是 4 下列关于接口的叙述中哪些是正确的 a 接口中的数据必须设定初值 就是接口中的常量 b 接口中的方法都是抽象方法 c 接口可以声明引用 d 以上都正确 5 Java 语言中 方法的重写 Overriding 和重载 Overloading 是 多态性的不同表现 下边哪些说法是对的 A 重写是父类与子类之间多态性的一种表现 B 重写是一个类中多态性的一种表现 C 重载是一个类中多态性的一种表现 D 重载是父类与子类之间多态性的一种表现 6 在 Struts 应用的视图中包含哪些组件 A JSP B Servlet C ActionServlet D Action E 代表业务逻辑或业务数据的 JavaBean F EJB G 客户化标签 7 struts 框架中 关于 FormBean 下列哪些说法是正确的 AFormBean 是一种数据 bean 主要用来封装表单提交上来的数 据 并把这些数据传递给 Action B 在 FormBean 中可以对页面上传递来的参数进行一下格式上的 验证 这种验证是一种客户端的验证 C 用户每次提交表单 都会产生一个新的 FormBean 实例 D 动态 FormBean 不能进行验证操作 8 哪些方法可以进行 servlet 的调试 A 使用打印语句 在桌面计算机上运行服务器 B 使用Apache Log4J C 使用IDE集成的调试器 D 直接查看HTML源码 E 返回错误页面给客户 9 下面关于servlet的功用说法正确的有哪些 A 读取客户程序发送来的显式数据 B 读取客户程序发送来的隐式数据 C 生成相应的结果 D 发送显式的数据给客户程序 E 发送隐式的数据给客户程序 10 下面关于 session 的用法哪些是错误的 A HttpSession session new HttpSession request getSession B String haha String session getParameter Attribute haha C session removeAttribute haha D session setAttribute haha 值 11 关于说法正确的有哪些 A URL的输出在请求时被插入到JSP页面中 B 不能含有影响整个页面的JSP内容 C 被包含文件改变后不需更改使用它的页面 D 被包含文件更改后 需要手动地更新使用它的页面 不需要手 动更新 12 关于bean的说法正确的有哪些 A 具备一个零参数 空 的构造函数 不是必须的 B 不应该有公开的实例变量 字段 C 所有的属性都必须通过getXxx和setXxx方法来访问 D 布尔型的属性使用isXxx 而非getXxx 13 下面关于MVC说法错误的有哪些 A 必须使用复杂的框架 B 使用内建的RequestDispatcher能够很好地实现MVC C 当其中一个组件发生变化的时候 MVC影响整个系统的设计 D 我们可以用MVC来处理单个请求 14 下面的标签中哪些是JSTL标签 A B C D 15 struts 框架 错误的是 下面那些说法正确 A Struts 中无法完成上传功能 B Struts 框架基于 MVC 模式 C Struts 框架容易引起流程复杂 结构不清晰等问题 清晰 D Struts 可以有效地降低项目的类文件数目 二 填空题 5 分 1 调用函数 MOD 123 10 返回值为 2 select round 123 67 1 from dual 这语句输出值为 3 创建一个临时替代变量使用的字符是 4 若 v comm 2800 X NVL V comm 0 则 X 的值为 5 调用函数 INSTR Here you are er 返回值为 三 判断题 10 分 1 WHERE 子句限制行记录 也可以指定限制分组结果的条件 2 具 有 UNIQUE 约 束 的 列 不 能 包 含 多 个 空 值 3 DATE型数据中包含着时间值 4 具有外键约束的列可以包含空值 5 如果在类型为 char 4 的列中输入 hello 则只能存储 hell 6 含 有 Group by 子 句 的 查 询 其 结 果 是 排 好 序 的 7 定义游标时 其中的 select 语句不能使用 order by 子句 子查询 不能用 8 过程可以有返回值 9 触发器一定会被激发 10 insteadof触发器只是基于视图的 四 写出相应的 SQL 语句 括号内为列名 10 分 1 查询从事各工作 JOB 的员工人数 2 查 询 与 员 工 SMITH 在 同 一 部 门 DEPTNO 的 员 工 的 姓 名 ENAME 工资 SAL 和部门 3 查询所有员工的姓名 ENAME 工资 SAL 和工资等级 GRADE 4 查询获得工资 SAL 最高的 3 个员工信息 5 查询所有员工的姓名 ENAME 及其主管姓名 ENAME 五 简答题 15 分 1 在 PL SQL 程序中 进行用户自定义异常处理的 3 个步骤是 什么 2 面向对象的特征有哪些方面 并简要介绍 3 List Map Set 三个接口 存取元素时 各有什么特点 List 以特定次序来持有元素 可有重复元素 Set 无法拥有重复元素 内部排序 Map 保存 key value 值 value 可多值 4 struts1 0 和 struts2 0 的区别 如何控制两种框架中的单例模式 5 描述一下如何在 struts1 0 实现国际化 以两国语言 中文 英文 为例 6 struts 中怎么配置 form bean action 7 Hibernate 自带的分页机制是什么 如果不使用 Hibernate 自带的分 页 则采用什么方式分页 8 hibernate 中一对多配置文件返回的是什么 9 什么样的数据适合存放到第二级缓存中 10 你一般用 spring 做什么 11 项目中如何体现 Spring 中的切面编程 具体说明 12触发触发器的数据操作有哪些 13解释视图的含义以及使用视图的好处 14简述 ORACLE 中 5 种约束及其作用 15ORACLE 中过程和函数的异同点 六 编程题 30 分 1 创建一个 PL SQL 块 根据用户输入的编号 在 emp 表中查询出 该编号的员工姓名 部门号及其主管编号 要有异常处理 2 创建一个 PL SQL 块 根据用户输入的工作 从 emp 表中逐条输 出从事这一工作的每位员工的编号 姓名和受雇如期 每条信息格式 如下 用游标实现 编号姓名受雇日期 7751JOHN95 12 31 3 编写一个函数 用于判断 EMP 表中某一工作 JOB 是否存在 若 EMP 表存在此工作名称 则返回 TRUE 否则返回 FALSE 4 编写一触发器 在 EMP 表执行插入或修改前被激发 此触发器将 对员工的工资 SAL 超过 5000 进行报错 不能插入或修改 不超 过 5000 的才将员工编号 工作及当时的日期 SYSDATE 插入 UP EMP 表 注 此表已建好 表结构为 UP EMP EMPNO NUMBER 4 SAL NUMBER 7 2 UDETE DATE 5 下面程序的输出结果是多少 import java util Date publicclass Test extends Date public static void main String args new Test test public void test System out println super getClass getName 6 下面的程序代码输出的结果是多少 public classsmallT public static voidmain String args smallT t newsmallT intb t get System out println b public intget try return 1 finally return 2 7 子线程循环 10 次 接着主线程循环 100 接着又回到子线程循环 10 次 接着再回到主线程又循环 100 如此循环 50 次 请写出程序 8 去掉一个 Vector 集合中重复的元素 9有一个字符串 其中包含中文字符 英文字符和数字字符 请统计 和打印出各个字符的个数 10 xxx 公司的 sql 面试 Table EMPLOYEES Structure EMPLOYEE IDNUMBERPrimary Key FIRST NAMEVARCHAR2 25 LAST NAMEVARCHAR2 25 Salary number 8 2 HiredDate DATE Departmentid number 2 Table Departments Structure Departmentid number 2 Primary Key DepartmentNameVARCHAR2 25 1 基于上述 EMPLOYEES 表写出查询 写出雇用日期在今年的 或者工资在 1000 2000 之间的 或者员工姓名 last name 以 Obama 打头的所有员工 列出这些员工的全部个人信息 2 基于上述EMPLOYEES 表写出查询 查出部门平均工资大于1800 元的部门的所有员工 列出这些员工的全部个人信息 3 基于上述 EMPLOYEES 表写出查询 查出个人工资高于其所在部 门平均工资的员工 列出这些员工的全部个人信息及该员工工资高出 部门平均工资百分比 答案 1 答案 ABD 2答案 D 3答案 BC 4答案 AB 5 答案 AC 6 答案 A G 7 答案 A 8AB C D E 9A B C D E 10A B D 11A B C 12B D 13A C 14A B C 15A B C 16 答案 C 二 填空 3123 7 2Selectename sal deptnofromempwheredeptno selectdeptnofromempwhere ename SMITH 3Select ename sal grade from emp salgrade where sal between losal and hisal 4Select from select from emp order by sal desc where rownum 3 5Select e1 ename empname e2 ename mgrname from emp e1 emp e2 where e1 mgr e2 empno 五简答 1 可以通过声明和发布来截获自定义异常 一 在声明部分为声明自定义异常名 二 在执行部分使用 RAISE 语句显式地发布异常 三 在相应的异常处理例程中引用已声明的异常 2 1 抽象 抽象就是忽略一个主题中与当前目标无关的那些方面 以便更充分地注意与当前目标有关的 方面 抽象并不打算了解全部问题 而只是选择其中的一部分 暂时不用部分细节 抽象包 括两个方面 一是过程抽象 二是数据抽象 2 继承 继承是一种联结类的层次模型 并且允许和鼓励类的重用 它提供了一种明确表述共性的方 法 对象的一个新类可以从现有的类中派生 这个过程称为类继承 新类继承了原始类的特 性 新类称为原始类的派生类 子类 而原始类称为新类的基类 父类 派生类可以从 它的基类那里继承方法和实例变量 并且类可以修改或增加新的方法使之更适合特殊的需 要 3 封装 封装是把过程和数据包围起来 对数据的访问只能通过已定义的界面 面向对象计算始于这 个基本概念 即现实世界可以被描绘成一系列完全自治 封装的对象 这些对象通过一个受 保护的接口访问其他对象 4 多态性 多态性是指允许不同类的对象对同一消息作出响应 多态性包括参数化多态性和包含多态 性 多态性语言具有灵活 抽象 行为共享 代码共享的优势 很好的解决了应用程序函数 同名问题 List 以特定次序来持有元素 可有重复元素 Set 无法拥有重复元素 内部排序 Map 保存 key value 值 value 可多值 3List 以特定次序来持有元素 可有重复元素 Set 无法拥有重复元素 内部排序 Map 保 存 key value 值 value 可多值 4a Action 类 struts1 2 要求 Action 类继承一个基类 struts2 0 Action 要求继承 ActionSupport 基类 b 线程模式 struts1 2 Action 是单例模式的并且必须是线程安全的 因为仅有一个 Action 的实例来处理所 有的请求 单例策略限制了 Struts1 2 Action 能做的事情 并且开发时特别小心 Action 资源必须是线程 安全的或同步的 struts2 0 Action 为每一个请求产生一个实例 因此没有线程安全问题 c Servlet 依赖 struts1 2 Action 依赖于 Servlet API 因为当一个 Action 被调用时 HttpServletRequest 和 HttpServletResponse 被传递给 execut 方法 struts2 0 Action 不依赖于容器 允许 Action 脱离容器单独测试 如果需要 Struts2 Action 仍 然可以访问初始的 Request 和 Response 但是 其他的元素减少或者消除了直接访问 HttpServletRequest 和 HttpServletResponse 的 必要性 d 可测性 测试struts1 2 Action的一个主要问题是execute方法暴露了Servlet API 这使得测试要依赖 于容器 一个第三方扩展 struts TestCase 提供了一套 struts1 2 的模拟对象来进行测试 Struts2 0 Action 可以通过初始化 设置属性 调用方法来测试 依赖注入 也使得测试更容 易 5 1 在工程中加入 Struts 支持 2 编辑 ApplicationResource properties 文件 在其中加入要使用国际化的信息 例如 lable welcome china Welcome 3 创建英文资源文件 ApplicationResource en properites 4 创建临时中文资源文件 ApplicationResource temp properites 例如 lable welcom china 中国欢迎您 5 对临时中文资源文件进行编码转换 可以使用 myeclipse 的插件 也可以在 dos 下执行 native2ascii encoding gb2312 ApplicationResource temp properties ApplicationResource zh CN properties 6 在 jsp 中加入 struts 的 bean 标记库 显示信息 可以在 struts config xml 文件中定义多个资源包 而每个资源包可使用 key 属性指定包的名 称 6 6form bean 配置 配置 在配置文件在配置文件 struts config xml 中中 name 指定指定 form 的名字的名字 type 指定指定 form 的类型 包名的类型 包名 类名 类名 action 配置 配置 在配置文件在配置文件 struts config xml 中中 path attribute input name parameter scope type 71 hibernate 自带的分页机制 获得 Session 对象后 从 Session 中获得 Query 对象 用 Query setFirstResult 设置要显示的第一行数据 Query setMaxResults 设置要显示的最后一行数据 2 不使用 hibernate 自带的分页 可采用 sql 语句分页 如 5 为每页显示的记录 2 为当前页 select top 5 from table where tabId not in select tabId top 2 1 5 from table 8hibernate 中一对多配置文件会相应的映射为两张表 并且它们之间的关系是一对多 的 例如 一个 student 和 classes 表的关系 一个学生只能是一个班的 一个班可以有多个学 生 9 1 很少被修改的数据 2 不是很重要的数据 允许出现偶尔并发的数据 3 不会被并发访 问 10 控制反转 IOC AOP 11 面向切面编程 主要是横切一个关注点 将一个关注点模块化成一个切面 在切面上 声明一个通知 Advice 和切入点 Pointcut 通知 是指在切面的某个特定的连接点 代表一 个方法的执行 通过声明一个 org aspectj lang JoinPoint 类型的参数可以使通知 Advice 的主体部分获得连接点信息 上执行的动作 通知中定义了要插入的方法 切入点 切入 点的内容是一个表达式 以描述需要在哪些对象的哪些方法上插入通知中定义的方法 项目中用到的 Spring 中的切面编程最多的地方 声明式事务管理 a 定义一个事务管理器 b 配置事务特性 相当于声明通知 一般在业务层的类的一些方法上定义事务 c 配置哪些类的哪些方法需要配置事务 相当于切入点 一般是业务类的方法上 12Insert 条件谓词 inserting Update 条件谓词 updating Delete 条件谓词 deleting 13 视图是一种 Oracle 对象 是来自一张或多张表或视图中数据的子集的逻辑表示 特点 限制对数据库的访问 容易实现数据的复杂的查询 维护数据的独立性 对于相同的 数据可以产生不同的视图 14Primary key 确保非空且唯一 Foreign key 确保引用完整性 Unique 确保列或者列的组合中的每个值都是唯一的 Check 限制每条记录都要满足的条件 Not null 确保该列不能保存空值 15 两者都带有 0 个或多个参数 参数可以具有模式 两者都是 PL SQL 语句块的不同形式 都有声明段 可执行段以及异常段 两者都可以存储在数据库中或在语句块中声明 两者不同的是 过程调用本身是一个 PL SQL 语句 而函数总是向调用块返回一个值 16使用 rowtype 属性声明记录变量的优点是什么 可以不必知道数据库中列的数量和类型 在运行期间 数据库中列的数量和类型可能发生变化 在 SELECT 语句中使用该属性可以有效地检索表中的行 六编程 1SET serveroutput ON Declare v empno emp empno type v ename emp ename type v deptno emp deptno type v mgr emp mgr type Begin SELECTename deptno mgrINTOv ename v deptno v mgrfromempWHERE empno v empno DBMS OUTPUT PUT LINE 员工 v ename 在部门 v deptno 主管 v mgr EXCEPTION WHEN NO DATA FOUND THEN DBMS OUTPUT PUT LINE 没有此员工 END 2Declare Cursor emp cur v job emp job TYPE is Select empno ename hiredate from emp where job v job v empno emp empno TYPE v ename emp ename TYPE v hiredate emp hiredate TYPE BEGIN OPEN emp cur upper LOOP Fetch emp cur INTO v empno v ename v hiredate Exit when emp cur NOTFOUND DBMS OUTPUT PUT LINE 编号姓名工资 DBMS OUTPUT PUT LINE v empno v ename v hiredate END LOOP CLOSE emp cur END Declare Cursor emp cur v job emp job TYPE is Select empno ename hiredate from emp where job v job v empno emp empno TYPE v ename emp ename TYPE v hiredate emp hiredate TYPE BEGIN FOR i IN emp cur upper v ename i ename v hiredate i hiredate DBMS OUTPUT PUT LINE 编号姓名工资 DBMS OUTPUT PUT LINE v empno v ename v hiredate END LOOP END 3CREATE OR REPLACE FUNCTION f emp f job emp job TYPE RETURN BOOLEAN Is v job emp job TYPE BEGIN SELECT DISTINCT job INTO v job FROM emp WHERE job f job RETURN TRUE EXCEPTION WHEN NO DATA FOUND THEN RETURN FALSE END f emp Begin If f emp upper ELSE DBMS OUTPUT PUT LINE 插 END IF END 4CREATE OR REPLACE TRIGGER t emp sal BEFORE INSERT OR UPDATE ON emp Begin IF new sal 5000 THEN RAISE APPLICATIONG ERROR ERROR ELSE INSERT int up emp VALUES empno sal sysdate END IF END 5很奇怪 结果是 Test 这属于脑筋急转弯的题目 在一个 qq 群有个网友正好问过这个问题 我觉得挺有趣 就研究了 一下 没想到今天还被你面到了 哈哈 在 test 方法中 直接调用 getClass getName 方法 返回的是 Test 类名 由于 getClass 在 Object 类中定义成了 final 子类不能覆盖该方法 所以 在 test 方法中调用 getClass getName 方法 其实就是在调用从父类继承的 getClass 方法 等效于调用super getClass getName 方法 所以 super getClass getName 方法返回的也应该是 Test 如果想得到父类的名称 应该用如下代码 getClass getSuperClass getName 6 返回的结果是 2 我可以通过下面一个例子程序来帮助我解释这个答案 从下面例子的运行结果中可以发现 try 中的 return 语句调用的函数先于 finally 中调用的函数执行 也就是说 return 语句先执行 finally 语句后执行 所以 返回的结果是 2 Return 并不是让函数马上返回 而是 return 语 句执行后 将把返回结果放置进函数栈中 此时函数并不是马上返回 它要执行 finally 语 句后才真正开始返回 7最终的程序代码如下 public class ThreadTest param args public static void main String args TODO Auto generated method stub new ThreadTest init public void in

温馨提示

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

评论

0/150

提交评论