java题目
发布日期:2021-07-01 05:40:33 浏览次数:2 分类:技术文章

本文共 4166 字,大约阅读时间需要 13 分钟。

1. 简单叙述一下Spring中BeanFactory与ApplicationContext的差别
简而言之,BeanFactory提供了配置框架和基本的功能, 而 ApplicationContext为它增加了更强的功能,这些功能中的一些或许更加接近J2EE并且围绕企业级应用。一般来说,ApplicationContext是 BeanFactory的完全超集, 任何BeanFactory功能和行为的描述也同样被认为适用于ApplicationContext
  相对于BeanFactory而言,ApplicationContext 提供了以下扩展功能.
  (a) 国际化支持
  (b) 资源访问
  (c) 事件传播
  (d) 多实例加载
2. 写一段程序,读取classpath下的一个xml文件,并解析
   (1)Resource resource=new ClassPathResource("appcontext.xml");
   BeanFactory factory=new XmlBeanFactory(resource);
   (2)ClassPathXmlApplicationContext appcontext=new ClassPathXmlApplicationContext("appcontext.xml");
  BeanFactory factory=(BeanFactory)appcontext;
3. 谈一下OpenSessionInView模式,并分别谈一下在使用这个模式和不使用这个模式的情况下,Transaction、数据库连接、Hibernate Session这三者之间的开启和关闭的顺序
这个名字听起来好像很高深,笔者第一次接触到这个名词感觉,哇塞,spring哪整地那么多的技术框架啊,但是真正踏踏实实的看过几篇文章以后,感觉网上说的都是很抽象,而且好像故意说得那么高深,让读者不知所措,好像这样才能认为spring是个太牛的东西,其实,这个东西很简单。下面我简单说明下。
其实在项目里面真正的精华就是web.xml里面的这几行代码:
<filter>
 <filter-name>hibernateFilter</filter-name>
 <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter- class>
</filter>
<filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>*.do</url-pattern>
</filter-mapping>
    好啦,一切ok了。接下来的就有spring容器来帮我们做了。有的人也许会问了,你说得也太简单了吧?简单的让我不能相信了。其实不然,越复杂的东西有时候往往就是一句话的事。听我慢慢道来。
    这个属性就是为了支持hibernate的延迟加载而设计的,spring倡导的是面向接口编程,而且在源文件里面大量的使用了Factory-mode 和Singleton-mode。但是这就和hibernate的延迟加载产了冲突。如果不使用hibernate的 OpenSessionInViewFilter过滤器,那么当使用完getHibernateTemplet().save()或者delete()对象以后,spring会自动的关闭session。即使你使用了延迟加载的机能,spring也不会管你那套的。该关的session一刻也不等。当你想延迟加载某些类的某些设置为延迟加载的属性以后,spring就会报出session is close的错误,这该死的spring。为了优化系统的启动速度我才延迟的,为什么你这么不通情达理?不然,使用了 OpenSessionInViewFilter以后,当你save完一个对象以后,因为有这个过滤器,所以spring会把这个连接放到线程池里面,而不是马上就关闭。当需要延迟加载的时候,spring会从线程池里面取出那个session完成加载的动作。当确定这个session确实不再需要的时候,spring才会close掉这个session。原理就是这么简单。我们只需要做的就是在web.xml里面配置那几行代码,其他的就按照我们预期的做,spring会自动帮我们完成我们想要的。简单吧?
4. 说说在hibernate中使用Integer做映射和使用int做映射之间有什么差别
Integer   code和int   code;的区别:
Integer是对象.     code   =   null;   对象可以为空. 
int   是普通类型,     不可能   =   null.     
根据你的数据库code是可以空的,   故应该映射成Integer.   
你没理由hbm.xml里写Integer,   类里却写int
5. 一个网站应用,请设计一个持久化类User,他可能有多张会员卡号、需要多个email地址(数量不定)作为其身份验证的方式
1.      请给自己Java水平一个准确的自我定位:                                    
2.      判断题:声明int a = 10; 判断以下3个运算是否能够分别通过Java编译器:
a = a/2;  a = a/3;  a = a*2.89;
 
如果以上3个运算,能够分别通过编译、运行,请写出a的结果值__5___   ___1_   ____x_
e.g: 比如您认为第1个通不过,第2个,第3个能够通过且值为1,2,这样填写答案 X   1   2
3.      判断题:指出程序正确,或错误(若有错误,需要写出简单理由):
Object obj = new Object();
User user = (User) obj;
System.out.println(user.getName());
造型错误
4.      判断题:指出程序正确,或错误以及简单理由:
java.util.List list = new java.util.List();
List是抽象接口,不能实例化
5.      选择题:请选择正确的判断:___a___
关键字extends
a)      可用于一个类继承一个类
b)      可用于一个接口继承一个接口
c)      可用于一个类继承一个接口
d)      可用于一个接口继承一个类
6.      选择题:执行如下代码,程序输出是_c__________:
String s = "i_am_an_expert!";		s = s.substring(2);		System.out.println(s);
单选项:
a)      i_am_an_expert!
b)      i_
c)      am_an_expert!
d)      i
e)      _am_an_expert!
7.      程序题:写出以下程序的输出结果:
public class Term {
    private long id;
    public Term(long id) {this.setId(id);}
    public long getId() {return id;}
    public void setId(long id) {this.id = id;}
    public boolean equals(Object obj){ return true;}
 
public static void main(String[] args) {
    Term term1 = new Term(1);
Term term1 = new Term(2);
System.out.println(term1.equals(term2));
System.out.println(term1 == term2);
}
}
true
false
8.      程序题:请指出以下代码哪些点可能抛出NullPointerException,在其代码行号前打钩:
1.      boardBo.updateLastPost(
2.      thread.getId(),
3.      lastPost.getId(),
4.      lastPost.getPoster().getId(),
5.      lastPost.getPoster().getLoginName(),
6.      lastPost.getPostTime());
9.         程序题:我想启动一个线程执行特定的任务,任务的具体执行内容定义在TheRunnable类中(实现了java.lang.Runnable接口):
TheRunnable theRunnable = new TheRunnable();
以下哪个语句可用于启动theRunnable任务线程:_____
a)      theRunnable.run();
b)      theRunnable.start();
c)      Thread thread = new Thread(theRunnable); thread.run();
d)      Thread thread = new Thread(theRunnable); thread.start();
10.  程序题:给定一个java.util.Date对象,如何转化为”2007-3-22 20:23:22”格式的字符串。
11.  [WEB题目] 在Web应用中,各举POST请求和GET请求应用场景的一个例子。
12.  [WEB题目] Web应用MVC模型中,a) C如何向V传送M;  请试写一行代码。
13.  [Spring题目] 写出Spring框架中ServletRequestUtils类中的一个方法。
14.  [Spring题目]请举出,你用过Spring框架中“Callback模式”的一个例子。
15.  [系统设计]请简单评价该设计的优劣:身份证号码作为一个person表的主键。
16.  [Hibernate题目] Hibernate如何获取指定主键id的某对象,请举例,并进行可能的优劣比较。
17.  [Hibernate题目]判断题:使用save/persist一个对象时,便立即向数据库发送执行insert sql语句?

转载地址:https://oscar.blog.csdn.net/article/details/1856131 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:jasperReport学习
下一篇:tomcat内存优化

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月02日 20时03分47秒