用友致远面试题和用友审计的面试题

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

1,what’s BO, DAO, VO? 之间的关系?
VO(value object) 值对象通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。

但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。

BO(business object) 业务对象从业务模型的角度看,见UML元件领域模型中的领域对象。

封装业务逻辑的java 对象,通过调用DAO方法,结合PO,VO进行业务操作。

PO(persistant object) 持久对象在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。

通常对应数据模型(数据库),本身还有部分业务逻辑的处理。

可以看成是与数据库中的表相映射的java对象。

最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。

PO中应该不包含任何对数据库的操作。

DAO:
data access object数据访问对象这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。

通过它可以把POJO持久化为PO,用PO组装出来VO、DTO
2,What is “sequence” in RDBM?
Relational DataBase Machine 关系数据库计算机
Sequence是数据库系统按照一定规则自动增加的数字序列。

这个序列一般作为代理主键(因为不会重复),没有其他任何意义。

What is static SQL statement and dynamic SQL?
静态,动态时针对sql而言的,简单说,静态sql在编译时确定,动态sql在运行时确定,可以由用户确定,更加灵活
3,What is the respective benefict?
4,Please write a java snippet to implement the “singleton” pattern.
//饿汉式
private static UserManager instance = new UserManager();
private UserManager() {}
public static UserManager getInstance() {
return instance;
}
// //懒汉式
// private static UserManager instance;
//
// private UserManager() {
//
// }
//
// public static synchronized UserManager getInstance() {
// if (instance == null) {
// instance = new UserManager();
// }
// return instance;
// }
5,Please diagram the architection of J2EE, list and briefly describe the J2EE platform elements, and the relationship among these major components.
6,Java 的数据库连接操作,抽出person表的用户名称username字段,返回数据库连接信息。

driver = org.git.mm.mysql.Driver
连接串:jdbc:mysql://127.0.0.1 testdb
用户名:root
密码:test123
public class DBConnection {
// jdbc:mysql://localhost:3306 s2?user=root&password=root
StaticStringurl="jdbc:mysql://localhost:3306/lucene?user=root&password=bjsxt&useUnicode=true&characterEncodin g=GBK";
static String driver="com.mysql.jdbc.Driver";
public static java.sql.Connection getConnectionDirectly()
throws SQLException {
java.sql.Connection conn = null;
try {
Class.forName(driver).newInstance();
conn = java.sql.DriverManager.getConnection(url);
if (conn == null) {
log("getConnectionDirectly null!");
}
} catch (Exception e) {
log("getConnectionDirectly Failed!");
}
return conn;
}
我记得就这麽多,如果有变动就不知道了,这是我去面试给的
1 MVC怎么实现
2 你是怎么理解java load一个类整个过程
类加载流程
每个ClassLoader加载Class的过程是:
1.检测此Class是否载入过(即在cache中是否有此Class),如果有到8,如果没有到2
2.如果parent classloader不存在(没有parent,那parent一定是bootstrap classloader了),到4
3.请求parent classloader载入,如果成功到8,不成功到5
4.请求jvm从bootstrap classloader中载入,如果成功到8
5.寻找Class文件(从与此classloader相关的类路径中寻找)。

如果找不到则到7.
6.从文件中载入Class,到8.
7.抛出ClassNotFoundException.
8.返回Class.
3 你怎么理解O/R mapping
4 你怎么理解IOC 和DI
控制反转DI(Dependency Injection)模式,就是Inversion of Control,控制反转。

在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。

这称为控制反转。

5你怎么应用Hibernate SessionFactory
SessionFactory接口:SessionFactroy接口负责初始化Hibernate。

它充当数据存储源的代理,并负责创建Session对象。

这里用到了工厂模式。

需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

6UML 集合和聚合
7抽象工厂和简单工厂的区别
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。

工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

8建索引命令
创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );
9描述几个你常用的设计模式
设计模式这一块:
Observer模式:小孩哭,事件监听。

facade模式:也是抽取一个公共的类,专门对外
调停者模式:居委会大妈
策略模式:解决重复的if else,写一个接口,然后实现方法不同。

(多态)
适配器模式:实现一个接口的时候,里面有很多方法,只需要实现其中的一个功能,如果实现这个接口的时候不想同时实现那么多的空的方法,就引入一个适配器,用来实现那个接口,然后再让要实现功能的接口来继承这个适配器就可以了,这种模式叫适配器模式。

简单工厂模式:
工厂方法:又称为标准的工厂模式
抽象工厂模式:
10用JDBC 遍历输出
System.out.print(rs.getInt(1)+" ");
System.out.print(rs.getString(2)+" ");
System.out.print(rs.getString(3)+" ");
System.out.print(rs.getString(4)+" ");
System.out.println("");
解释反射机制
反射机制指的是程序在运行时能够获取自身的信息。

例如一个对象能够在运行时知道自己有哪些方法和属性。

相关文档
最新文档