1115个JAVA面试题及回答
java面试题库java面试题目及答案(3篇)

第1篇一、基础知识1. Java简介题目:请简述Java的基本特点。
答案:- 简单易学:Java设计之初就考虑了易学性,使用面向对象编程。
- 原生跨平台:Java通过JVM(Java虚拟机)实现跨平台运行。
- 安全性:Java提供了强大的安全机制,如沙箱安全模型。
- 体系结构中立:Java不依赖于特定的硬件或操作系统。
- 高效:Java的运行速度接近C/C++。
- 多线程:Java内置多线程支持,便于实现并发处理。
- 动态性:Java在运行时可以进行扩展和修改。
2. Java虚拟机题目:请解释Java虚拟机(JVM)的作用。
答案:JVM是Java程序的运行环境,其主要作用包括:- 将Java字节码转换为本地机器码。
- 管理内存,包括堆、栈、方法区等。
- 提供垃圾回收机制。
- 管理线程和同步。
3. Java内存模型题目:请简述Java内存模型的组成。
答案:Java内存模型主要由以下部分组成:- 堆(Heap):存储对象实例和数组。
- 栈(Stack):存储局部变量和方法调用。
- 方法区(Method Area):存储类信息、常量、静态变量等。
- 本地方法栈(Native Method Stack):存储本地方法调用的相关数据。
- 程序计数器(Program Counter Register):存储线程的当前指令地址。
4. Java关键字题目:请列举并解释Java中的几个关键字。
答案:- `public`:表示访问权限为公开。
- `private`:表示访问权限为私有。
- `protected`:表示访问权限为受保护。
- `static`:表示属于类本身,而非对象实例。
- `final`:表示常量或方法不能被修改。
- `synchronized`:表示线程同步。
- `transient`:表示数据在序列化时不会被持久化。
二、面向对象编程5. 类和对象题目:请解释类和对象之间的关系。
答案:类是对象的模板,对象是类的实例。
java高级面试题及答案

java高级面试题及答案一、基础理论知识1. 请解释Java中的四种访问修饰符及其作用范围。
答:Java中的四种访问修饰符分别是public、protected、default(无修饰符)和private。
public修饰的类或成员可以被任何其他类访问;protected修饰的成员可以被同一个包内的类以及子类访问;default(无修饰符)的成员只能被同一个包内的类访问;private修饰的成员只能在声明它的类内部访问。
2. 什么是Java的序列化和反序列化?请举例说明。
答:Java序列化是将对象的状态信息转换为字节流的过程,以便于存储或传输。
反序列化则是将字节流恢复为原来的对象。
例如,通过ObjectOutputStream和ObjectInputStream类可以实现对象的序列化和反序列化。
3. 解释Java中的多态性及其优势。
答:多态性是指允许使用子类对象来替代父类对象的能力。
在Java中,这是通过继承和接口实现的。
多态性的优势包括代码的可扩展性和可维护性,以及能够编写更通用的代码。
二、Java集合框架1. 请比较ArrayList和LinkedList的性能差异。
答:ArrayList是基于动态数组的数据结构,适合随机访问;LinkedList是基于双向链表的数据结构,适合频繁的插入和删除操作。
在随机访问大量元素时,ArrayList的性能优于LinkedList;而在插入和删除操作频繁时,LinkedList的性能更优。
2. 什么是HashMap的工作原理,以及如何解决它的线程安全问题?答:HashMap基于哈希表实现,通过键的哈希值来计算存储位置。
当两个不同的键具有相同的哈希值时,会发生哈希冲突,HashMap通过链表或红黑树来解决这个问题。
对于线程安全问题,可以使用ConcurrentHashMap,它通过锁分离技术来提供线程安全的映射。
三、异常处理1. 请解释Java中的异常处理机制。
java跳槽面试题目(3篇)

