面试题集--中关村.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《面试题集--中关村.docx》由会员分享,可在线阅读,更多相关《面试题集--中关村.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA企业面试题集一.java语言核心1 .说说你使用的linux命令:pwd,ls,cd,telnet,ssh,ftp,sftp,tar,jar,zip,mkdir,等等。2 .指出下列Linux命令的含义。(Linux )Is -a杳看当前目录信息,包括隐藏文件。cat file查看文件内容。chmod 777 file针对所有用户,将文件授权为读,写,执行权限。mount/dev/sdal/mnt/usbdisk 将设备挂戴为 mut/usbdisk0.怎么增加代码的清晰度和可观性?注释,包和引入语句,类和接口声明,缩进排版,声明,初始化,布局严格按照Java语言 编码规范.什么是Ja
2、va集合APIJava集合框架API是用来表示和操作集合的统一框架,它包含接口、实现类、以及帮助程 序员完成一些编程的算法。简言之,API在上层完成以下几件事:1 .编程更加省力,提高城程序速度和代码质量.非关联的API提高互操作性2 .节省学习使用新API成本.节省设计新API的时间3 .鼓励、促进软件重用5 .说一下java5版本的一些新特性(列举几个你最熟悉的,并对其中两个做简单介绍)(对 java5的一些新特性的了解程度)1)泛型(Generic):增强了 java的类型安全,可以在编译期间对容器内的对象进行类型检 查,在运行期不必进行类型的转换2)增强循环(Enhanced for
3、Loop)3)可变参数(Variable Arguments),实现了更灵活的方法参数传入方式例如: voidtest(Object . args)4)自动实现装箱和解箱操作(Boxing/Unboxing Conversions)实现了基本类型与外覆类 之间的隐式转换。基本类型至外覆类的转换称为装箱,外覆类至基本类型的转换为解箱5)静态导入(Static Imports)6)枚举类(Enumeration Classes)五.Ajax/JQuery1.什么是SSL双向认证和单向认证(选答)单向认证:客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据 进行加密,然后把加
4、密后的数据和服务器端的公钥一起发送到客户端,客户端用服务器发送 来的公钥对数据解密,然后在用传到客户端的服务器公钥对数据加密传给服务器端,服务器 用私钥对数据进行解密,这就完成了客户端和服务器之间通信的安全问题,但是单向认证没 有验证客户端的合法性。双向认证:(1)客户端向服务器发送消息,首先把消息用客户端证书加密然后连同时把客户端证书一 起发送到服务器端(2)服务器接到消息后用首先用客户端证书把消息解密,然后用服务器私钥把消息加密, 把服务器证书和消息一起发送到客户端(3)客户端用发来的服务器证书对消息进行解密,然后用服务器的证书对消息加密,然后 在用客户端的证书对消息在进行一次加密,连同加
5、密消息和客户端证书一起发送到服务器端, (4)到服务器端首先用客户端传来的证书对消息进行解密,确保消息是这个客户发来的, 然后用服务器端的私钥对消息在进行解密这个便得到了明文数据。,如何使用JavaScript编写代码调动一个周期性执行的代码。(JavaScript) 使用window对象的setinterval方法和setTimeout方法9 .请解释XML,JSON,BASE64o (数据传输)A) XML可扩展的标记语句,基于文本的通过数据表示方式。B ) JSON 一种基于文本的轻量级数据表示方式。C) BASE64基于文本的字节传输编码方式。10 . Ajax是什么,在什么地方使用?
6、(JavaScript)A )运行在浏览器中的JavaScript,异步的向服务器发出HTTO请求。B )服务器处理该请求,响应的数据时XML或JSON (更常用XC )浏览器中的JavaScript收到并解析该数据,局部刷新页面。11 . jquery里的缓存问题如何解决?如果直接用jQuery里的$.ajax()方法的话,去除缓存很简单,只需要配置一下缓存属性 cache为false,但如果想要简单写法getJSON(),去除缓存就不能通过配置来解决了。因 为getJSON根本没有这个缓存属性让你来配置。因为如果其调用的地址URL和之前的一 样的话,回调函数会直接在缓存里面读取数据,而不是
7、进后台调用相应的方法。解决方法就是让他的每次请求的URL地址不一样就行,但是同时又要不影响请求的服务所 需要的数据,那么可以有一下几种方法:1、$.getJSON( /URL?t=,/ +new Date(),function(json);就是原有的 URL 基础上力口一个 时间变量,每次的请求地址就不一样了。2、 $.getJSON( URL?rand=+Math.random,function(json);就是原有的 URL 基础 上加上一个随机变量,不过这个方法有风险,万一随机数一样。OOOOO3、第三种方法就是自己定义一个递增变量在URL后面加上这个递增变量每次请求完后, 就递增一下。
8、$.get()去除缓存的方法和$.getJSON()相同。六. struts21 .请说出struts框架的几大组件?1、MVC2、标签库3、校验框架4、国际化5、tiles. Struts2的有哪些优势劣势?(框架)A)优点:易用性好,扩展性强,侵入性弱。B )缺点:健壮性及安全性差。2 . Web应用中如何防止用户多次登录?在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的 话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的 一个对象).页面之间的值传递方式:表单传参、URL传参、session
9、传参、利用框架标签传参、application传参七. Hibernate1 .哪些情况不适合加载到Hibernate的二级缓存中,哪些情况适合?不适合的情况:经常被修改的数据;绝对不允许出现并发访问的数据;与其他应用共享的数据。适合的情况:数据更新频率低;允许偶尔出现并发问题的非重要数据;不会被并发访问的数据;常量数据;不会被第三方修改的数据。2 .在Hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没 有一个实体类与之对应,如何解决这个问题?解决方案一,按照t数据取出数据,然后自己组bean解决方案二,对每个表的bean写构造函数,比如表一要查出fieldl
10、,field2两个字段,那么 有一个构造函数就是Bean(typelfiledl,type2field2),然后在hql里面就可以直接使用这 个 bean 了。3 .谈谈常见的数据库持久层框架,以及与JDBC的关系。(框架)A ) Hibernate 自动化,基于 O/RMapping 的 JDBC 框架B) MyBatis半自动的JDBC框架C)均构建在JDBC之上D )针对简单重复性的访问合适采用HibernateE )针对较为复杂的访问适合采用MyBatis或直接使用JDBC.JDBC , Hibernate分页怎样实现?方法分别为:1) Hibernate 的分页:Query quer
11、y = session.createQuery(from Student);query.setFirstResult(firstResult); 设置每页开始的记录号 query.setMaxResults(resultNumber); 设置每页显示的记录数 Collection students = query.list();2) JDBC的分页:根据不同的数据库采用不同的sql分页语句例如:Oracle 中的 sql 语句为:SELECT * FROM (SELECT a.*z rownum r FROMTB_STUDENT) WHERE r between 2 and 10M查询从记录号
12、2到记录号10之间的所有记录4 . jdbc. hibernate, ibatis 的比较?jdbc:手动写sqldelete, insert, update要将对象的值一个一个取出传到sql中,不能直接传入一个对 象。select:返回的是一个resultset,要从ResultSet中一行一行、一个字段一个字段的取 出,然后封装到一个对象中,不直接返回一个对象。ibatis的特点:半自动化sql要手动写delete、insert、update:直接传入一个对象select:直接返回一个对象hibernate:全自动 不写sql,自动封装delete, insert, update:直接传入
13、一个对象select:直接返回一个对象一.共同点:1 .都是0/R mapping框架,直接与数据库打交道。2 .都提供方言支持不同类型数据库的访问,通过xml文件格式将数据库表与java对象 连接起来。3 .都可以交给spring来管理.都是开源软件二区别:hibernate是当前流行的0/R框架,来自于,现在已成为HBOSS的一部分。 hibernate相对较复杂,学习周期长。ibatis/mybatis是另外一种优秀的o/r mapping框架,目前属于叩ache的一个子项 目了。ibatis上手快,很容易学学习。三机制使用ibatis提供的orm机制,对业务逻辑实现人员而言,面对的是纯
14、粹的java对象。 这一层与通过hibernate实现orm而言基本一致,而对于具体的数据操作,hibernate会 自动生成sql语句,而ibatis则要求开发者编写具体的sql语句。相对hibernate而言, ibatis以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。八Spring. Spring的loc和aop分别是用什么原理实现的?主要应用了 java的反射技术. spring的工作机制以及为什么要用?1 ) spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块 负责负责对请求进行真正的处理工作。2 )
15、DispatcherServlet 查询一个或多个 HandlerMapping,找至IJ处理请求的 Controller.3 ) DispatcherServlet 请请求提交到目标 Controller) Controller进行业务逻辑处理后,会返回一个ModelAndView4 ) Dispatcher查询一个或多个ViewRescdver视图解析器,找到ModelAndView对象指 定的视图对象6)视图对象负责渲染返回给客户端为什么用:AOP让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序 代码中。使用AOP后,公共服务(比如日志、持久性、事务等)就可以分
16、解成方面并 应用到域对象上,同时不会增加域对象的对象模型的复杂性。IOC允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如 单词倒置所表明的,IOC就像反过来的JNDIO没有使用一堆抽象工厂、服务定位器、 单元素(singleton )和直接构造(straight construction ),每一个对象都是用其协作对象 构造的。因此是由容器管理协作对象(collaborator Spring即使一个AOP框架,也是一 IOC容器。Spring最好的地方是它有助于您替换对 象。有了 Spring ,只要用JavaBean属性和配置文件加入依赖性(协作对象然后可以 很容易
17、地在需要时替换具有类似接口的协作对象。3 .如何实现国际化?国际化:不用修改代码,就适用于不同的语言国家本地化:如果要适应一个国家,要修改源代码实现过程:在struts-config.xml中用如下标签说明资源文件名,注意其只是文件名,没有语言一 国家在资源文件对应的目录struts中加入适应不同语言、国家的properties文件ApplicationResources_zh_CN.properties 中国ApplicationResources_en_US.properties us如果不是英语要转码native2ascii -encoding gb2312 源 ApplicationR
18、esources_zh_CN.properties 在jsp页面中用取出信息4 . Spring 的 BeanFactory 与 Applicationcontext 区别?Applicationcontext和BeanFacotry相比才是供了更多的扩展功能,但其主要区别在于后 者是延迟加载,如果Bean的某一个属性 没有注入,BeanFacotry加载后,直至第一次使用 调用getBean方法才会抛出异常;而Applicationcontext则在初始化自身是检验,这样 有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContexto.说说你对用ssh框架进行
19、开发的理解?框架:hibernate, spring、struts ;Hibernate主要用于数据持久化;Spring的控制反转能起到解耦合的作用;Struts主要用于流程控制。5 .请解释什么是MVC?(设计模式)A) M-Model封装业务数据及业务运算。B ) V-View封装用户界面。C ) C-Controller封装业务处理流程。6 . MVC的各个部分都有哪些技术来实现?如何实现?表示层struts持久层hibernate控制层spring也就是最常用的开发框架ssh7 .通过图,说说你对MVC模型的理解。(企业有可能让学生画图)?表示方法调用表示事件1)首先是展示视图给用户,
20、用户在这个视图上进行操作,并填写一些业务数据2)然后用户会点击提交按钮,来发出请求3)视图发出的用户请求会到达控制器,在请求中包含了想要完成什么样的业务功能以及相关 的数据。4)控制器会来处理用户请求,会把请求中的数据进行封装,然后选择并调用合适的模型,请 求模型进行状态更新,然后选择接下来要展示给用户的视图。5)模型会去处理用户请求的业务功能,同时进行模型状态的维护和更新6)当模型状态发生改变的时候,模型会通知相应的视图,告诉视图它的状态发生了改变。7)视图借到模型的通知后,会向模型进行状态查询,获取需要展示的数据,然后按照视图本 身的展示方式,把这些数据展示出来。8)接下来就是等待用户下一
21、步操作,再次从头轮回了。6 .垃圾回收的优点和原理。并考虑2中回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使C+程序员最头疼的内存管理的 问题迎刃而解,它使得JAVA程序员在编写程序的时候不再需要考虑内存管理。由于有个垃 圾回收机制,JAVA中的对象不再有作用域的概念,只有对象的引用才有“作用域。 垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一 个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用 的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所以对象进行垃圾 回收。回收机制有分代复制垃圾回收和标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试题 中关村
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内