注册 登录
重磅消息:开通VIP会员,获取平台所有项目,永久使用,详细请咨询QQ:3376762016
远程服务部署安装,售后服务,请加QQ1:3376762016,QQ2:3597230140(即将满员),QQ3:1399491757(已满)
查看: 544|回复: 0
打印 上一主题 下一主题

东软集团股份有限公司 面试题 技术面试题组012

[复制链接]

该用户从未签到

3522

主题

3536

帖子

66万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
669142
QQ
跳转到指定楼层
楼主
发表于 2018-9-19 09:36:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
二、问答题
1、JSP中的默认的内置对象有几个?分别是什么?
答:JSP共有以下9个内置的对象:
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config servlet的构架部件
page JSP网页本身
exception 针对错误网页,未捕捉的例外
2、Request对象中getParameter()与getAttribute()方法有什么区别?
答:getParameter():获得客户端传送给服务器端的有name指定的参数值
getAttribute():一个请求周期之内,返回setAttribute()方法中,获取name的指定属性值。
3、描述forward和redirect的区别。
答:forward是指转发,是服务器去请求资源,属于服务器行为。服务器直接访问目标地址的URL,将URL的内容响应给浏览器,浏览器接收服务器发送过来的内容,但不知道这个内容(资源)的来源,所以当请求方式是forward时,浏览器地址栏不会发生改变;forward是一次请求一次响应。
     redirect是指重定向,是浏览器去请求资源,属于客户端行为。服务器返回给客户端的是状态码以及location地址值,客户端浏览器则根据响应回来的地址值,再次发起访问请求,所以当请求方式是redirect时,浏览器地址栏会发生变化;redirect是两次请求两次响应。
4、描述 <jsp:include /> 与 <jsp:forward /> 的区别。
答:动态INCLUDEjsp:include动作实现
<jsp:include page=included.jspflush=true />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数静态INCLUDEinclude伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file=included.htm %>
5、请列出你最常用的Java语言中的10个package名称,10个类名称,并描述其作用
答:
(1)java.langjava的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包。
(2)java.iojava语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等。
(3)java.utiljava的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。如java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,
提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。包含如处理时间的date
类,处理变成数组的Vector类,以及stackHashTable类。
(4)java.util.zip:实现文件压缩功能。
(5)java.lang.reflect:提供用于反射对象的工具。
(6)java.awt.image:处理和操纵来自于网上的图片的java工具类库。
(7)java.wat.peer:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行。
(8)java.net:实现网络功能的类库有Socket类、ServerSocket类。  
(9)java.awt:构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理如Checkbox类、Containter类、LayoutManger接口等,以及界面用户交互控制和事件响应,如Event类。

(10)java.sql
:实现JDBC的类库。
6、什么是Struts?Struts的特点是什么?写出你所知道的与Struts类似的框架名称。
答:Struts只是一个MVC框架(Framework),用于快速开发Java Web应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑
Struts的特点是清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。
Struts类似的框架:SpringMVC 、Struts1
7、什么是Spring?Spring的特点是什么?写出你所知道的与Spring类似的框架名称。
答: Spring是一个容器框架,用来装javabean(java对象),中间层框架可以起一个连接作用,比如说把Struts和hibernate粘合在一起运用。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring的特点:
1、方便解耦,简化开发,提升性能(IOC)
2、AOP面向切面编程
3、声明式事务的支持
4、方便程序的调试
5、方便集成各大优秀的框架
6、Java源代码学习的典范
Spring类似的框架:SpringMVC
8、什么是Hibernate?Hibernate的特点是什么?写出你所知道的与Hibernate类似的框架名称。
答: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
Hibernate的特点是在处理如数据查询、更新、连接池、事务处理、实体关系处理等方面非常简单。
Hibernate类似的框架: Mybatis
9、请描述你所了解的Java设计模式,并描述该设计模式的作用。
答:所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。
Java中的23种设计模式:
Factory(工厂模式),     Builder(建造模式),      Factory Method(工厂方法模式),
Prototype(原始模型模式),Singleton(单例模式),    Facade(门面模式),
Adapter(适配器模式),    Bridge(桥梁模式),        Composite(合成模式),
Decorator(装饰模式),   Flyweight(享元模式),     Proxy(代理模式),
Command(命令模式),     Interpreter(解释器模式), Visitor(访问者模式),
Iterator(迭代子模式),   Mediator(调停者模式),    Memento(备忘录模式),
Observer(观察者模式),   State(状态模式),         Strategy(策略模式),
Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)
10、描述一下B/S程序和C/S程序都是什么?各自的优缺点。
答:C/S是客户端/服务器端,C/S的程序通常也叫胖客户端,也就是一个程序的大部分功能,都在客户端实现,而服务器端只实现一小部分功能。通过这点不难看出,C/S的程序大部分在客户端实现,对于服务器端的压力相对小一些,服务器端可以节省一些。而且C/S的程序用窗口来做,个人认为开发效率上快一点。但C/S的程序一大弊端就是,必须要在客户端安装并部署程序才能运行,也就是用户必须得到客户端程序才可以运行。所以得考虑不同系统之间的安装与配置。

   B/S是浏览器/服务器端,B/S的程序通常也叫瘦客户端,与C/S相反。B/S的程序大部分功能都要在服务器端实现,客户端只用来做辅助的控制功能。因为B/S的程序直接部署安装在服务器上。用户只需要有浏览器,并知道网址就可以使用程序。客户端不必做任何配置和安装,即可使用应用程序。而B/S也是有缺点的,首先B/S大部分功能都要在服务器端实现,对于服务器的要求就很高。服务器同时要应付用户访问与程序处理,所以服务器的配置必须能够应付。另外就是B/S的程序是浏览器中执行,所以B/S的程序操作客户端电脑的硬件,一般就得安装ActiveX等插件在客户端才可以操作。因此B/S的程序对于操作硬件,优势没有C/S的程序要好。
