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