第1篇一、Java基础知识1. 请简述Java的基本特点。
解析:Java具有“一次编写,到处运行”的特点,具有跨平台性;具有简单易学、面向对象、分布式、解释型、健壮性、安全性、体系结构中立、多线程、动态性等特点。
2. 什么是JVM?请简述JVM的作用。
解析:JVM(Java虚拟机)是运行所有Java应用程序的虚拟机。
它的作用是执行Java字节码,为Java程序提供运行环境,保证Java程序跨平台运行。
3. 请简述Java中的四种访问控制符及其作用。
解析:- public:表示公开的访问控制符,可以在任何地方访问。
- private:表示私有的访问控制符,只能在类内部访问。
- protected:表示受保护的访问控制符,可以在类内部和子类中访问。
- default(无修饰符):表示默认的访问控制符,只能在本包内访问。
4. 什么是封装?请举例说明。
解析:封装是将类的属性和行为封装在一起,对外只提供有限的接口。
例如,一个学生类,包含姓名、年龄、性别等属性,以及学习、休息等方法。
5. 什么是继承?请举例说明。
解析:继承是子类继承父类的方法和属性。
例如,一个动物类,包含行走、吃食等方法,一个猫类继承自动物类,则猫类具有行走、吃食等方法。
6. 什么是多态?请举例说明。
解析:多态是指同一个方法在不同对象上有不同的行为。
例如,一个形状类,包含计算面积的方法,一个圆形和正方形类继承自形状类,计算面积的方法在圆形和正方形类中有不同的实现。
7. 什么是接口?请举例说明。
解析:接口是一种规范,定义了类应该具有的方法,但不提供具体实现。
例如,一个Comparable接口,定义了compareTo方法,用于比较两个对象的大小。
8. 什么是泛型?请举例说明。
解析:泛型是一种类型参数化技术,可以在编译时进行类型检查,提高代码的安全性。
例如,一个List<T>泛型集合,可以存储任意类型的元素。
二、Java集合框架1. 请简述Java集合框架中的常用类及其特点。
java基础面试题精选(包含答案)

java基础面试题精选(包含答案)一、填空题(每空2分,共30分)1、在tomcat上发布javaweb应用时的默认目录是_______目录。
2、javaweb应用的部署描述符是指 _____ 文件。
3、在tomcat中访问helloapp应用的login.html文件时,在浏览器地址栏应写的url为:___________________________________。
4、Servlet容器启动每一个web应用时,都会为它创建一个唯一的________对象,该对象和web应用有相同的生命周期。
5、请求转发源组件的响应结果_______发送到客户端,包含______发送到客户端。
(填“会”或“不会”)6、jsp中实现请求转发的标记为:_________。
7、在JSP中,_________ 内置对象代表请求消息,_________ 内置对象代表响应消息,______内置对象代表会话。
8、如果使用第四类jdbc驱动器连接数据库,jar文件的存放位置为“_________”。
9、Servlet容器为每一个HttpSession对象分配一个唯一标识符,叫做______。
10、javaweb在mvc设计模式下,_______是模型,_____是视图,______是控制器。
二、选择题(每题2分,共30分)1、下面哪一个选项不是http响应的一部分?()a) 响应头b) 响应正文c) 协议版本号d) 状态行2、http请求及响应的正文部分可以是任意格式的数据,要保证接收方能看得懂发送方发送的数据,http协议采用( )协议来规范正文的数据格式 ?a) FTPb) TCPc) HTTPd) MIME3、Servlet API 由哪两个包组成?(两个答案)()a) javax.servletb) javax.servlet.jspc) javax.servlet.httpd) java.servlet4、一个servlet的生命周期不包括()方法?a) init()方法b) invalidate()方法c) service()方法d) destroy()方法5、HttpServletRequest对象的()方法能够获取一个表单参数的值:a) getQuaryString()b) getPathInfo()c) getParameter()d) getAttribute()6、下面对servlet中重定向说法描述错误的是()a) 使用的是HttpServletResponse接口的sendRedirect()方法b) 源组件的响应结果不会发送给客户端c) sendRedirect()方法后的代码仍会执行d) 源组件和目标组件共享ServletRequest对象7、jsp指令不包括()a) page指令b) taglib指令c) import指令d) include指令8、可以执行请求转发的操作是()。
Java经典面试题及答案(200题)

