114、 jsp 有哪些动作 ? 作用分别是什么 ?
JSP共有以下 6 种基本动作 jsp:include :在页面被请求的时候引入一个文件。 jsp:useBean :寻找或者实例化一个 JavaBean 。 jsp:setProperty :设置 JavaBean 的属性。 jsp:getProperty :输出某个 JavaBean 的属性。 jsp:forward :把请求转到一个新的页面。 jsp:plugin :根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。
115、 Anonymous Inner Class ( 匿名内部类 ) 是否可以 extends( 继承 ) 其它类,是否可以 implements( 实现 )interface( 接口 )?
可以继承其他类或完成其他接口,在swing 编程中常用此方式。
116、应用服务器与 WEB SERVER 的区别?
应用服务器:Weblogic 、 Tomcat 、 Jboss
WEB SERVER: IIS 、 Apache
117、 BS 与 CS 的联系与区别。
C/S是 Client/Server 的缩写。服务器通常采用高性能的 PC 、工作站或小型机,并采用大型数据库系统,如 Oracle 、 Sybase 、 Informix 或 SQL Server 。客户端需要安装专用的客户端软件。
B/S是 Brower/Server 的缩写,客户机上只要安装一个浏览器( Browser ),如 Netscape Navigator 或 Internet Explorer ,服务器安装 Oracle 、 Sybase 、 Informix 或 SQL Server 等数据库。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过W eb Server 同数据库进行数据交互。
C/S 与 B/S 区别:
1.硬件环境不同:
C/S 一般建立在专用的网络上 , 小范围里的网络环境 , 局域网之间再通过专门服务器提供连接和数据交换服务 .
B/S 建立在广域网之上的 , 不必是专门的网络硬件环境 , 例与电话上网 , 租用设备 . 信息自己管理 . 有比 C/S 更强的适应范围 , 一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S 一般面向相对固定的用户群 , 对信息安全的控制能力很强 . 一般高度机密的信息系统采用 C/S 结构适宜 . 可以通过 B/S 发布部分可公开信息 .
B/S 建立在广域网之上 , 对安全的控制能力相对弱 , 可能面向不可知的用户。
3.对程序架构不同
C/S 程序可以更加注重流程 , 可以对权限多层次校验 , 对系统运行速度可以较少考虑 .
B/S 对安全以及访问速度的多重的考虑 , 建立在需要更加优化的基础之上 . 比 C/S 有更高的要求 B/S 结构的程序架构是发展的趋势 , 从 MS 的 .Net 系列的 BizTalk 2000 Exchange 2000 等 , 全面支持网络的构件搭建的系统 . SUN 和 IBM 推的 JavaBean 构件技术等 , 使 B/S 更加成熟 .
4.软件重用不同
C/S 程序可以不可避免的整体性考虑 , 构件的重用性不如在 B/S 要求下的构件的重用性好 .
B/S 对的多重结构 , 要求构件相对独立的功能 . 能够相对较好的重用 . 就入买来的餐桌可以再利用 , 而不是做在墙上的石头桌子
5.系统维护不同
C/S 程序由于整体性 , 必须整体考察 , 处理出现的问题以及系统升级 . 升级难 . 可能是再做一个全新的系统
B/S 构件组成 , 方面构件个别的更换 , 实现系统的无缝升级 . 系统维护开销减到最小 . 用户从网上自己下载安装就可以实现升级 .
6.处理问题不同
C/S 程序可以处理用户面固定 , 并且在相同区域 , 安全要求高需求 , 与操作系统相关 . 应该都是相同的系统
B/S 建立在广域网上 , 面向不同的用户群 , 分散地域 , 这是 C/S 无法作到的 . 与操作系统平台关系最小 .
7.用户接口不同
C/S 多是建立的 Window 平台上 , 表现方法有限 , 对程序员普遍要求较高
B/S 建立在浏览器上 , 有更加丰富和生动的表现方式与用户交流 . 并且大部分难度减低 , 减低开发成本 .
8.信息流不同
C/S 程序一般是典型的中央集权的机械式处理 , 交互性相对低
B/S 信息流向可变化 , B-B B-C B-G 等信息、流向的变化 , 更像交易中心。
118、 LINUX 下线程, GDI 类的解释。
LINUX实现的就是基于核心轻量级进程的 " 一对一 " 线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。
GDI类为图像设备编程接口类库。
119、 STRUTS 的应用 ( 如 STRUTS 架构 )
Struts是采用 Java Servlet/JavaServer Pages 技术,开发 Web 应用程序的开放源码的 framework 。 采用 Struts 能开发出基于 MVC(Model-View-Controller) 设计模式的应用构架。 Struts 有如下的主要功能: 一 . 包含一个 controller servlet ,能将用户的请求发送到相应的 Action 对象。 二 .JSP 自由 tag 库,并且在 controller servlet 中提供关联支持,帮助开发员创建交互式表单应用。 三 . 提供了一系列实用对象: XML 处理、通过 Java reflection APIs 自动处理 JavaBeans 属性、国际化的提示和消息。
120、 Jdo 是什么 ?
JDO是 Java 对象持久化的新的规范,为 java data object 的简称 , 也是一个用于存取某种数据仓库中的对象的标准化 API 。 JDO 提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如 JDBC API 的使用)。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外, JDO 很灵活,因为它可以在任何数据底层上运行。 JDBC 只是面向关系数据库( RDBMS ) JDO 更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、 XML 以及对象数据库( ODBMS )等等,使得应用可移植性更强。
121、内部类可以引用他包含类的成员吗?有没有什么限制?
一个内部类对象可以访问创建它的外部类对象的内容
122、 WEB SERVICE 名词解释。 JSWDL 开发包的介绍。 JAXP 、 JAXM 的解释。 SOAP 、 UDDI,WSDL 解释。
Web ServiceWeb Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得 Web Service 能与其他兼容的组件进行互操作。
JAXP(Java API for XML Parsing) 定义了在 Java 中使用 DOM, SAX, XSLT 的通用的接口。这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。
JAXM(Java API for XML Messaging) 是为 SOAP 通信提供访问方法和传输机制的 API 。
WSDL是一种 XML 格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。相关的具体端点即组合成为抽象端点(服务)。
SOAP即简单对象访问协议 (Simple Object Access Protocol) ,它是用于交换 XML 编码信息的轻量级协议。
UDDI 的目的是为电子商务建立标准; UDDI 是一套基于 Web 的、分布式的、为 Web Service 提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的 Web Service 注册,以使别的企业能够发现的访问协议的实现标准。
JAVA代码查错
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
大侠们,这有何错误?
答案: 错。 abstract method 必须以分号结尾,且不带花括号。
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗?
答案: 错。局部变量前不能放置任何访问修饰符 (private , public ,和 protected) 。 final 可以用来修饰局部变量
(final如同 abstract 和 strictfp ,都是非访问修饰符, strictfp 只能修饰 class 和 method 而非 variable) 。
3.
abstract class Something {
private abstract String doSomething ();
}
这好像没什么错吧?
答案: 错。 abstract 的 methods 不能以 private 修饰。 abstract 的 methods 就是让子类 implement( 实现 ) 具体细节的,怎么可以用 private 把 abstract
method封锁起来呢 ? ( 同理, abstract method 前不能加 final) 。
4.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
这个比较明显。
答案: 错。 int x 被修饰成 final ,意味着 x 不能在 addOne method 中被修改。
5.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
和上面的很相似,都是关于final 的问题,这有错吗 ?
答案: 正确。在 addOne method 中,参数 o 被修饰成 final 。如果在 addOne method 里我们修改了 o 的 reference
(比如 : o = new Other();) ,那么如同上例这题也是错的。但这里修改的是 o 的 member vairable
(成员变量 ) ,而 o 的 reference 并没有改变。
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
有什么错呢? 看不出来啊。
答案: 正确。输出的是 "i = 0" 。 int i 属於 instant variable ( 实例变量,或叫成员变量 ) 。 instant variable 有 default value 。 int 的 default value 是 0 。
7.
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
和上面一题只有一个地方不同,就是多了一个final 。这难道就错了吗 ?
答案: 错。 final int i 是个 final 的 instant variable ( 实例变量,或叫成员变量 ) 。 final 的 instant variable 没有 default value ,必须在 constructor ( 构造器 ) 结束之前被赋予一个明确的值。可以修改为 "final int i = 0;" 。
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
看上去很完美。
答案: 错。看上去在 main 里 call doSomething 没有什么问题,毕竟两个 methods 都在同一个 class 里。但仔细看, main 是 static 的。 static method 不能直接 call non-static methods 。可改成 "System.out.println("s.doSomething() returns " + s.doSomething());" 。同理, static method 不能访问 non-static instant variable 。
9.
此处,Something 类的文件名叫 OtherThing.java
class Something {
private static void main(String[] something_to_do) {
System.out.println("Do something ...");
}
}
这个好像很明显。
答案: 正确。从来没有人说过 Java 的 Class 名字必须和其文件名相同。但 public class 的名字必须和文件名相同。
10.
interface A{
int x = 0;
}
class B{
int x =1;
}
class C extends B implements A {
public void pX(){
System.out.println(x);
}
public static void main(String[] args) {
new C().pX();
}
}
答案:错误。在编译时会发生错误( 错误描述不同的 JVM 有不同的信息,意思就是未明确的 x 调用,两个 x 都匹配(就象在同时 import java.util 和 java.sql 两个包时直接声明 Date 一样)。对于父类的变量 , 可以用 super.x 来明确,而接口的属性默认隐含为 public static final. 所以可以通过 A.x 来明确。
11.
interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable {
Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
this.name = name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
这个错误不容易发现。
答案: 错。 "interface Rollable extends Playable, Bounceable" 没有问题。 interface 可继承多个 interfaces ,所以这里没错。问题出在 interface Rollable 里的 "Ball ball = new Ball("PingPang");" 。任何在 interface 里声明的 interface variable ( 接口变量,也可称成员变量 ) ,默认为 public static final 。也就是说 "Ball ball = new Ball("PingPang");" 实际上是 "public static final Ball ball = new Ball("PingPang");" 。在 Ball 类的 Play() 方法中, "ball = new Ball("Football");" 改变了 ball 的 reference ,而这里的 ball 来自 Rollable interface , Rollable interface 里的 ball 是 public static final 的, final 的 object 是不能被改变 reference 的。因此编译器将在 "ball = new Ball("Football");" 这里显示有错。
JAVA编程题
1.现在输入 n 个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提