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