1、Class.forName的作用?为什么要用?
Class.forName(xxx.xx.xx)返回的是一个Class对象
Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的
静态代码段
2、简述在JSP中是如何实现分页操作的?
分页有两种情况:
真分页:性能高,是基于数据库的操作,只是从数据库中取出部分的数据进行显示,所以性能高,
但是可移植性低
假分页:性能低,是将全部的结果查询出来,之后依靠算法分页,只显示部分数据,因为使用了
通用的语法,所以可移植性高
真分页实现原理:
1.定义一系列的变量:currentPage(当前页)showResultNumber(每页显示记录数),并通过
查询求出countResultNumber(总记录数)求出countPage(总页数)
| - countPage = (countResultNumber - 1)/ showResultNumber + 1
2.然后根据currentPage和showResultNumber到数据库中查询数据
| - Oracle中用rownumber, MySql中用limit()
3.然后在表单中不断地修改currentPage和showResultNumber就可以实现分页
3、简述Web.xml文件的作用
属于部署描述符,在整个java中只要是容器都会存在部署描述符,此部署描述符可以控制整个web中
各个组件的运行状态,也可以配置整个容器的状态,主要配置程序中一些基本信息和文件等等:
如:<welcome-file-list><filter><listener><error-page><servlet><servlet-mapping>
<filter-mapping><session-config><load-on-starup>等
4、JSP的四种范围
a. page是代表与一个页面相关的对象和属性。一个页面由一个编译好的javaservlet类(可以带有
任何的include指令,但是没有include动作)表示。这既包括servlet又包括被编译成servlet的JSP页面
b. request是代表与web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,
涉及多个web组件(由于forward指令和include动作的关系)
c. session是代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web会话可以也经常
会跨越多个客户机请求
d. application是代表与整个web应用程序相关的对象和属性。这实质上是跨越整个web应用程序,
包括多个页面、请求和会话的一个全局作用域。
5、编辑java源程序后,编译器把 *.java文件编译成*.class文件,为了运行该程序,必须将程序加载到内存
中,请描述java中基础类的加载机制
java基础类是程序运行的基础,因此它采用预先加载的机制。当启动一个程序时,java首先在JDK目录
下找到并载入jvm.dll,然后启动虚拟机。当启动虚拟机时会做一些初始化操作,如设置系统参数等。接着
会创建一个Bootstrap Loader对象,我们称它为启动类的装载器,该装载器由c++编写,负责在虚拟机启动时
一次性加载JVM的基础类
6、编辑java源程序后,编译器把*.java文件编译成*.class文件,为了运行该程序,必须将程序加载到内存
中,请描述含main()函数类的加载的机制
Bootstrap Loader另一项很重要的工作就是装载定义在sun.misc命名空间下的Launcher类。Launcher拥有
两个内部类ExtClassLoader和AppClassLoader。ExtClassLoader的父加载器被设置为null,表示
它的父加载器为Bootstrap Loader,AppClassLoader的父加载器设置为ExtClassLoader,拥有
main()函数的入口类,即由AppClassLoader在程序启动时加载。
7、编译java源程序后,编译器把*.java文件编译成*.class文件,为了运行该程序,必须将程序加载到内存中,
请描述按需装载的流程
当需要加载一个类时,JVM首先会检查这个类的Class对象是否已经加载,如果已经加载,便可以执行
想要执行的代码,如果这个类的Class对象未加载,则JVM先加载这个类,流程如下:
8、JDBC编程模型中,数据库厂商需要实现数据库驱动程序,开发者使用驱动程序完成数据库的应用,
请描述JDBC的生命周期
在数据库生命周期中,首先要加载需要用到的数据驱动,然后将加载的驱动注册到JDBC中,
然后用户就可以用JDBC获取数据库连接会话,获取会话后用户就可以使用该会话进行数据库操作,
操作完成后,即可关闭释放连接,一个JDBC的使用周期结束。