logo资料库

神州数码面试题 (java).doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15 分) 2.下面程序运行会发生什么结果?如果有错误,如何改正? (15 分) interface A{ int x = 0; } class B{ int x =1; } class C extends B implements A { public void pX(){ System.out.println(x); } public static void main(String[] args) { new C().pX(); } } } 3.简述 Java Server Page 和 Servlet 的联系和区别。(20 分) 4.XML 文档定义有几种形式?它们之间有何本质区别? 解析 XML 文档有哪几种方式?(20 分) 5.简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?(15 分) 6.EJB 规范规定 EJB 中禁止的操作有哪些?(15 分) 最后还有一题考考你的眼力: public String toString(){ return this + "@" + this.hashCode(); } 这个 toString()方法实现有无不当的地方?(toString 方法其实可以按你想输出的任何内容输出 一些该类的信息) ******************************************************************************* *** public String toString(){ return this + "@" + this.hashCode(); } 会变成 public String toString(){ return String.valueOf(this) + "@" + String.valueOf(this.hashCode()); } 而 valueOf 方法又将去调用 toString(); /** public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString(); } */ 这样好像会有问题了吧??? 以下答案供参考(不一定完全正确),也没有很详细说明.相关知识可以自己参考相关资料加上 自己的理解.欢迎拍砖 1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15 分) 区别主要答两点: a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型 b.逻辑操作不会产生短路.如: int a = 0; int b = 0; if( (a = 3) > 0 || (b = 3) > 0 ) //操后 a =3,b=0. if( (a = 3) > 0 | (b = 3) > 0 ) //操后 a =3,b=3. 答对第一点得 5 分,答对第二点得 10 分. 本题考察最最基本的知识,但仍然有很多大牛级开发人员下马,任何语言在开始的部分 都会详细介绍这些基本知识,但除了学习第一种语言时,没有人在学习新的语言时愿意 花五分钟来复习一下. 2.下面程序运行会发生什么结果?如果有错误,如何改正? (15 分) interface A{ int x = 0; } class B{ int x =1; } class C extends B implements A { public void pX(){ System.out.println(x); } public static void main(String[] args) { new C().pX(); } } } 本题在编译时会发生错误(错误描述不同的 JVM 有不同的信息,意思就是未明确的 x 调用, 两个 x 都匹配,就象在同时 import java.util 和 java.sql 两个包时直接声明 Date 一样) 本题主要考察对接口和类的最最基本的结构的了解.对于父类的变量,可以用 super.x 来 明确,而接口的属性默认隐含为 public static final.所以可以通过 A.x 来明确. 3.简述 Java Server Page 和 Servlet 的联系和区别。(20 分) 本题不用多说,在答相同点时应该明确知道 jsp 编译后是"类 servlet"而"不是 Servlet",
答区别时应该回答出"侧重于(视图/控制逻辑)".其它可根据情况加减分值.知识很简单, 但从面试的角度看,被试者不仅要能知道它们的区别,而且要能比较准确地表达出来(以 后写文档要能让别人看得懂,不产生歧义),回答"jsp 编译后就是 servlet"视为错误,回答 "jsp 用于视图,servlet 用于控制逻辑"视为错误,应该用侧重于,主要(多数)用于等词语 表达. 4.XML 文档定义有几种形式?它们之间有何本质区别? 解析 XML 文档有哪几种方式?(20 分) 本题三个答题点: a: 两种形式 dtd,schema b: 本质区别:schema 本身是 xml 的,可以被 XML 解析器解析(这也是从 DTD 上发展 schema 的 根本目的) c: 两种主要方式:dom,sax.答出两种得全分,如能答出 saxt,或其它(在答出 dom,sax 的基 础上,如果应试者认为其它方式也可以视为对 xml 的解析应该允许.但没有答出 dom,sax 把 其它方式说成是对 XML 的解析不得分)应该加分. 5.简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?(15 分) 主要相同点: Lock 能完成 synchronized 所实现的所有功能.(其它不重要) 主要不同点: Lock 有比 synchronized 更精确的线程语义和更好的性能(在相同点中回答此点也行) synchronized 会自动释放锁.而 Lock 一定要求程序员手工释放.并且必须在 finally 从句 中释放,如果没有答出在 finally 中释放不得分.就如 Connection 没有在 finally 中关闭一 样.连最基本的资源释放都做不好,还谈什么多线程编程. 6.EJB 规范规定 EJB 中禁止的操作有哪些?(15 分) 共有 8 点,答出下列 3-4 点得满分. 不能操作线程和线程 API(线程 API 指非线程对象的方法如 notify,wait 等) 2.不能操作 awt 3.不能实现服务器功能 4.不能对静态属生存取. 5.不能使用 IO 操作直接存取文件系统 6.不能加载本地库. 7.不能将 this 作为变量和返回. 8.不能循环调用. 1,软件开发过程,遵循什么规范。 软件开发过程大的方面来讲包括需求分析、软件设计和实现(概要设计、详细设计、编码)、 软件测试(单元测试、代码检查、功能测试、系统测试、验收测试)和交付 规范:1 命名规范 2 代码规范 3 工程文件组织规范 4 类组织规范 5 用户界面规范 6 疑难解答 和 Bug 调试方法
2,作用域 public,protected,private,以及不写时的区别。 public 可以被本身和其他的包中的类引用,protected 可以被同一个包内的类以及不同包中的 子类引用,private 只有自己的类中可以使用。不写的时候只能被同一个包中的类引用。 3,char 型变量能不能定义为一个中文?为什么? 可以定义。因为 java 中的 char 是两个字节,可以存储中文。 4,jsp 有哪些内置对象?作用分别是什么? JSP 共有以下 9 种基本内置组件(可与 ASP 的 6 种内部组件相对应): request 用户端请求,此请求会包含来自 GET/POST 请求的参数 response 网页传回用户端的回应 pageContext 网页的属性是在这里管理 session 与请求有关的会话期 application servlet 正在执行的内容 out 用来传送回应的输出 config servlet 的构架部件 page JSP 网页本身 exception 针对错误网页,未捕捉的例外 5,jsp 有哪些动作?作用分别是什么? JSP 共有以下 6 种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个 JavaBean。 jsp:setProperty:设置 JavaBean 的属性。 jsp:getProperty:输出某个 JavaBean 的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记 6,JSP 中 INCLUDE 两种实现方式的区别? 动态、静态两种。 动态 INCLUDE 用 jsp:include 动作实现 它总是会检查所含文件中的变化,适合用于包 含动态页面,并且可以带参数 静 态 INCLUDE 用 include 伪 码 实 现, 定 不 会 检 查 所 含 文 件 的 变 化 , 适 用 于 包 含 静 态 页 面 <%@ include file="included.htm" %> 7,JSP 中两种跳转方式是什么?区别是什么? 前者页面不会转向 include 所指的页面,只是显示该页的结果,主页面还是原来的页面。执 行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。 相当于 go to 语句。 8,JSP 有哪些中文问题,如何解决?
1JSP 的 charset 2JSP SERVER 编译 JSP 是使用的字符集,默认和操作系统是一样的,可能需要进行修改 3 你的 BEAN 编译时候所采用的字符集,一般用 JavaC 编译,都是和操作系统一样的,但 你可以通过带参数来改变。 4 和数据库连接时,大多数 JDBC 驱动程序都可以设置其字符集的,这样 JDBC 驱动会自己 进行转换,也不会出现汉字问题。 9,说一说 Servlet 的生命周期? servlet 有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个 生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表达。 Servlet 的生命周期是当服务器装载运行 servlets,接收来自客户端的多个请求并且返回数据 给客户端,然后再删除移开 servlets 的时间。 10,可能会让你写一段 Jdbc 连 Oracle 的程序. Connection conn = null; String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@myoracle:1521:test"; String user = "user"; String password = "123"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException e) { System.err.print("ClassNotFoundException: Load jdbc-driver failure!"); System.err.println(e.getMessage()); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) { conn.close(); conn = null; } } 11,Class.forName 的作用?为什么要用?
Class.forName 是寻找并加载一个类。用它是为了 load 你指定名称的 class。 12,xml 有哪些解析技术?区别是什么? 有两种:DOM 和 SAX. DOM:可以得到一个包含文档中所有元素的树结构. SAX:在文档的不同治点产生事件,应用程序可以决定如何处理这些事件以从解析器中得到信 息. 13,MVC 的各个部分都有那些技术来实现?如何实现? MVC 是 Model - View - Controller 的 简 写 。"Model" 代 表 的 是 应 用 的 业 务 逻 辑 ( 通 过 JavaBean,EJB 组件实现), "View" 是应用的表示面(由 JSP 页面产生),"Controller" 是提 供应用的处理过程控制(一般是一个 Servlet),通过这种设计模型把应用逻辑,处理过程和 显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 14,javascript 如何校验数字型? isNaN(parseFloat(xxx))如果为 true,则不是数字。 var v = document.all.Telephone.value; if(isNan(v)){ alert("全是数字"); } 15,html 样式表作用,原理。 大量减少网页代码,原理就是在网页中自定义样式表的选择符,然后在网页中大量引用这些 选择符。目前大部分网站都是使用 class 来引用的。 16,请估计北京有多少加油站?并简述理由。 北京有 200 万量机动车,加油站工作时间按每天 18 小时,假设每个油站能同时工作 6 个油 泵,每次为车加油时间为 3 分钟,每天一个加油站工作车辆数:18*60*6/3=2160 辆,所需 加油站数量=2000000/2160=926 个加油站。 17,给你一个非常困难的问题,你将如何解决它。 询问有解决能力的人该如何解决并在以后的工作之中将它也变成自己可以解决的问题。
分享到:
收藏