分两套题
第一套都是选择题(多选的),全英文的。45分钟完成
第二套都是主观题,中文的。也是要45分钟完成
面试:
一个姓罗的人,问为什么离职,问什么不作老师,用英文介绍一下产品,有几个模块。
好像要急着下班,也不给问问题的时间。
Java
1.use iterator,which is first in first out? vector, hashmap,hashtable,linkedhashmap
vector,ArrayList,linkedhashmap
other:
HashSet 无序的
TreeSet 按字母顺序
hashmap 无序的
TreeMap 按key的顺序
hashtable 无序的
7.有什么问题?
....
top:...
while(){
....
contine top;
...;
}
note:死循环,contine top;--〉top:
other:
1、continue会跳跃到他所在的内层循环顶端,继续执行
2、contine label会跳跃到label所在的位置,然后重新进入循环
3、break会跳离循环
4、break label会跳离label所在的位置
在java中唯一能放label的地方就是迭代语句开始之前,请不要在label和迭代语句之间加入任何内容。
在java中唯一需要使用label的理由就是:在嵌套循环中想要让break和continue越过一个以上的嵌套.
8. abstract can berfore class,method,primtive?
24. class A extends Thread{
main(){
A  a = new A();
....
}
public a(){
...
start();
}
run(){
....}
}
有什么结果?
public class testLabel extends Thread {
private int n;
public testLabel(int n){
this.n = n;
System.out.println("testLabel");
start();
}
public void run() {
for(int i=0; i<n; i++) {
System.out.Name() + ": " + i);
}
System.out.Name() + "结束!");
}
public static void main(String args[]){
Thread t1 = new testLabel(3);
t1.setName("用户线程t1");
for(int i=0;i<3;i++){
System.out.println(Thread.currentThread().getName() + ": " + i);
}
System.out.println("主线程结束!");
}
}
结果:
testLabel
main: 0
main: 1
main: 2
主线程结束!
用户线程t1: 0
用户线程t1: 1
用户线程t1: 2
用户线程t1结束!
26.请从程序的书写规范性,说明以下写法的不足或错误之处(注:这些代码都是编译通过的)
a、ArrayList list = new ArrayList();
用List list = new ArrayList()能够提高代码的通用性,
若以后要用LinkedList时,只要改这一处,其它用list的代码不要改动了.
b、Name().equals("abc")){...}
应该写成if(("abc").Name*()),
这样主要是避免空指针异常,因为Name()有可能为空。
c、int xx = formBeans.isManager()==true ? 1:0;
int xx = formBeans.isFunc()? 1:0; 对于布尔类型的表达式 没有必要再去判断其是否等于true。
d.String s1="abc";
String s2="def";
String s3="ghi";
String s4=s1+s2+s3;
e.String s1="936"
if(s1.equals("937"))
{
.........
}
f.关于数据库的运用,利用try catch,目的是面试你的finally的应用
UML
2.Proxy  模式有哪两大优点?
向客户端隐藏了访问某个对象的细节及复杂性;
可以动态地调用一个对象中的方法,且无需实现固定的接口。
3.Facade pattern 有两大优点?
a.将子系统隐藏在一个对象之后。
b.通过增加间接性对象有助于对低耦合的支持。
6.写一个Singleton pattern的类code;
public class Singleton {
  private Singleton(){}
  //在自己内部定义自己一个实例
  //注意这是private 只供内部调用
  private static Singleton instance = new Singleton();
  //这里提供了一个供外部访问本class的静态方法,可以直接访问 
  public static Singleton getInstance() {
    return instance;   
  }
}
第二种形式:
public class Singleton {
    private static Singleton instance = null;
    public static synchronized Singleton getInstance() {
        if (instance==null)
          instance=new Singleton();
        return instance;
  }
}
上面第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,这个synchronized很重要,
如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般认为第一种形式要更加安全些。
17.设计一个windows的文件管理器,用UML的类图画出(只要画出文件夹和文件)
J2EE
4.可以直接与Ldap交互的技术?EJB,JTA,JMS,JDBC,JNDI
JNDI,....
other:
LDAP(Lightweight Directory Access Protocol,一般都简称为LDAP)
在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信息.
LDAP目录中可以存储各种类型的数据:地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。
通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。
JNDI:Java Naming and Directory Interface  javax.naming
EJB:Enterprise JavaBeans
JTA:Java Transaction API
JMS:
JNDI:Java Naming and Directory Interface
JDBC:Java Database Connectivity
5.JTA
ansaction.*;
UserTransaction utx=...
try {
create(); //insert record
utx.begin();
.....
utx.update();//
utxmit();}
catch(Execption e){
if(){
}
throw e;
}
note:llBack() maybe throw exce
ption
try
{
}
catch(Exception e1)
other:什么是JTA Transaction?它有怎样的特点呢?
JTA Transaction是指由J2EE Transaction manager去管理的事务。
其最大的特点是调用UserTransaction接口的begin,commit和rollback方法来完成事务范围的界定,事务的提交和回滚。
JTA Transaction可以实现同一事务对应不同的数据库,但是它仍然无法实现事务的嵌套。
JSP/Servlet/js 
9.说说 servlet 的主要方法,哪个方法调用doget()和 dopost()?doget()和 dopost()有什么区别?
init(ServletConfig),service(req,resp),destroy();
service(req,resp)调用doget()和 dopost();
doget() 处理method属性是get form,dopost() 处理method属性是post form。
other:
method属性--标明当前表单的提交方式。
get方式:容量小,速度快,保密性差,直接随页面表单action的URL发送出去。
post方式:与get相反
doget() 处理form method属性是get;
getAttribute:
(1).getAttribute()得到的数据是object类型,需要强行转换得到相应类型。
这是因为它是获取存放在Web应用特定范围中的数据值。
(2).request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,
在具有转发关系的Web组件之间共享。
即Attribute()方法返回request范围内存在的对象。
(3).用于服务器端重定向时,即在sevlet中使用了forward函数,或struts中使用了mapping.findForward。getAttribute只能收到程序用setAttribute传过来的值。
getParameter:
(1).getParameter得到的都是String类型的,取得你设在表单或url重定向时的值,
如:demo.jsp?id=88中的88。获取POST/GET传递的参数值.
(2).Parameter()方法传递的数据,会从Web客户端传到Web服务器端,
代表HTTP请求数据。
11.<% for(int i=0;i<10;i++ )%>
dosomething
<% out.println(i);%>
会输出什么结果?
Unable to compile class for JSP
i cannot be resolved
note: <%  %>  声明的变量只是局部有效,相当于局部变量。包含Java代码
12.form input type = "text" 的readonly属性和disable属性有什么区别?
readonly  可以通过FORM传递参数  prohibits changes to the control
disable: it cannot receive user input nor will its value be submitted with the form.
? 14.如果要使页面的form所有字段都readonly怎么设?
Struts
新的<html:form>标签中可以使用disable 或read only 属性来使整个form中的元素都被禁用或只读
注:readonly 属性只能影响到<html:text>, <html:textarea> 和<h
tml:password> 。
15.<input type="textarea" value="something"> 有什么错误?
多行文本输入框
<textarea name="info" cols ="40" rows = "5">请您留言:</textarea>
16.JavaScript有哪些常用的内置对象?
String,Math,Date,Array
25.Servlet 局部变量的范围?(记不清楚了有可能 是JSP 的范围)
JSP有四种范围,分别为Page、Request、Session、Application。
page属性范围:在一个JSP页面上设置的属性只能在一个页面取得,跳转到其他页面则此属性消失。
request属性范围:request可以把属性保存在一次服务器跳转范围之中。
session属性范围无论页面怎样跳转,都可以保存下来,但是只针对于同一个浏览器打开的相关页面
application范围,是把属性设置在整个服务器上,所有的用户都可以进行访问。
other: 有些 JSP 程序员会将 request、session、application 和 pageContext 归为一类,原因在于:它
们皆能借助 setAttribute( )和 getAttribute( )来设定和取得其属性(Attribute),通过这两种方法来做到数据分享。
它们之间最大的差别在于范围(Scope)不一样。
使用的原则:
? 因为四种属性范围的保存时间不同,所以占用内存的时间也就不同了,能使用request就不要使用session,一般情况下,request和session两个属性范围使用的频率是最高的。
30.JSP隐藏参数怎么表示?
<input type="hidden" name="role"  value="guest">
通常用作标记信息。
action中用request
29.自定义标签如何实现。需继承哪个类。需overwrite哪些方法。
写一个继承TagSupport类的java类,把这个类在.tld文件中进行说明,最后在jsp文件中引入就可以用了。
需继承TagSupport类。
需overwrite doStartTag(),doEndTag()方法
Oracle DataBase
18.描述以前做过的数据库表设计。业务描述,E-R 图
19.写一个SQL获取系统的当前时间
select sysdate from dual
20.写一个SQL实现分页显示
select rownum,* from BSEMPMS where rownum >=5 and rownum <=100; 
21.写一个外联结sql ,
左外关联:等号在(+)的左边
SELECT t1.department_id, t2.employee_id
FROM t_department t1, t_employee t2
WHERE t1.department_id = t2.department_id(+);
出部门的所有员工,如果部门没有员工,则员工信息为NULL
22.例举几个常用的聚合函数,写一个用group by ,having 的SQL。
SUM, COUNT, MAX, AVG等
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000
显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。
23.表Agetattribute方法返回类型
id    ....  salary 
2001        1000
2002
2005          2333
select * from A where salary<>null
select sum(salary) where id='2003'
两个语句输出什么?
这里比较时使用关键字用“is null”和“is not null”。
27.索引的优缺点是哪些?
一、为什么要创建索引呢(优点)?
这是因为,创建索引可以大大提高系统的性能。
第一,  通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,  可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,  可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,  在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,  通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
二、建立方向索引的不利因素(缺点)
也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。
第一,  创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,  索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果
要建立聚簇索引,那么需要的空间就会更大。
第三,  当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
28.union 和union all的区别
The UNION operator returns only distinct rows that appear in either result,
while the UNION ALL operator returns all rows. The UNION ALL operator does not eliminate duplicate selected rows。
尽量使用union all,因为union需要进行排序,去除重复记录,效率低。
1.OO编程有哪些特点
1.抽象(abstraction)2.封装(encapsulation)3.继承(inheritance)4.多态(polymorphism)
2.哪些工具是作为设计工具来使用的?
rose,visio,together
3.在uml中,类(或者对象)之间 1.有哪些关系,2.用什么连线表示的,3.它们的英文是什么。
简单罗列在此:
依赖关系(Dependency),用虚线加一个箭头表示。
关联关系(Association),关联关系中又分为:
单项关联(unidirectional-association),
双项关联(bidirectional-association),
聚合关系(convergence?
组合关系(combination)。
单项关联和双项关联都是用实线表示的,单项关联是一个箭头,双向关联是两个箭头.
聚合关系是用"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。