java工程师面试题大全100%公司笔试题你都能碰到几个(5)

2019-05-18 20:59

原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址

101. struts中的prepare怎么用? prepare是在validate拦截器之前执行

public class RoleAction extends ActionSupport implements Preparable{ @Override

public void prepare() throws Exception { //初始化list } }

102. C#题目conetextmenu控件如何使用.. listview

ContextMenu 组件提供与选定对象相关的常用命令的菜单。可以通过向 MenuItems 集合中添加 MenuItem 对象来向快捷菜单中添加项。可以从快捷菜单中永久地移除项;但是在运行时隐藏或禁用项可能更为妥当。 ListView的ContextMenu属性设置为ContextMenu对象

103. 写一条SQL语句,查询姓张学生中平均成绩大于75的学生信息 select * from student where name in (select name from student where name like '张%' group by name having avg(score) > 75)

104. 从以下方面比较strut1和strut2:线程模式、依赖、可测性、表达式语言、捕获输入、绑钉值到页面、类

型转换

线程模式: Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。

? Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题) Servlet 依赖:

? Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse 被传递给execute方法。

? Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。 可测性:

? 测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。 ? Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。 捕获输入:

? Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经 常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存 在的JavaBean(仍然会导致有冗余的javabean)。 ? Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过 web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种 ModelDriven 特性简化了taglib对POJO输入对象的引用。

表达式语言:

? Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。 ? Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言--\Graph Notation Language\(OGNL).

绑定值到页面(view):

? Struts 1使用标准JSP机制把对象绑定到页面中来访问。

? Struts 2 使用 \技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。 类型转换:

? Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。

? Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。 105. struts的工作原理可分为如下8步。 1.读取配置(初始化ModuleConfig对象)

Struts框架总控制器(ActionServlet)是一个Servlet,在web.xml中被配置成一个自动启动的Servlet。读取配置文件struts-config.xml的配置信息,为不同的Struts模块初始化相应的ModuleConfig对象。 2.用户请求

用户提交表单或调用URL向WEB应用程序服务器提交一个请求,请求的数据用HTTP协议上传给WEB服务器。 3.填充FormBean

(*.do请求)从ActionConfig中找出对应该请求的Action子类,如有对应的Action且这个Action又一个相应的ActionForm,ActionForm被实例化并用HTTP请求的数据填充其属性,并保存在ServletContext中,这样他们就可以被其它Action对象或JSP调用。如果没有对应的Action,控制器则直接转发给JSP或静态页面。 4.派发请求

控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Action的execute()方法。

5.处理业务

Action一般只包含一个execute方法,它负责执行相应的业务逻辑。执行完毕后返回一个ActionFoward对象,控制器通过该ActionFoward对象来进行转发工作。

6.返回响应

Action根据业务处理的不同结果返回一个响应对象给总控制器,该目标响应对相对应一个具体的JSP页面或另一个Action。

7.查找响应

总控制器根据业务功能Action返回的目标响应对象找到对应的资源对象,通常是一个具体的JSP页面。 8.响应用户

JSP将结果展现给用户。

106. Spring工作原理

内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的

功能。这些都是通过配置类达到的

Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明 管理的(Spring根据这些配置 内部通过反射去动态的组装对象)要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能

107. Hibernate 的初始化.

读取Hibernate 的配置信息-〉创建Session Factory 1)创建Configeration类的实例。

它的构造方法:将配置信息(Hibernate config.xml)读入到内存。

一个Configeration 实例代表Hibernate 所有Java类到Sql数据库映射的集合。 2)创建SessionFactory实例

把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。

SessionFactory的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。 缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。

108. 在main方法中将字符串中的。数字排序并输出 STRING A=\

String s=” 56.89.5.3.75.98.98.26.15.44”; String s1[]=s. split (“.”);

Integer ii[]=new Integer[s1.length]; For(int i=0;i

ii[i]=Integer.parseInt(s1[i]); }

Arrays.sort(ii); for(Integer o: ii){

System.out.println(o+” s”); }

96Oracle冷备份的通常步骤

1 正常关闭数据库 2 备份所有重要的文件到备份目录(数据文件、控制文件、重做日志文件等)

3 完成备份后启动数据库用冷备份进行恢复时,只需要将所有文件恢复到原有位置,就可以启动数据库了

4 关闭数据库 SQL>shutdown 5 备份文件到备份的目录 6 然后启动数据库 #sqlplus \

sysdba\冷备份完毕!!

