1.String是最基本的数据类型吗?基本数据类型都包括哪些?为什么String修饰过的变量不可改变?
不是基本数据类型,基本数据类型:整数类型、浮点类型、字符类型、布尔类型。
2. String 和StringBuffer的区别
类:String 字符串(String)对象一旦创建,其内容不能再被修改 (read-only) String类型是用final修饰的。类 StringBuffer StringBuffer类用来表示可以改变的字符序列。,StringBuffer 对象的内容是可以被修改的 除了字符的长度之外,还有容量的概念 通过动态改变容量的大小,加速字符管理
3.servlet生命周期
一个Servlet从始至终只有一个实例化的对象,根据客户端请求的url去l里面到相应的servlet,然后servlet容器会跟据servlet类的长名字利用反射将这个类实例化,实例化后首先调用其init()方法做一些初始化的设置,然后调用service()方法,service()方法根据请求的方式调用相应的doXXX()方法,最后调用destroy()方法销毁servlet.
4.ArrayList和LinkedList的区别
ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦
LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查非常麻烦 要丛第一个索引开始
5.Collection和Collections的区别
Collection接口定义了存取对象的一些方法。Set和List提供了存取对象数据的不同方式。在java.util包下。
Collections类提供一些基于List容器的算法。
6.final finally finallize的区别
final定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally是异常的统一出口,finallize是垃圾回收前的收尾工作,是Object类定义的
7.sleep和wait有什么区别
sleep是线程被调用时,占着cpu去睡觉,其他线程不能占用cpu,os认为该线程正在工作,不会让出系统资源,wait是进入等待池等待,让出系统资源,其他线程可以占用cpu,一般wait不会加 间限制,因为
如果wait的线程运行资源不够,再出来也没用,要等待其他线程调用notifyall方法唤醒等待池中的所有线程,才会在进入就绪序列等待os分配系统资源,
8.重写和重载的区别
重载(overload),方法名称必须相同,参数必须不同。在一个类当中,方法的名字一样,参数不同,不同体现在参数的类型和个数,顺序,注意,返回值类型不同的不叫做重载,这样写会出错的。
重写(overload),方法名称必须相同,参数也要相同。重写(overwrite/override):
子类可以根据自己的需求来修改父类继承过来的方法,重写的方法一定要和被重写的方法具有相同的方法名和参数列表,并且重写方jsp定义
法的访问权限不能比被重写方法的权限更严格
<和exception的区别
Throwable: Throwable 类是 Java 语言中所有错误或异常的超类。 Error:是由java虚拟机声明并抛出的。error 表示恢复不是不可能但很困难的情况下的一种严重问题。Java虚拟机是不能解决的。
Exception:需要捕获的。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
10.抽象类和接口有什么区别
抽象类里面可以有非抽象方法
但接口里只能有抽象方法接口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。
11.线程的生命周期
其中当用new 创建完一个线程对象后,该线程处于新建状态当线程对象调用了start()后,该线程处于就绪状态如果处于就绪状态的线程获得CPU时间片,开始执行run方法的线程执行体,该线程处于运行状态如果线程调用了sleep()或者调用了一个阻塞式IO方法等,该线程处于阻塞状态如果线程的run()执行完成或者抛出一个未捕获的异常等原因,该线程处于死亡状态
12.equals和==有什么区别
==比较的是2个对象的地址,而equals比较的是2个对象的内容。
13.java的运行机制
Java的运行机制:
Java代码保存到扩展名为.java的源文件中 => 经过编译成为扩展名为.class的一个二进制字节码文件 => JVM(在java虚拟机上有一个解释器,它把.class文件解释成为某个系统平台所认识的机器指令并执行)。
JVM可以使我们的程序”一次编译、到处运行”,体现了平台无关性。
14.写一个单例模式
public class Singleton {
private static final Singleton singleton = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return singleton;
}
}
15.Jsp九大内置对象
Jsp九大内置对象:
out:向页面输出
request:这个对象里面装着客户端的请求信息
response:装着对客户端请求的响应信息
session:一次客户端与服务端的会话
application:里面可以装一些全局的值,可以做到数据对所有用户的共享,它的生命周期和服务器的生命周期是一致的。
pageContext:它可以获取页面上所有的对象,比如session,application,你可以理解它为集所有功能于一体
page:相当于当前页面本身,它是java.lang.Object类的实例
exception:里面封装了页面出现Exception时的信息,如果想使用它,页面中必须设置
<%@ page isErrorPage=”true” %>,实际上它也是Throwable的子类
config:获取servlet初始化的一些
参数。与Servlet中的ServletConfig相对应
16.jsp与servlet的关系
JSP和Servlet之间的区别实在是不大。
JSP引擎通常架构在Servlet引擎之上,本身就是一个Servlet,把JSP文件转译成Servlet源代码,再调用Java编译器,编译成Servlet。这也是JSP在第一次调用时速度比较慢的原因,在第一次编译之后,JSP与Servlet速度相同.下面我们来看看为什么他们在第一次编译后再编译的速度相同:
s
Session:它和cookie类似,最大的不同是Session是存放在服务端,它能存放的数据容量要比cookie大得多,并且即便连接断开,只要浏览器不关闭session就不会消失。每个客户端在服务端有一个相对应的sessionid.
18.jsp中用哪些常用动作,分别是做什么的?
JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
19.静态include和动态include的区别
动态INCLUDE在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;
静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管
jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含
@ include是先把文件包含就来,然后统一编译 先包含,后编译
20.什么是多态?
多态:程序在执行期间,判断引用类型变量所指向的实际对象,根据实际情况来调用相应的方法。
实现多态的三个条件:继承、重写、父类的引用指向了子类的对象。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论