JSP企业面试题整理(1)
图示三层架构,并说明其特点,如何实现,每层实现什么功能?(企业笔试题)
在两层应用中,应用程序直接同数据库进行对话。三层结构在用户接口代码和数据库中间加入了一个附加的逻辑层,通常这个层叫做“商务逻辑层”。在“商务逻辑层”,如果第一层和第二层在不同的计算机上,通常该层利用的技术是EJB(Enterprise JavaBean)技术、CORBA(Common Object Request Broker Architecture)技术和DCOM技术(Distributed Component Object Model,分布式组件对象模型)。在Java企业应用领域中,表示逻辑层通常可以是HTML、Applet和JSP,商务逻辑层一般利用EJB来实现
Java包含哪三个版本,每个版本有什么功能,各个版本的应用领域?
SUN以J2EE为核心推出SUN-ONE(SUN Open Network Environment)战略,该战略包括三个部分:J2SE(Java 2 Standard Edition,Java 2标准版)、J2ME(Java 2 Micro Edition,Java 2微型版)和J2EE。
J2SE主要:用于创建典型的桌面与工作站应用的Java平台。从配置上来说,只要安装JDK(Java Development Kit),就建立了一个J2SE开发和运行平台。
J2ME主要用于创建嵌入式应用程序(如PDA、仪表),J2ME开发平台需要J2SE平台的支持。开发领域包括:高端的信息家电,比如:电视机顶盒,网络电视和网络可视电话等,低端的信息家电,比如手机,寻呼机和PDA等。
J2EE的任务是提供一个平台独立的、便携式、多用户、安全以及标准的企业级平台,服务器端部署用Java技术来完成。J2EE主要用于创建可扩展的企业应用,包括13种核心技术规范
1-3 名词解释:EJB JNDI RMI。(企业笔试题)
EJB(Enterprise Java Bean,企业级JavaBean)J2EE体系的最核心技术是EJB,提供了一个框架来开发分布式商务逻辑,显著地简化了具有可伸缩性和高度复杂的企业级应用的开发
JNDI(Java Naming and Directory Interface,Java命名和目录接口)JNDI用于名字和目录服务,提供了一致的接口来存取和操作企业级的资源,如DNS(Domain Name Service)和本地文件系统等
RMI(Remote Method Invocation,远程方法调用)RMI是在远程对象上调用一些方法,使用了连续的方式在客户端和服务器端传递数据,RMI是EJB技术基础
JSP企业面试题整理(2)
2-1 简述Java语言的核心机制。
Java语言包含三种核心机制:Java 虚拟机、垃圾收集机制和代码安全检测。
1、Java 虚拟机(Java Virtual Machine,JVM)
在一台计算机上由软件或硬件模拟的计算机。Java虚拟机读取并处理经编译过的平台无关的字节码class文件。
2、垃圾收集机制(Garbage collection)
在C/C++ 等语言中,由程序员负责回收无用内存。Java语言解除了程序员回收无用内存空间的责任。它提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。
3、代码安全性检测(Code Security)
Java执行代码的时候,由JVM对运行的代码进行安全性检测,当进行一些非法操作的时候,比如修改一些系统设置的时候,JVM会发出警告。
2-2 比较基本数据类型和引用数据类型的区别。
Java 语言共有八种基本数据类型:四种整数类型(byte、short、int、long),两种浮点数类型(float、double),一种字符类型(char),一种布尔类型(boolean)。
Java语言中除8种基本数据类型以外的数据类型称为引用类型,也叫做复合数据类型。在程序中声明的引用类型变量只是为该对象起的一个名字,或者说是对该对象的引用,变量的值是对象在内存空间中的存储地址而不是对象本身,这就是称之为引用类型的原因
2-4 构造函数有什么作用?简述重载构造函数的好处。
构造函数也叫构造方法,是Java类中的一种特殊方法,其功能是创建其所属类型的一个新的对象。声明构造方法的语法规则如下:
< modifiers> <class_name>([< argu_list>]) {
[< statements>]
}
从中可以看到,构造方法与普通方法在声明上的区别是,构造方法没有返回值类型、构造方法必须取和所属类相同的名字。
在定义Java类时可以根据需要定义一个或多个构造方法,通常在构造方法中进行一些初始化工作。
2-5 简述super、static和final的功能和作用。
如果子类中发生了方法重写,那么子类对象能调用父类中重写前的方法,Java语言允许在子类中使用关键字super来引用父类的方法。
在Java类中声明属性和方法时,可使用关键字static做为修饰符。static标记的变量或方法由整个类共享,如访问控制权限允许,可不必创建该类对象而直接用类名加‘.’调用。
在Java中声明类、属性和方法时,可使用关键字final来修饰。final所标记的成分具有“终态”的特征,其具体规定如下:
l final标记的类不能被继承。
l final标记的方法不能被子类重写。
l final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。
2-6 集合元素:集合、散列表和枚举的特点和作用。
常用的集合元素有:向量(Vector)、枚举(Enumeration)、散列表(Hashtable)和属性(Properties)等
向量(Vector)不要求每个元素的类型相同,向量中可以混合多种数据类型。向量可以在增加元素时动态增大。
向量提供了集合内容的顺序访问,散列表可以对集合内容进行随机访问,散列表提供的主要方法及其说明为。
l 用put(Object key,Object value)加进关键字/数值对
l 用get(Object key)取得一个关键字的值
枚举也可以存放许多元素。一般用来存储其他集合的返回值。
2-7 关键字throw和throws的区别?(企业笔试题)
可以利用throw关键字自己抛出异常。
Throws一般在定义函数的时候使用,表明函数被调用的时候要抛出异常。
2-8 Java实现线程有几种方式,各有什么优点?
创建线程有两种方式:使用Runnable接口和继承Thread类。使用Runnable接口的实现类来提供线程体,这是创建线程的基本方式。还可以采用直接继承Thread类、重写其中的run()方法并以之作为线程体的方式创建线程,
两种创建线程方式的有两方面的区别。
l 使用Runnable接口创建线程时可以将CPU,代码和数据分开,形成清晰的模型。线程体run()方法所在的类还可以从其他类继承一些有用的属性或方法,并有利于保持程序风格的一致性。
l 直接继承Thread类创建线程时,Thread子类无法再从其他类继承。但这种情况编写简单,run()方法的当前对象就是线程对象,可直接操纵。