软通动力面试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

天去软通动力面试,凭着印象大概把题记了一下:

1.静态变量的作用。const,Volatile,synchrnize什么情况下使用?如何声明一个常量。

静态变量甚至在没有创建对象时也能访问
静态变量的本意是为了让所有的对象共享这个变量 静态变量只能写在类中而不能写在方法中,因为静态变量也称为类变量,是整个类的所有实例对象都能引用的,而且仅在第一次生成这个类的对象时为这个静态变量分配空间,故这个静态变量对于该类的所有实例对象是公用的。

被const修饰的东西都受到强制保护,作用和final差不错 不过貌似只作为java中的保留字吧 和goto一样

在关键字前加上volatile目的是让此变量的操作保证为原子操作,在JAVA中char,int,boolean这些的引用和赋值都是原子的,不可分割的.但是long和double却不是原子的.一个int类型的字段n,某个线程对其进行操作:n=123;而前后有另一个线程也进行n=456的操作,那么结果可能是123或者是456,不可能出现134之类的.但是long和double就不一样,如果是n=123L和n=456L做同样的操作, 结果可能会出现156234L的情况等.

public static final int aaa = 1;
private static final String bbb = "Hello world!";

2.用于线程实现的类和接口分别是什么?简单举出使用范例。

3.java.io.reader和java.io.inputstream的区别。
Java.io.Reader 和 java.io.InputStream 组成了 Java 输入类。
Reader 用于读入16位字符,也就是 Unicode 编码的字符;而 InputStream 用于读入 ASCII 字符和二进制数据

4.设计一个servlet读取客户端上载的文件,继承自那个类?支持post/get操作要实现哪些方法?简述如何读取
上载文件。

读取文件 用FileInputStream(File f) 或者getServletContext().getRealPath("WEB-INF/tst.txt")?
输出的时候可以用ByteArrayOuputStream的writeTo(ServletOutputStream)

5.读程序输出结果。

字符串: ss=" ddd dddd ";

ss1=trim(ss);

ss2=ss.tostring(ss);

ss3=ss.substring(0);

结果是:ss=ss1=ss2=ss3???
6.EJB实现的流程。CreateEJB,LoadEJB,ActiveEJB,RemoveEJB

7.sql题

8.程序题,用vector打印出上面sql的结果表格,写出整个完整过程。

9.列出uml中的几种图,分别做什么用。
我在项目中最常用的是类图和状态图。有时会画顺序图和活动图。用例图画得比较少。部件图和部署图几乎不画。
具体需要什么图和软件的类型、规模和开发过程的需求是有很大关系的

用例图,状态图(表示实体状态),时序图(最有用了,系统交互就看他了),类图

10.说出下面uml图的含义。

11.列出几种设计模式,简述实现方式,实用情况。
singleton模式主要作用是保证在java应用程序中,一个类class只有一个实例存在
factory工厂模式来生成对象 并对对

象初始化 很好的维护和扩展性

12.英译汉。

13.汉译英。

考的题都很基础,有三到uml的题,2到英语题,1到sql,但有很多答不出来,看来以后要好好补补基础了










现有一文本字符串对象S,在该字符串中有用逗号分隔的一系列数据数据。该数据如下
Id,name,mail,age,city,
1,tony,tony@,26,tokyo,
2,frank,frank@,18,beijing,
3,nohara,nohara@,27,fukuoka,
4,uehara,uehara@,29,fukujima,
请设计一个对该文本进行解析的类,根据该字符串中的逗号解析这个字符串,并放到一个数据对象中。要求该类中必须提供实现如下功能的方法:
A、 可根据编号将个人信息排序。
B、 根据所在城市和姓名查询个人信息。
C、 对指定的个人信息记录进行修改。









