1、java面试题带答案资料仅供参考1. Class.forName作用?调用该访问返回一个以字符串指定类名的类对象。2. 进程和线程的区别是什么?进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程能够有多个线程。线程又叫做轻量级进程。3. 创立线程有几种不同的方式?你喜欢哪一种?为什么?继承Thread类实现Runnable接口应用程序能够使用Executor框架来创立线程池实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。同时,线程池也是非常高效的,很容易实现和使
2、用。4. Java集合类框架的基本接口有哪些?Collection:代表一组对象,每一个对象都是它的子元素。Set:不包含重复元素的Collection。List:有顺序的collection,而且能够包含重复元素。Map:能够把键(key)映射到值(value)的对象,键不能重复。5. Struts1和Struts2原理和区别?Struts1和Struts2是两个完全不同的框架,Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。6.
3、 说出servlet生命周期?servlet实例化时调用init方法,得到请求时调用service方法,service方法自动派遣doget或dopost方法,最后当实例销毁时调用destroy方法。7. swtich()能否作用在byte、long、String上?swtich()传递的应该是一个整数表示式,因此它的值只能是:int、short、char、byte因此long和String都不能作用在swtich()上。8. 线程睡眠方法有哪些,有什么区别?sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其它线程,可是监控状态依然保持,到时后会自动恢复。调用
4、sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。9. 说出数据连接池的工作机制是什么?J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其它调用能够使用这个连接。10.
5、什么是cookie?session和cookie有什么区别?cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie。下面列出了session和cookie的区别:无论客户端浏览器做怎么样的设置,session都应该能正常工作。客户端能够选择禁用cookie,可是,session依然是能够工作的,因为客户端无法禁用服务端的session。在存储的数据量方面session和cookies也是不一样的。session能够存储任意的Java对象,cookie只能
6、存储String类型的对象。11. 浏览器和Servlet通信使用的是什么协议?浏览器和Servlet通信使用的是HTTP协议。12. 关于Java网络编程,工作中是否有使用到?所谓Javasocket通信一般也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序一般经过套接字向网络发出请求或者应答网络请求。socket 开发分客户端与服务端。服务端开启服务监听某一端口。客户端向此服务器的这个端口发出请求,成功则会建立会话,形成通道。这个通道若不做其它操作会一直存在,就是所谓的长连接了,这时服务端与客户端能够经过此通道进行即时通信。13. Thread 类中的start() 和 r
7、un() 方法有什么区别?start()方法被用来启动新创立的线程,而且start()内部调用了run()方法,这和直接调用run()方法的效果不一样。当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。14. Java中流的分类都有哪些?BufferedReader、BufferedWriter、PrintWriter、CharArrayReader、CharArrayWriter、FileReader、FileWriter、FilterReader、FilterWriter、InputStreamReader、OutputStream
8、Writer、PipedReader、PipedWriter、StringReader、StringWriter15. String和StringBuffer的区别?String是不可变的对象,每次对String类型进行改变都相当于产生了一个新的对象,StringBuffer是可变的字符序列,因此如果要经常改变某个字符串的话建议使用StringBuffer。16. 面向对象的特征?封装:经过定义类而且给类的属性和方法加上访问控制继承:子类继承父类,子类能够拥有父类中已定义的方法,而且子类能够修改父类中的方法使其更适合特殊需求。多态:不同对象对统一消息作出不同响应称之为多态抽象:忽略与当前主题无
9、关的那些方面,将注意力集中在与当前目标有关的方面17. 运行时异常和一般异常有何异同?运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常能够由我们去一一捕获并抛出。18. Hibernate工作原理,Hibernate数据持久化?Hibernate工作原理:a:读取并解析映射信息,创立SessionFactoryb:打开Sessionc:创立事物d:持久化操作e:提交事务f:关闭Sessiong:关闭SessionFactoryHibernate持久化:Hibe
10、rnate根据定义的映射规则将对象持久化保存到数据库,这就实现了对象的持久化。19. Spring由那几个模块组成?Spring主要由7个模块组成:a:Spring核心容器:提供了Spring框架的基本功能b:SpringAOP:经过配置管理特性c:SpringORM:Spring框架集成了若干ORM框架d:SpringDAO:打开关闭数据库连接e:SpringWEB:为基于WEB服务的应用程序提供上下文服务f:SpringContext:向Spring框架提供上下文信息g:SpringMVC:分离模型、视图、控制器、以便更容易定制20. jsp常见动作?jsp:include引入一个文件jsp:useBean实例化JavaBeanjsp:setProperty设置JavaBean属性jsp:getProperty输出JavaBean属性jsp:forward转发