java题目



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语句?
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oscar999

送以玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值