一. 选择题
1. 在关系数据库德询问优化中,事先处理文件,如排序、建立索引的目的是:()
A.优化表达式 B。减少中间结束 C。扩大缓冲数据 D。 减少扫描文件的时间
2.进程是操作系统中的一个重要概念。进程是一个具有一定独立功能的程序在某个数据集合上的一次(A);进程是一个(B)的概念,而程序是一个(C)的概念;进程的最基本状态有(D)。在一个单处理机,若有6个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有(E)个。
供选择的答案
A: (1)单独操作 (2)关联操作 (3) 进行活动 (4)并发活动
B:(1)静态 (2)动态 (3)逻辑 (4) 物
C:(1)物理 (2)逻辑 (3)动态 (4)静态
D:(1)就绪、运行、隐蔽 (2)停止、就绪、运行 (3)运行、就绪、阻塞
(4)就绪、车消、运行
E: (1) 5 (2) 6 (3) 1 (4) 4
3. 有以下几个条件成立:( )
(1)如果小王是工人 ,那么小张不是医生
(2)或者小李是工人,或者小王是工人
(3)如果小张不是医生,那么小赵不是学生
(4)或者小赵是学生,或者小周不是经理
以下哪项如果为真,可得出“小李是工人”的结论?
(A) 小周不是经理
(B) 小王是工人
(C) 小赵不是学生
(D) 小周是经理
二.简答题
1.下面列举的是常用的排序方法:直接插入排序,二分法插入排序,起泡排序,快速排序,直接选择排序,堆排序,归并排序。试问,哪些排序方法是稳定的?
答:(期待您的高见)
2. 对序列(49,38,65,97,76,27,13,50)采用快速排序法进行排序,以序列的第一个元素为基准元素得到的划分结果是什么?
答:
3. 请仔细阅读下面的SQL,判断其是否有错误,如果有错误,请说明错误在哪里。
Select id , nam

e ,age ,count (*)
From table_name
Where name like “ %s%”
Group by name

4. 请用面向对象分析的方法,分析“我用电脑写程序”这句话的对象、属性和方法。
三 问答题
电影《达芬奇密码》中讲到了一个非常有意思的数字序列---菲波拉契序列。请用任意计算机语言实现一段小程序,该程序在屏幕上输出1到1000之间的非波拉契序列。
非波拉契序列:1,1,2,3,5,8,13,21,34,……
要求:用程序描述 核心算法。语言不限。












1:如何针对dispatchAction中method的不同使用不同的验证方法

现在已经找到答案:发现这个validation.xml中的内容都读到ValidatorResource这个类的一个实例中了,在验证时从这个类的实例查找相应的formbean,例如我在

的话,它在ValidatorPlugIn的init()方法(被ActionServlet的init ()调用)时会把name=registerForm保存在ValidatorPlugIn的一个ValidatorResource的变量里。如果客户请求一个action,当然会生成一个ActionForm(或是已存在的),如果这个ActionForm的逻辑名是registerForm,并且这个ActionForm的父类的validate()被调用(这个ActionForm没有validate()方法,或者在validate()方法中通过super.validate()),那么ValidatorForm会通过这个ValidatorResource找到要验证的 ActionForm的逻辑名,而ValidatorActionForm则先通过path找到一个Action,再通过action mapping的name属性找到要验证的ActionForm。
因此我用,则它自然找不到一个action的path是 /registerAction?method=AddUser,因此没有任何验证。看来这么是不行的。那有没有别的办法呢?DispatchAction能根据不同的参数选择不同的方法,那就应该能根据不同的参数选择不同的验证。因此我只要重写 validate方法,如果参数是viewUser就不验证(return null),否则调用父类的validate()。不过用这种方法有一个问题,那就是不能使用动态的ActionForm,即 DynaValidatorForm,因为它根本没有这个类,不可能写validate()方法。 public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) { /**@todo: finish this method, this is just the skeleton.*/ String parameter=actionMapping.getParameter(); String paramValue=httpServletRequest.getParameter(parameter); System.out.println("from actionmapping "+paramValue); parameter=httpServletRequest.getParameter("method"); System.out.println("from request "+parameter); if(paramValue.equals("ViewUser")){ return null; } ActionErrors errors=super.validate(actionMapping,httpServletRequest); return errors; } 2: 文本框里边的文字,随便选中,点下,选中的文字就可以加上连结。 3:form中有个div,div里边有8个checkBox,名字不一样,

问是否在在选中两个以后给出提示





相关文档
最新文档