109. servlet 创建过程以及ruquest,response,session的生命周期? Servlet的创建过程: 第一步

public class AAA extends HttpServlet{ 实现对应的doxxx方法 } 第二步:

在web.xml中配置

servlet的生命周期:

servlet容器创建servlet的一个实例 容器调用该实例的init()方法

如果容器对该servlet有请求,则调用此实例的service()方法 容器在销毁本实例前调用它的destroy()方法 销毁并标记该实例以供作为垃圾收集

一旦请求了一个servlet,就没有办法阻止容器执行一个完整的生命周期。

容器在servlet首次被调用时创建它的一个实例,并保持该实例在内存中,让它对所有的请求进行处理。容器可以决定在任何时候把这个实例从内存中移走。在典型的模型中,容器为每个servlet创建一个单独的实例,容器并不会每接到一个请求就创建一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,但是这从servlet的观点来看,效果和为每个请求创建一个新线程的效果相同。

一旦请求提交给容器,容器会自动创建相应的request、response,一旦回应完毕则request、response自动销毁。客户端第一次请求时,容器会建立相应的会话,直到会话超时,会话随即销毁。

110. 手写个单例模式?每个公司基本都考 public class danli {

private static danli dl; private danli(){

System.out.println(\单例模式\ }

public static danli getconnection() {

if(dl==null) {

dl=new danli(); }

return dl; } }

111. 解释一下mvc以及熟悉的mvc框架

答:m代表模型层,v 代表视图层,c代表控制层,也就是把一个整体分割成不同的模块,各负责自己的功能,分工明确,提高代码的重用性和方便维护。

在jsp设计模式二中,jsp用来做视图层,servlet是控制器,dao则处理相关业务成为模型层。 在struts2.0,其中m是action,c是拦截器,v是jsp.

112. 解释一下IOC,以及spring的举例

IOC称为控制反转,也叫依赖注入,ioc是Spring的核心组件,它通过配置文件,将需要创建的对象以池的方式管理,将实例注入到需要的对象中区,是对象依赖于注入而不依赖于实现,解决了各个组件的耦合度,使得项目在后期的维护和扩展上非常方便。 如在ssh框架整合中,我们将datasource对象注入给sessionFactory,再将sessionFactory注入给dao组件,再将dao组件注入给struts的Action组件,在将action对象注入给struts的拦截器。

113. Oracle和Sqlserver的区别?数据库里面的语言符号表示? a)体系结构:

ORACLE的文件体系结构为:

数据文件 .DBF (真实数据) / 日志文件 .RDO / 控制文件 .CTL / 参数文件 .ORA SQL SERVER的文件体系结构为:

.MDF (数据字典) / .NDF (数据文件) / .LDF (日志文件) b)存储结构:

ORACLE存储结构:在ORACLE将存储单位分为块、区、段、表等;块的大小可设置(OLTP块和DSS块);将连续的块组成区,可动态分配区(区的分配可以是等额的也可以是自增长的)可减少空间分配次数;ORACLEl里表可以分为多个段,段由多个区组成,每个段可指定分配在哪个表空间里(段的类型分为:数据段、索引段、回滚段、临时段、CASH段。ORACLE里还可对表进行分区,可按照用户定义的业务规则、条件或规范,物理的分开磁盘上的数据。这样大大降低了磁盘争用的可能性。 SQL SERVER 存储结构:以页为最小分配单位,每个页为8K(不可控制,缺乏对页的存储情况的分析机制),可将8个连续的页的组成一个‘扩展’,以进一步减少分配时所耗用的资源。(分配缺乏灵活性),在SQL SERVER里数据以表的方式存放,而表是存放在数据库里。真实数据与数据字典存放在一起。对系统参数信息无安全机制。

c)操作系统:

Oracle可在所有主流平台上运行;但SQL Sever只在Window平台上的表现很好; d)运行速度与安全性:Oracle高于SQLServer; e)价格:Oracle高于SQLServer;

114. 浏览器页面与T0MCat的交互过程?

当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:

(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序 (2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class

(3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端 以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。

115. 用C编写将一个100以内的自然数分解质因数 /* 100以内素数 */ #include main() {

int i,j;

for(i=2;i<100;i++) {

for(j=2;j

if(i%j==0) break; }

if(i==j) {

printf(\ } } }

/* 分解质因数*/ main() {

int n,i;

printf( \


java工程师面试题大全100%公司笔试题你都能碰到几个(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:镇党委书记在全镇重点工作推进会议上的讲话

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: