java笔试面试题及答案_第1页
java笔试面试题及答案_第2页
java笔试面试题及答案_第3页
java笔试面试题及答案_第4页
java笔试面试题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、一选择题( 30 分).下列哪些情况可以终止当前线程的运行?a. 抛出一个异常时。b.当该线程调用sleep()方法时。当创建一个新线程时。 (与当前进程无关)当一个优先级高的线程进入就绪状态时。下面哪些为构造函数的特性定义在类中声明构造函数时,名称应该与类名相同具有重载特性,可以建立多个相同的名称使用类建立新对象时, 会自动执行构造函数, 因此在构造函数内设定变量的初值或进行内存分配以上都是关于异常处理机制的叙述哪些正确catc陪B分捕捉到异常情况时,才会执行finally部分(无论是否有毛病, 都执行)b.当try区段的程序发生异常时,才会执行catch区段的程序不论程序是否发生错误及捕捉

2、到异常情况,都会执行finally 部分以上都是下列关于接口的叙述中哪些是正确的接口中的数据必须设定初值(就是接口中的常量)接口中的方法都是抽象方法接口可以声明引用以上都正确Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性 的不同表现。下边哪些说法是对的?A 重写是父类与子类之间多态性的一种表现。B 重写是一个类中多态性的一种表现。C 重载是一个类中多态性的一种表现。D 重载是父类与子类之间多态性的一种表现。在 Struts 应用的视图中包含哪些组件?JSPServletActionServletAction代表业务逻辑或业务数据的 JavaBeanE

3、JB客户化标签struts框架中,关于FormBean,下列哪些说法是正确的:A FormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给ActionB 在 FormBean 中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证C用户每次提交表单,都会产生一个新的FormBean实例D动态FormBean不能进行验证操作哪些方法可以进行servlet 的调试?()A、使用打印语句;在桌面计算机上运行服务器R 使用 Apache Log4JG使用IDE集成的调试器D直接查看HTM源码? ? ? ?E、返回错误页面给客户9、下面关于servlet

4、 的功用说法正确的有哪些? ()A、读取客户程序发送来的显式数据R读取客户程序发送来的隐式数据G生成相应的结果D发送显式的数据给客户程序E、发送隐式的数据给客户程序10、下面关于session 的用法哪些是错误的? (HttpSession session = newHttpSession () ; request.getSession();String haha =(String) session.getParameter(Attribute)(“haha”) ;session.removeAttribute(“haha” ) ;session. setAttribute(“ haha” ,

5、 值) ;11、关于 说法正确的有哪些?()A URL勺输出在请求时被插入到JS顷面中R不能含有影响整个页面的JSPtt容G被包含文件改变后不需更改使用它的页面D、 被包含文件更改后,需要手动地更新使用它的页面 (不需要手动更新)12、关于bean的说法正确的有哪些?()A、具备一个零参数(空)的构造函数(不是必须的)R不应该有公开的实例变量(字段)G所有的属性都必须通过getXxx和setXxx方法来访问D布尔型的属性使用isXxx ,而非getXxx13、下面关于MV说法错误的有哪些?()A必须使用复杂的框架R使用内建的RequestDispatcher能够很好地实现MVCG当其中一个组件

6、发生变化的时候,MV影响整个系统的设计D我们可以用MVCe处理单个请求14、下面的标签中哪些是JST由签?()A R C D 15、struts框架,错误的是,下面那些说法正确?A Struts 中无法完成上传功能B Struts框架基于MVC模式C Struts框架容易引起流程复杂、结构不清晰等问题(清晰)D Struts可以有效地降低项目的类文件数目二、填空题( 5 分)1、调用函数MOD(123,10)返回彳1为一。2、select round (123.67,1) from dual这语句输出值为。3、创建一个临时替代变量使用的字符是。4、若 v_comm = 2800, X := N

7、VL (V_comm,0) , 则 X 的值为 。5、调用函数INSTR( Here you are , er )返回值为_。三、判断题( 10 分)、 WHERE 子 句 限 制 行 记 录 , 也 可 以 指 定 限 制 分 组 结 果 的 条 件 。()、 具 有 UNIQUE 约 束 的 列 不 能 包 含 多 个 空 值 。()、 DATE 型 数 据 中 包 含 着 时 间 值 。()、 具有外键 约束的列可以包含空值。()5、如果在类型为char(4)的歹!J中输入“hello,则只能存储hell。()6 、 含 有 Group by 子 句 的 查 询 , 其 结 果 是 排

8、好 序 的 。()7、定义游标时,其中的select语句不能使用order by子句。(子查询不能用)()过程可以有返 回值。()触发器一定会被激 发。()、 instead of 触 发 器 只 是 基 于 视 图 的 。()SQL 语句(括号内为列名) ( 10 分)1、查询从事各工作(JOB)的员工人数。2、查询与员工SMITH 在同一部门 (DEPTNO) 的员工的姓名 (ENAME) ,工资(SAL) 和部门。3、查询所有员工的姓名(ENAME),工资(SAL)和工资等级(GRADE)。4、查询获得工资(SAL)最高的3个员工信息。5、查询所有员工的姓名(ENAME )及其主管姓名(

9、 ENAME ) 。五、简答题( 15 分). 在 PL/SQL 程序中,进行用户自定义异常处理的 3个步骤是什么?. 面向对象的特征有哪些方面?并简要介绍. List 、 Map、 Set 三个接口,存取元素时,各有什么特点?List 以特定次序来持有元素,可有重复元素。Set 无法拥有重复元素,内部排序。Map 保存key-value值,value可多值。.struts1.0和struts2.0的区别?如何控制两种框架中的单例模式?.描述一下如何在struts1.0实现国际化,以两国语言(中文,英文)为例:.struts 中怎么配置form-bean、 actionHibernate 自带

10、的分页机制是什么?如果不使用 Hibernate 自带的分页,则采用什么方式分页?hibernate 中一对多配置文件返回的是什么?9什么样的数据适合存放到第二级缓存中?10 你一般用 spring 做什么 ?项目中如何体现Spring 中的切面编程,具体说明。触发触发器的数据操作有哪些?解释视图的含义以及使用视图的好处。简述 ORACLE 中 5 种约束及其作用。ORACLE 中过程和函数的异同点。六、编程题( 30 分)1、创建一个PL/SQL 块,根据用户输入的编号,在emp 表中查询出该编号的员工姓名、部门号及其主管编号,要有异常处理。2、创建一个PL/SQL 块,根据用户输入的工作,

11、从emp 表中逐条输出从事这一工作的每位员工的编号、姓名和受雇如期,每条信息格式如下: (用游标实现)编号 姓名 受雇日期7751 JOHN 95-12-313、编写一个函数,用于判断EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名称,则返回 TRUE ,否则返回FALSE 。4、编写一触发器,在EMP 表执行插入或修改前被激发,此触发器将对员工的工资(SAL)超过5000进行报错,不能插入或修改,不超过 5000的才将员工编号、工作及当时的日期(SYSDATE)插入UP_EMP表( 注 : 此表 已建好 , 表结构为 UP_EMP ( EMPNO NUMBER(4),SALNUM

12、BER(7,2),UDETE DATE ) )下面程序的输出结果是多少?public class Test extends Datepublic static void main(String args) new Test().test();public void test()System. out .println(super.getClass().getName();下面的程序代码输出的结果是多少?public class smallTpublic static void main(String args)smallT t = new smallT();int b = t.get();pu

13、blic int get()tryreturn 1 ;finallyreturn 2 ;子线程循环10 次,接着主线程循环100,接着又回到子线程循环10 次,接着再回到主线程又循环100,如此循环50 次,请写出程序。8去掉一个Vector集合中重复的元素9有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数xxx 公司的 sql 面试Table EMPLOYEES Structure:EMPLOYEE_ID NUMBERPrimary Key,FIRST_NAMEVARCHAR2(25),LAST_NAMEVARCHAR2(25),Salary number(8

14、,2),HiredDate DATE,Departmentid number(2)Table Departments Structure:Departmentid number(2) Primary Key, DepartmentName VARCHAR2(25).(1)基于上述EMPLOYEES 表写出查询:写出雇用日期在今年的,或者工资在1000,2000之间的,或者员工姓名(last_nam以Obama打头的所有 员工,列出这些员工的全部个人信息。基于上述 EMPLOYEES 表写出查询:查出部门平均工资大于1800元的部门的所有员工,列出这些员工的全部个人信息。 ()基于上述EMPLO

15、YEES 表写出查询:查出个人工资高于其所在部门平均工资的员工,列出这些员工的全部个人信息及该员工工资高出部门平均工资百分比。答案:答案: ABD TOC o 1-5 h z 2答案:D3答案:BC4答案:AB答案AC答案: A,G答案:A8A B C D E9A B C D E10A B D11A B C12B D13A C14A B C15A B C16答案: C二 填空3 123.7 &28002三判断x xVVWxVxV四写出相应的 SQL 语句1Select job,count(*) from emp group by job;2Select ename,sal,deptno fro

16、m emp where deptno=(select deptno from emp where 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可以通过声

17、明和发布来截获自定义异常。一、在声明部分为声明自定义异常名。二、在执行部分使用 RAISE 语句显式地发布异常。三、在相应的异常处理例程中引用已声明的异常。2(1).抽象:抽象就是忽略一个主题中与当前目标无关的那些方面, 以便更充分地注意与当前目标有关的方面。 抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。. 继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性, 新类称为原 始类的派生类(子类) ,而原始类称为

18、新类的基类(父类) 。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。. 封装:封装是把过程和数据包围起来, 对数据的访问只能通过已定义的界面。 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。. 多态性:多态性是指允许不同类的对象对同一消息作出响应。 多态性包括参数化多态性和包含多态性。 多态性 语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。List 以特定次序来持有元素,可有重复元素。 Set 无法拥有重复元素, 内部排序。 Map 保存

19、 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 资源必须是

20、线程安全的或同步的。struts2.0 Action 为每一个请求产生一个实例 , 因此没有线程安全问题。c 、 Servlet 依赖struts1.2 Action 依赖于 Servlet API, 因为当一个Action 被调用时 HttpServletRequest 和HttpServletResponse 被传递给 execut 方法。struts2.0 Action 不依赖于容器 ,允许 Action 脱离容器单独测试。如果需要,Struts2 Action 仍然可以访问初始的 Request 和 Response 。但是,其他的元素减少或者消除了直接访问HttpServletReq

21、uest 和 HttpServletResponse 的必要性。d 、可测性测试 struts1.2 Action 的一个主要问题是execute 方法暴露了 Servlet API( 这使得测试要依赖于容器 )。一个第三方扩展: struts TestCase提供了一套 struts1.2 的模拟对象来进行测试。Struts2.0 Action 可以通过初始化、设置属性、调用方法来测试, “依赖注入 ”也使得测试更容易。5在工程中加入 Struts 支持编辑 ApplicationRperties 文件 ,在其中加入要使用国际化的信息 , 例如:创建英文资源文件 ApplicationRes

22、ource_perites. 创建临时中文资源文件ApplicationResource_perites 例如:中国欢迎您!. 对临时中文资源文件进行编码转换。可以使用 myeclipse 的插件 ,也可以在 dos 下执行 :native2ascii -encoding gb2312 ApplicationResource_pertiesApplicationResource_zh_CN.properties. 在 jsp 中加入 struts 的 bean 标记库 显示信息:可以在 struts-config.xml 文件中定义多个资源包,而每个资源包可使用 key 属性指定包的名称6.6

23、form-bean 配置:(在配置文件struts-config.xml 中 ):.name: 指定 form 的名字 ; type 指定 form 的类型:包名 +类名;.action 配置:(在配置文件struts-config.xml 中).path= ”?”10.attribute=?11.input=?12.name=?13.parameter=?14.scope=? 15.type=?71 、 hibernate 自带的分页机制:获得 Session 对象后,从 Session 中获得 Query 对象。用Query.setFirstResult() :设置要显示的第一行数据,Qu

24、ery.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 表的关系 。一个学生只能是一个班的 ,一个班可以有多个学生。1 很少被修改的数据 2 不是很重要的数据,允许出现偶

25、尔并发的数据3 不会被并发访问控制反转 IOC AOP面向切面编程:主要是横切一个关注点,将一个关注点模块化成一个切面。在切面上声明一个通知 (Advice) 和切入点 (Pointcut); 通知 : 是指在切面的某个特定的连接点 (代表一个方法的执行。通过声明一个类型的参数可以使通知( Advice )的主体部分获得连接点信息。 )上执行的动作。通知中定义了要插入的方法。切入点:切入点的内容是一个表达式,以描述需要在哪些对象的哪些方法上插入通知中定义的方法。项目中用到的 Spring 中的切面编程最多的地方:声明式事务管理。a、定义一个事务管理器b、配置事务特性(相当于声明通知。一般在业务

26、层的类的一些方法上定义事务)c、配置哪些类的哪些方法需要配置事务(相当于切入点。一般是业务类的方法上)Insert 条件谓词 inserting ;Update 条件谓词updating ;Delete 条件谓词deleting 。视图是一种 Oracle 对象,是来自一张或多张表或视图中数据的子集的逻辑表示。特点:限制对数据库的访问;容易实现数据的复杂的查询;维护数据的独立性;对于相同的数据可以产生不同的视图。Primary key 确保非空且唯一;Foreign key 确保引用完整性;Unique 确保列或者列的组合中的每个值都是唯一的;Check 限制每条记录都要满足的条件;Not n

27、ull 确保该列不能保存空值。两者都带有0 个或多个参数,参数可以具有模式。两者都是 PL/SQL 语句块的不同形式,都有声明段、可执行段以及异常段。两者都可以存储在数据库中或在语句块中声明两者不同的是,过程调用本身是一个PL/SQL 语句,而函数总是向调用块返回一个值。使用 %rowtype 属性声明记录变量的优点是什么?可以不必知道数据库中列的数量和类型。在运行期间,数据库中列的数量和类型可能发生变化。在 SELECT 语句中使用该属性可以有效地检索表中的行。六编程1SET serveroutput ON;Declarev_empno emp.empno%type:= & 员工编号 ;v_

28、ename emp.ename%type;v_deptno emp.deptno%type;v_mgr emp.mgr%type;BeginSELECT ename,deptno,mgr INTO v_ename,v_deptno,v_mgr from emp WHERE empno=v_empno;DBMS_OUTPUT.PUT_LINE( 员工|v_ename| 在部门| v_deptno |主管|v_mgr);EXCEPTIONWHEN NO_DATA_FOUND THENDBMS_OUTPUT.PUT_LINE( 没有此员工 );END;2DeclareCursor emp_cur(v

29、_job emp.job%TYPE) isSelect empno,ename,hiredate from emp where job=v_job;v_empno emp.empno%TYPE;v_ename emp.ename%TYPE;v_hiredate emp.hiredate%TYPE;BEGINOPEN emp_cur(upper( &job );LOOPFetch emp_cur INTO v_empno,v_ename,v_hiredate;Exit when emp_cur%NOTFOUND;DBMS_OUTPUT.PUT_LINE( 编号 姓名 工资 );DBMS_OUTP

30、UT.PUT_LINE(v_empno|v_ename|v_hiredate);END LOOP;CLOSE emp_cur;END;DeclareCursor emp_cur(v_job emp.job%TYPE) isSelect empno,ename,hiredate from emp where job=v_job;v_empno emp.empno%TYPE;v_ename emp.ename%TYPE;v_hiredate emp.hiredate%TYPE;BEGINFOR i IN emp_cu r(upper( &job ) LOOP v_empno:=i.empno;v_

31、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 BOOLEANIs v_job emp.job%TYPE;BEGINSELECT DISTINCT job INTO v_job FROM emp WHERE job=f_job;RETURN TRUE;EXC

32、EPTIONWHEN NO_DATA_FOUND THENRETURN FALSE;END f_emp;BeginIf f_emp(upper( &job ) THENDBMS_OUTPUT.PUT_LINE( 日);ELSEDBMS_OUTPUT.PUT_LINE( 插);END IF;END;4CREATE OR REPLACE TRIGGER t_emp_salBEFORE INSERT OR UPDATE ON empBeginIF :new.sal5000 THENRAISE_APPLICATIONG_ERROR( ERROR!);ELSEINSERT int up_emp V AL

33、UES(empno,sal,sysdate);END IF; END;5很奇怪,果是 Test这属于脑筋急转弯的题目,在一个qq群有个网友正好问过这个问题,我觉得挺有趣,就研究了一下,没想到今天还被你面到了,哈哈。在test方法中,直接调用 getClass().getName()方法,返回的是 Test类名由于getClass() 在Object 类中定义成了 final ,子类不能覆盖该方法,所以,在 test 方法中调用getClass().getName() 方法,其实就是在调用从父类继承的getClass() 方法,等效于调用 super.getClass().getName()方法

34、,所以,super.getClass().getName()方法返回的也应该是Test。如果想得到父类的名称,应该用如下代码: getClass().getSuperClass().getName(); 6返回的结果是2。我可以通过下面一个例子程序来帮助我解释这个答案,从下面例子的运行结果中可以发现,try中的return语句调用的函数先于finally中调用的函数执行,也就是说return语句先执行,finally语句后执行,所以,返回的结果是2。Return并不是让函数马上返回,而是 return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才

35、真正开始返回。7最终的程序代码如下: public class ThreadTest /* param args*/public static void main(String口 args) / TODO Auto-generated method stub new ThreadTest().init(); public void init() final Business business =new Business。;new Thread(new Runnable() public void run() for ( int i=0;i50;i+) business.SubThread(i); ).start(); for (int i=0;i50;i+) business.MainThread(i); private class Business boolean bShouldSub = true ;/

温馨提示

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

评论

0/150

提交评论