java面试题

ITbiyu 2012-02-14 10:10:09
1.ArrayList和LinkList的区别?
2.String与StringBuffer的区别?
3.Struts的工作原理,struts是线程安全的吗?
4.hibernate的延迟加载。
5.juery的“$”的底层是如何实现的。
6.Struts1与Struts2的区别?
7.hibernate的缓存?
8.你用过什么设计模式,自己写过吗?
9.Struts的intercepter(栏载器)
10.如何优化数库,提高其性能?
11.数据库方面的:Table user(int id, varchar name, int status);其id是主键。请向其中插入数据id从3001到3999,name为空,status为1;请用sql去实现他。
12,一个字符串,请以每70个汉字来进行分隔。用一个函数来实现。
...全文
190 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnik2018 2012-02-15
  • 打赏
  • 举报
回复
1.ArrayList和LinkList的区别?
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
http://yrw125.iteye.com/blog/990847

2.String与StringBuffer的区别?
String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象
http://blog.csdn.net/rmn190/article/details/1492013

3.Struts的工作原理,struts是线程安全的吗?
一个请求在Struts2框架中的处理大概分为以下几个步骤
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个 aAction
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper

在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。

http://blog.sina.com.cn/s/blog_5cf3a3ea0100dik7.html

struts1:
它是单实例多线程,线程安全,因为没有类变量,执行通过execute
struts2:
它默认是单实例多线程,线程不安全,因为有类变量,线程不安全

4.hibernate的延迟加载。
在hibernate应用中,有时候只访问指定的持久化对象,在加载该对象时没有必要加载其关联的对象,以免浪费内存空间,但若想在Session关闭后正常访问该对象,必须在加载该对象时,一起加载该对象的关联对象,为了满足检索持久化对象的不同情况的需求,开发灵活高效的hibernate应用,hibernate提供的三种检索策略:立即检索、延迟检索(加载)和迫切连接检索。
在hibernate 3中为了提高效率、节省内存,默认的加载模式是延迟加载,也就是说没有在ORM配置文件中显示指定lazy参数的参数的话,laze的默认值是true,hibernate将默认为延迟加载.

http://wenku.baidu.com/view/433301254b35eefdc8d333e7.html

5.juery的“$”的底层是如何实现的。
$里面的参数(表达式字符串,ID字符串,HTML字符串,DOM对象),主要就是在init方法中各自实现它们自己的逻辑。

http://www.cnblogs.com/liping13599168/archive/2009/02/09/1386623.html

6.Struts1与Struts2的区别?

http://www.cnblogs.com/tongzhiyong/archive/2007/02/24/655178.aspx

7.hibernate的缓存?
Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。
http://www.open-open.com/lib/view/open1329025004483.html

8.你用过什么设计模式,自己写过吗?

http://wenku.baidu.com/view/aa15db3e5727a5e9856a615e.html

9.Struts的intercepter(栏载器)
是interceptor
拦截器的三个阶段:   1、对Action进行预处理。(正序执行)   2、拦截器自身决定该不该执行后续的拦截器(由invoke()方法的返回值决定)。   3、对Action进行后期处理。(倒序执行)

http://baike.baidu.com/view/6032909.htm

10.如何优化数库,提高其性能?
1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。

http://subject.csdn.net/dateopt.htm

ITbiyu 2012-02-15
  • 打赏
  • 举报
回复
楼上这位大侠辛苦了,本来我说我来做的,你都帮我做了,看来这个分数不得不都给你了。

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