11、请描述CVS版本控制器的作用、CVS版本控制器的原理、处理版本冲突的方法。
答: CVS版本控制器的作用:帮助我们记录和跟踪项目中各文件内容的修改变化。
CVS版本控制器的原理、处理版本冲突的方法:CVSCopy-Modify-Merge(拷贝、修改、合并)变化表支持对。文件的同时访问和修改。
12、请描述Oracle数据库导出命令名称及相关参数
Oracle数据库导出命令名称exp命令。
EXP的所有参数(括号中为参数的默认值):
USERID        用户名/口令      如: USERID=duanl/duanl      
FULL          导出整个数据库 (N)
BUFFER        数据缓冲区的大小         
OWNER        所有者用户名列表,你希望导出哪个用户的对象,就用owner=username
FILE           输出文件 (EXPDAT.DMP)   
TABLES        表名列表 ,指定导出的table名称,如:TABLES=table1,table2
COMPRESS     导入一个extent (Y)   
RECORDLENGTH   IO 记录的长度
GRANTS        导出权限(Y)            
INCTYPE        增量导出类型
INDEXES        导出索引(Y)           
RECORD        跟踪增量导出 (Y)
ROWS           导出数据行 (Y)        
PARFILE        参数文件名,如果你exp的参数很多,可以存成参数文件.
CONSTRAINTS   导出约束 (Y)   
CONSISTENT    交叉表一致性
LOG            屏幕输出的日志文件   
STATISTICS     分析对象 (ESTIMATE)
DIRECT         直接路径(N)              
TRIGGERS      导出触发器 (Y)
FEEDBACK      显示每 x 行 (0) 的进度
FILESIZE        各转储文件的最大尺寸
QUERY          选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES 将传输的表空间列表
13、请描述Oracle标准版和企业版的差别
答:1.使用标准版,就意味着用户不可以使用企业版的任何功能强大的选项,应用的设计必须局限在标准版的有限的功能之内,所需企业版的功能则必须自行开发,不利于应用的开发及透明升级和扩展。
2.标准版对硬件资源的并行使用率很低,不具备并行备份,并行查询的工作,如在一个多CPU的机器上,使用标准版,在同一时间做查询时只能用到一个CPU。
3.标准版没有增量备份,在一个数据量大而且需要随时保持数据在线的应用中,每天做全备份是不可想像的。
4.如果有宕机的现象,要快速恢复,标准版做不到,因为标准版不象企业版具有块级介质恢复的功能。
14、请列举Oracle数据库索引分类及各自适用的场景,并写出索引重建命令
答:
1. b-tree索引
Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
2. 位图索引(bitmap index)
位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
3. 基于函数的索引
比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
4. 分区索引和全局索引
这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
5. 反向索引(REVERSE)
这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值
(10001,10002,10033,10005,10016..)
这种情况默认索引分布过于密集,不能利用好服务器的并行
但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
6.HASH索引
HASH索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建HASH集群之前就要知道。需要在创建HASH集群的时候指定这个值。使用HASH索引必须要使用HASH集群。
15、请描述Weblogic在Windows操作系统下的启动命令,列举Weblogic console中几个重要的性能参数,并描述如何调整Weblogic内存,如何设置垃圾回收策略
答:在domain的目录下,用starit startManagerWeblogicNaNd Server-0来启动.
在启动Weblogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以调整最小内存为32M,最大200M 。
三、实战题
给定雇员属性:姓名、生日、部门、工资、绩效。回答下面问题。
1、请写出这个类的定义。
   public class Employee{
    privateString ename;
    privateString hireDate;
    privateStringdept;
    privatedoublesal;
    privatedoublecomm;
   public String getEname() {
      return ename;
   }
   public void setEname(String ename){
      this.ename = ename;
   }
   public String getHireDate() {
      return hireDate;
   }
   public void setHireDate(StringhireDate) {
      this.hireDate = hireDate;
   }
   public String getDept() {
      return deptNo;
   }
   public void setDept(String dept) {
      this.dept = dept;
   }
   public double getSal() {
      return sal;
   }
   public void setSal(double sal) {
      this.sal = sal;
   }
   public double getComm() {
      return comm;
   }
   public void setComm(double comm) {
      this.comm = comm;
   }
   
   
}
2、如何在Spring中做Bean的初始化配置。
    <bean id=”employee”class=”com.pojo.Employee”></bean>
   
