日期:2014-05-20  浏览次数:20683 次

急!高分求常见(经典)Java基础笔试题!
高分求常见(经典)Java基础笔试题!
越全越好!小弟先谢谢了!

------解决方案--------------------
http://wenku.baidu.com/view/d366d03383c4bb4cf7ecd1cd.html
http://topic.csdn.net/u/20091218/00/46c8242d-58db-45a3-89ee-021e0d3b34cb.html
http://download.csdn.net/down/2079937/lxb2009
http://bbs.tech.ccidnet.com/read.php?tid=595287
google一下,baidu一下 多的是
------解决方案--------------------
www.java2000.net

------解决方案--------------------
一、xml有哪些解析技术?区别是什么? 
答:有DOM,SAX,STAX等 
DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问 
STAX:Streaming API for XML (StAX) 


二、 struts 的5个主要类 
ActionServlet是系统维护的,你不能操作,它主要是根据传入的action路径在ActionMapping中查找相应的类,并调用它。 
Action是控制器,主要是从ActionForm中接收页面传进来的数据,然后进行逻辑处理。 
ActionForm是用来接收页面上表单中的数据。 
ActionMapping是用来配置每个Action所对应的路径 
ActionForward是用来实现跳转,在Action中最后一行语句通常是return mapping.forward()这里传入的值就在ActionForward中设置 

三、ArrayList和Vector的区别,HashMap和Hashtable的区别 

就ArrayList与Vector主要从二方面来说. 

一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 

二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 

就HashMap与HashTable主要从三方面来说。 

一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 

二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 

三.值:只有HashMap可以让你将空值作为一个表的条目的key或value 

四、JDK1.5新特性 
1,泛型(Generic) 2, for-Each循环 3,自动 
装包拆包 4,枚举类型(Enums) 5,静态导入(Static imports) 

五、JDK1.6新特性 
1,desktop类和systemtray类 
2,使用JAXB2来实现对象与xml之间映射 
3,理解STAX 
4,使用compiler API 
5,轻量级的HTTPServer API 
6,插入式注解处理 
7,用console开发控制台程序 
8,对脚本语言的支持:ruby、groovy、javascript 
9,common Annotations 

Struts、spring、hibernate 工作机制,为什么用! 

六、hiberante工作机制 

1. 读取并解析配置文件 

2. 读取并解析映射信息,创建SessionFactory 

3. 打开Sesssion 

4. 创建事务Transation 

5. 持久化操作 

6. 提交事务 

7. 关闭Session 

8. 关闭SesstionFactory 

为什么使用 

1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 

2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 

3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 

4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 

5. 可扩展,卡发者可以根据需求定义查询 

struts1.2工作原理以及为什么使用 

Struts的工作原理: 

在web应用启动时就会加载初始化ActionServlet,ActionServlet从 

struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 

当ActionServlet接收到一个客户请求时,将执行如下流程. 

-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息; 

-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm 对象中; 

-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; 

-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功; 

-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; 

-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件; 

-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户; 

为什么要用: 

1、整合jsp、servlet、javaBean 是Web开发更加正规化。