javaEE基础面试题

来源:互联网 发布:淘宝网车用抱枕被 编辑:程序博客网 时间:2024/04/29 15:03
java的世界 2016-10-12 13:28

一、 描述servlet 生命周期

1. 如果在 web.xml 中进行了<load-on-startup>,那么会在启动项目时立刻加载servlet,实例化并执行 init 方法进行初始化;

2. 如果没有配置<load-on-startup>,则 servlet 在第一次被请求时,JVM 加载该 servlet 类,创建 servlet 实例,并调用 init 方法进行初始化工作,只初始化一次,然后执行 service 方法进行服务,每次请求都会执行 service 方法;

3. 请求经过初始化的 servlet 时,那么只会调用 service 方法提供服务;

4. 如果在一个 servlet 长期不被访问或者项目停止时,服务器会调用 destroy 方法执行销毁工作,并对 servlet 类卸载。

二、 int和integer有什么关系

1.int是java提供的8中数据类型之一。java为每一个原始数据类型提供了封装类,Integer是java为int提供的封装类。引用类型和数据类型

有不同的特征和用法,他们包括:大小、速度、存储过程及缺省值。

2.int存放在内存栈上,占用4个字节,存取速度快;Integer对象存放在内存堆上,占用更多的内存空间,存取速度慢

3.int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,而int则无法表达出未赋值的情况

4.Integer提供了多个与整数相关的操作方法,例如:将一个字符串转换成整数等等

5.int一般用于数值计算中,Integer则用在类型转换或者向集合中存取数值中。

三、 面向对象的三大特征是什么

封装:也就是把客观事物封装成抽象的类,封装可以隐藏实现细节,使得代码模块化。

继承:继承是指这样的一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

多态:实现多态,有两种方式,重写和重载。

四、 jsp有哪几种内置对象?分别写出他们的名字?

1. request: HttpServletRequest 请求对象

2. response: HttpServletResponse 响应对象

3. application: ServletContext 对象

4. session: HttpSession 对象

5. page :代表 this

6. pageContext :PageContext 对象

7. exception: 如果当前 jsp 的 page 指令 isErrorPage 属性为 true,才会创建,异常对象

8. out: 输出流

9. config: ServletConfig 对象

五、 重写和重载的区别?

方法的重写overriding和重载overLoading是java多态性的不同体现。重写overriding是父类和子类之间多态性的一种表现,重载是一个类中多态性的一种表现

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中定义如同被屏蔽了。

子类方法的签名和返回类型必须和父类完全一致,子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常。子异常的访问权限只能比父类的更大,不能更小

如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载。

六、sleep()和wait()的区别?

sleep是线程类thread的方法,导致此线程暂停执行指定时间,把执行机会留给其他线程,但是监控状态依然保持,到时后会自动恢复,调用sleep不会释放对象锁

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

七、数据库的事务是什么?具有哪些特征?

数据库事务是指作为单个逻辑工作单元执行的一些列操作。一个逻辑工作单元要成为事务,必须满足ACID(原子性、一致性、隔离性和持久性)。

  1. 原子性

    事务的原子性是指,事务中包含的程序作为数据库逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。

  2. 一致性

    一致性是指在一个事务执行之前和执行之后数据库都必须处于一致性状态。

  3. 分离性

    分离性是指并发的事务是相互隔离的。即一个事务内部的操作以及正在操作的数据必须封锁起来,不被其他企图进行修改的事务看到。

  4. 持久性

    持久性意味着当系统或者介质发生故障时,确保已提交事务的更新不能丢失。

八、java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

当新对象被创建的时候,构造函数会被调用,每一个类都有构造函数,在程序员没有给类提供构造函数的情况下,java编译器会为这个类创建一个默认的构造函数。

java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它唯一的参数列表。

java不支持像c++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,java不会创建默认的复制构造函数。

九、什么是java虚拟机?

java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件要被编译成java虚拟机可以执行的字节码

因为java虚拟机知道底层硬件平台的指令长度和其他特性。所以java虚拟机使得跨平台成为可能。

十、是否可以在static环境中访问非static变量?

static变量在java中是属于类的,当类被java虚拟机载入的时候,会对static变量进行初始化。如果你的代码尝试不用实例来访问非static的变量,

编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

0 0