Java经典面试题及答案(200题) Java经典面试题200道Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。
简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
2. == 和 equals 的区别是什么?「== 解读」对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为 x 和 y 指向的是同一个引用,所以 == 也是 true,而 new String()方法则重写开辟了内存空间,所以 == 结果为 false,而 equals 比较的一直是值,所以结果都为 true。
「equals 解读」equals 本质上就是 ==,只不过 String 和 Integer 等重写了equals 方法,把它变成了值比较。
2024年Java经典面试题及答案

2024年Java经典面试题及答案问:Java中的泛型是什么?它有什么作用?答:Java中的泛型是一种参数化类型,它允许使用一个占位符来代表各种类型。
它的作用是在编译时检测类型的一致性,避免了类型转换错误,并提高了代码的重用性。
问:Java中的静态方法和实例方法有什么区别?答:静态方法是属于类的方法,可以在不创建实例对象的情况下被调用,它可以直接通过类名来调用。
实例方法是属于具体实例对象的方法,需要先创建实例对象才能调用。
问:Java中的反射是什么?它有什么用途?答:反射是指在运行状态中,动态获取类的信息并操作类的属性和方法。
它的主要用途是在运行时动态创建对象、访问属性和调用方法,以及在编译时无法确定类型的情况下进行操作。
问:Java中的多线程是什么?如何创建多线程?答:多线程是指在一个程序中同时执行多个线程,每个线程可以独立执行不同的任务。
要创建多线程可以通过继承Thread 类或实现Runnable接口来实现。
问:Java中的异常处理是什么?有哪些常见的异常类型?答:异常处理是指在程序执行过程中处理各种错误或异常情况。
常见的异常类型包括NullPointerException、ArrayIndexOutOfBoundsExcpetion、IOException等。
问:Java中的集合框架是什么?它有哪些常见的接口和类?答:集合框架是Java中用于存储和操作对象的数据结构。
常见的接口包括List、Set、Map等,常见的类包括ArrayList、LinkedList、HashSet、HashMap等。
问:Java中的IO流是什么?它有哪些常见的流类型?答:IO流是用于输入和输出操作的流。
常见的流类型包括字节流和字符流,分别对应InputStream/OutputStream和Reader/Writer。
在Java编程中, IO流是非常重要的一个概念。
IO流是用于将数据从一个地方传输到另一个地方的机制,它允许程序通过输入和输出来访问数据。
115个java面试问题和答案(完整版)

115个Java面试问题及答案目录●面向对象编程(OOP)●常见的Java问题●Java线程●Java集合类●垃圾收集器●异常处理●Java Applets●Swing●JDBC●远程方法调用(RMI)●Servlets●JSP面向对象编程(OOP)Java是一个支持并发、基于类和面向对象的计算机编程语言。
下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。
代码复用。
增强代码的可靠性和灵活性。
增加代码的可理解性。
面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。
下面的章节我们会逐个分析这些特性。
1、封装封装给对象提供了隐藏内部特性和行为的能力。
对象提供一些能被其他对象访问的方法来改变它内部的数据。
在Java当中,有3种修饰符:public,private和protected。
每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。
下面列出了使用封装的一些好处:通过隐藏对象的属性来保护对象内部的状态。
提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展。
禁止对象之间的不良交互提高模块化。
2、多态多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。
一个多态类型上的操作可以应用到其他类型的值上面。
3、继承继承给对象提供了从基类获取字段和方法的能力。
继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。
4、抽象抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。
Java支持创建只暴漏接口而不包含方法实现的抽象的类。
这种抽象技术的主要目的是把类的行为和实现细节分离开。
抽象和封装的不同点抽象和封装是互补的概念。
一方面,抽象关注对象的行为。
另一方面,封装关注对象行为的细节。
一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。
常见的Java问题1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。
java面试题大全带答案