3、在程序中如何调用你定义的Bean,写出调用代码。
  Application ac =newClassPathXMLApplicationContext(“applicationContext.xml”);
  Employee employee=ac.getBean(“employee”);
4、在数据库中创建雇员表。写出SQL语句。
   Create table emp(
      ename varchar2(50),
      hireDate varchar2(50),
deptvarchar2(50),
sal  number(2,2),
comm  number(2,2)
)
5、公司年终做绩效考核,需要查询姓名为张三的雇员绩效情况,假设数据库中有两个表,一个雇员表emp,一个绩效表achive,二者可以通过ID列关联,请在数据库中部门为“电子政务研发部”的雇员姓名和绩效,如果绩效值不存在,也要显示员工信息,绩效值可以为空,写出SQL语句。
   Select e.ename,e.comm from emp e,achive awhere e.id=a.id and e.dept=’ 电子政务研发部’
6、查询后,发现张三表现优异,工资增加为“1100.00”。将该雇员的工资改为“1100.00”。写出SQL语句。
  Update set emp set sal=sal+1100 where ename=’ 张三’
7、电子政务研发部的雇员李四由于个人原因离职,需要在雇员表中删除李四的信息。写出SQL语句。
   Delete from emp where dept=’ 电子政务研发部’ and ename=’ 李四’
8、经操作,发现所有姓张的员工,姓名录入错误,都误录为“章”,请把员工表中姓名列,隶属于电子政务研发部的所有姓“章”的员工改为“张”。
   update emp set ename=’张_’ where ename like ‘%章%’
9、公司新招了一名员工,信息如下。在雇员表中需要增加这样一条记录。请写出SQL语句。
       姓名:王五
       生日:1988-1-1
       部门:电子政务研发部
       工资:1200.00
答: insert into emp(ename, hireDate  ,dept,sal,comm) values(‘王五’,’ 1988-1-1’,’ 电子政务研发部’, 1200.00,0)
10、请使用java语言编写一段代码实现斐波那契数列(1、1、2、3、5、8、13、21、34、55…….)的输出,最后一个输出值小于100万。
答:
public classTest {
   /**
    * @param args
    */
   public static void main(String[] args) {
      int a=0;
       int b=1;
       System.out.print("斐波那契数列:1,");
       for(inti=0;i<100000;i++){   
           int c=a+b;
           if(c>1000000){
             break;
           }
           System.out.print(c+",");
           a=b;
           b=c;
       }
   }
}
11、用js写一段代码判断name为id的输入框是否为空,如果为空,提示不允许为空,并且不允许焦点转移到其它的输入框
varname=  document.getElementById(“name”).value;
if(name=””){
   alert(“用户名不能为空”);
document.getElementById(“name”).focus();
}
   

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
java无忧网(http://www.javawyw.com),专业提供Java大作业,小作业,课程设计,毕业设计源码,答辩辅导,作业排错,bug修复,专业解答,远程部署运行项目等服务
本网站所有源码,保证能运行!
QQ:1399491757
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部