java面试题大全带答案一、基础知识1. 什么是Java?Java是一种高级编程语言,由Sun Microsystems于1995年推出。
它是一种面向对象的语言,可以在不同的平台上运行。
2. 什么是JDK和JRE?JDK(Java Development Kit)是Java开发工具包,包含了编译器和其他开发工具。
JRE(Java Runtime Environment)是Java运行时环境,包含了JVM和Java类库。
3. 什么是JVM?JVM(Java Virtual Machine)是Java虚拟机,它是Java程序运行的环境。
JVM负责将Java字节码翻译成机器码,并执行程序。
4. 说说Java的特点?- 简单易学:Java采用了类似C++的语法,但去掉了一些复杂的特性,使得代码更加简洁易懂。
- 面向对象:Java支持封装、继承、多态等面向对象的特性,使得代码更加模块化、可重用。
- 跨平台性:由于Java程序是在JVM上运行的,可以在不同的操作系统上运行,提高了程序的可移植性。
- 安全性:Java有内置的安全机制,如沙箱安全机制和字节码校验,可以防止恶意代码的运行。
- 垃圾回收:Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的内存,减轻了开发人员的负担。
二、面向对象1. Java中的类和对象有什么区别?类是对象的模板,描述了对象具有的属性和方法。
而对象则是类的一个实例,它具有类定义的属性和方法。
2. 什么是继承?继承是面向对象编程的一种特性,它允许一个类继承另一个类的属性和方法。
子类通过继承可以重用父类的代码,并且可以在此基础上添加新的功能。
3. 什么是多态性?多态性是指对象在不同的情况下表现出不同的行为。
在Java中,通过继承和方法重写可以实现多态性。
4. 什么是封装?封装是一种将数据和代码包装在一起的机制,通过访问修饰符来限制对数据和代码的访问。
它可以隐藏实现细节,提高代码的安全性和可维护性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
垃圾回收器35.Java中垃圾回收的目的是什么,它什么时候被使用?垃圾回收用于识别和丢弃程序不再需要的对象,以便回收和复用资源.36.System.gc()和Runtime.gc()方法用途?这些方法用于提醒JVM开始垃圾回收.然而开始垃圾回收的时机是由JVM决定的.37.finalize()什么时候被调用?它的目的是什么?47.怎样区分finally语句块与finalize()方法?不管是否抛出异常finally语句块都会被执行,它通常用于释放程序持有的资源.finalize是Object类中的一个protected方法,当一个对象被gc回收前它会被jvm调用.Java Applets48.什么是Applet?一个Java Applet可以包含在HTML页面中并且可以在启用Java客户端的浏览器中运行。
Applets可以用来创建动态和交互式的web应用程序。
49.Applet生命周期的说明一个Applet可能会经历以下的几个状态:∙Init:每次加载的时候都进行初始化∙Start:开始执行一个applet∙Stop:停止执行一个applet∙Destroy:卸载applet之前执行最后的清理50.当applet加载的时候会发生什么?首先,会创建一个applet的控制类的实例。
然后,applet初始化,最后applet开始运行。
51.Applet和Java应用程序有什么不同?Applets需要一个支持Java的浏览器,但是Java应用程序可以被单独执行。
但是,他们都需要一个Java虚拟机,JVM。
还有,一个Java应用程序需要一个main方法与特定的签名,来确保启动.Java applets并不需要这样一些东西。
最后,Java Applet通常使用严格的安全策略,而Java应用程序通常使用较宽松的安全策略。
52.什么是强加给Java Applet限制?这主要是由于安全原因,以下限制强加在Java小程序:∙Applet无法加载库或定义本地方法。
∙Applet通常无法读取或执行主机的文件。
∙Applet无法读取某些系统属性。
∙除非连接来自主机否则不能进行网络连接。
∙Applet程序不能启动主机上执行它的任何程序。
∙53.什么是不可信的Applet?不受信任的Applet是那些Java Applet不能访问或执行本地系统的文件的程序。
默认情况下,所有下载的Applet被认为是不可信的。
∙54.通过文件系统加载的小程序在加载了互联网和Applet之间的区别是什么?关于其中一个applet被加载在互联网的情况下,applet是由applet类加载器加载并须受该applet安全管理器执行的限制。
∙关于其中一个applet是从客户端的本地磁盘加载的情况下,applet是由文件系统加载器加载的。
∙通过文件系统加载的applet允许读取文件,写入文件并加载在客户端上。
还有,通过文件系统加载applet允许执行,最后,通过文件系统加载的applet不管是否通过字节码验证都可加载。
∙55.什么是applet类加载器,它提供了什么?当在互联网上加载applet,该applet是由applet的类加载器加载的。
类加载器强制执行Java命名空间的层次结构。
此外,类加载器保证这是在来自本地文件系统的∙70.Java布局管理器提供超过传统的窗口系统的什么样的优势?Java使用布局管理器以一致的方式来布局组件,跨所有窗口平台。
由于布局管理器不绑定绝对化的尺寸和位置,所以它们能够容纳不同窗口系统的平台具体差异。
∙71.Java为所有Swing组件使用的设计模式是什么?Java为所有Swing组件使用的设计模式是是模型视图控制器(MVC)模式。
JDBC∙桩(Stub)和框架(Skeleton)层:该层位于开发者视图的下面。
该层是负责拦截客户端请求接口的方法并重定向这些请求到远程RMI服务上。
∙远程引用层:架构的第二层是处理从客户端到服务器的远程对象引用的解析。
该层解析并管理从客户端到远程服务对象的引用。
该连接是一对一(单播)连接的。
∙传输层:该层主要负责连接参与服务的两个JVM。
它基于通过网络连接的机子的TCP/IP,提供了基本的连通性,以及一些防火墙的渗透策略。
81.在RMI中远程接口的作用是什么?远程接口用于识别那些不是来自本地机子接口但可以被调用的方法。
所有对象都是必须直接或间接实现该接口的远程对象。
实现该远程接口之前应该声明其远程接口,为每个远程对象定义构造方法,并在所有远程接口中为每个远程方法提供实现。
82.java.rmi.Naming类扮演的角色?java.rmi.Naming类提供了存储和获取已注册的远程对象.Naming类中的每个方法都需要一个URL格式的String作为参数的名称.83.RMI中的绑定是什么意思?绑定是关联或注册一个远程对象的名字的过程,这个名字可以在以后用到,用于查找与它绑定的远程对象.远程对象可以通过Naming类中的bind或rebind方法与一个名字相关联.84.Naming类中的bind与rebind方法的区别?bind方法的绑定主要用于将特定的名字绑定到一个远程对象,但rebind方法的绑定用于将特定的名字重新绑定到一个新的远程对象.如果这个名字已经绑定过了,使用rebind这个绑定会被替换.85.运行RMI程序的步骤?为了使RMI程序正常运行需要以下步骤:∙编译所有源文件.∙用rmic生成stub.∙启动rmiregistry.∙启动RMIServer.∙运行客户端程序.86.RMI中stub的角色?远程对象的stub作为远程对象在本地程序中的表示或代理.调用者调用本地stub的一个方法,这个方法会在远程对象上执行.当一个stub的方法被调用时,它经历了以下步骤:∙初始化与运行远程对象的远程JVM的连接.∙将参数编码并传递给远程JVM.∙等待方法调用与执行的结果.∙解码返回值或异常(如果执行失败).∙将返回值返回给调用者.∙87.什么是DGC?它是如何工作的?DGC代表的是分布式垃圾收集。
远程方法调用(RMI)使用的是DGC自动垃圾收集机制。
由于RMI涉及到跨JVM的远程引用,垃圾回收就会相当困难。
DGC使用相关的计数算法为远程对象提供自动存储管理。
∙88.在RMI中使用RMISecurityManager的目的是什么?在RMI应用程序中可以使用RMISecurityManager提供安全管理器来下载代码。
如果安全管理器没有设置好,RMI的类加载器不会从远程端下载任何类。
89.解释编组和解组。
当一个应用程序要通过网络来传送内存对象到另一台主机,或者保留它到存储器,内存表达法会将其转换到合适的格式。
这个过程就叫做编组,而恢复操作就叫解组。
90.解释序列化和反序列化。
Java提供了一个机制,是指一个对象可以被表示为字节序列, 包括对象的数据,以及对象类型的信息和存储在对象中的数据类型。
因此,序列化可以看做是平面化对象为了存储到磁盘中,方便后面读取和重新配置的一种方式。
反序列化是一种从平面化状态到活跃状态的一种转换对象的逆过程。
∙Session无论在客户端浏览器的设置都可以工作。
客户端可以选择禁用cookies。
然而,Session仍然可以工作,因为客户端没有能力在服务器端禁用Session。
∙Session和cookie也t有不同的信息存储量。
HTTP会话能够存储任何Java对象,而一个cookie只能保存String对象。
∙103.浏览器和servlet通过什么协议通信?HTTP协议.∙104.什么是HTTP通道?通道是指使用HTTP或HTTPS封装其它的网络协议.HTTP包装了其他的网络通信协议.其它协议通过HTTP来发送请求的过程就使用了通道.∙105.sendRedirect和forward方法的区别?sendRedirect创建一个新的请求,forward只是将请求转发.之前请求中包含的对象在redirect后将不可用,因为产生了一个新的请求.但是forwarding不受此限制.通常来说,sendRedirect比forward方法慢一些.∙106.什么是URL编码和解码?∙URL编码就是替换其中的空格和特殊字符,变成相应的Hex码.解码就是反向操作。
使用JSP技术有以下优势:∙JSP网页被动态的编译,因此开发者很容易更新当前代码。
∙JSP网页可预编译。
∙JSP网页能容易的组合成静态模版,包括HTML XML片段,且代码可形成动态内容。
∙开发者能提供自定义的JSP标签库,且使用类XML语法访问。
∙开发者可以在组件级别做逻辑上的改变,但是不能使用程序逻辑编辑个别的网页。
110.什么是指令?在JSP中,包括哪些不同类型的指令?指令是JSP引擎所处理的命令,当网页被编译成小程序时,指令用于去设置页面级别的命令,从外部文件插入数据,指定自定义的标签库。
指令被包括在<%@和%>内。
指令的类型分为:∙包含指令:用于包含文件,和当用页面合并文件内容。
∙页面指令:用于定义JSP页面的具体属性,比如错误页面和缓冲池。
∙标签库:用于声明页面中使用到的自定义标签库。
111.什么是JSP的actions?JSP的actions是使用XML语法结构来控制Servlet引擎的行为。
JSP的actions是在当JSP 页面请求的时候才执行。
它们会动态插入一个文件中,再利用JavaBeans的组件,转发给用户到另一个页面,或者生成带Java插件的HTML页面。
以下是一些可以操作的actions:∙jsp:include-当JSP页面被请求的时候,包含了一个文件。
∙jsp:useBean-寻找或者实例化一个JavaBean。
∙jsp:setProperty-设置JavaBean的属性。
∙jsp:getProperty-得到JavaBean的属性。
∙jsp:forward-转发请求到新的页面。
∙jsp:plugin-生成特定浏览器的代码。
112.什么是Scriptlet?在Java Server Page(JSP)技术中,scriptlet是嵌入在JSP页面的其中一块Java代码。
scriptlet是标签内的任何东西。
在这些标签之间,用户可以添加任何有效的scriptlet。
113.什么是声明?声明类似于Java中的变量声明。
声明是为表达式或者scriptlets后续的使用而声明的变量。
添加一个声明,你必须在你的声明中使用序列。
114.什么是表达式?JSP表达式是把一个脚本语言表达式的值插入进来,转换成字符串,进入数据流之后再通过web服务器返回给客户端。
表达式的定义是在<%=和%>标签之间。
115.什么是隐式对象?他们是什么?JSP隐式对象是指JSP容器在每页中提供给开发人员的Java对象。