9、 请简要说明WebService的组成部分?以及各个部分使用的协议?
WebService框架核心是基于简单对象访问协议(Simple Object Access Protocol,SOAP)、Web 服务描述语言(Web Service Description Language,WSDL)以及通用描述、发现和集成(Universal Description Discovery and Integration,UDDI)。web服务中三种发送接受协议SOAP/HTTP GET/HTTP POST
在web服务中,有三种可供选择的发送和接受信息的协议:SOAP,HTTP GET,HTTP POST,但是SOAP支持的数据类型更为广泛
SOAP=RPC+HTTP+XMLSOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。
10、请用Java代码实现一个链表结构
10、 public class MyList { 11、 private class Node{ 12、 public Node pre; 13、 public Node next; 14、 public AnyType data; 15、 public Node(AnyType d, Nodep, Node n){} 16、 public Node(){} 17、 } 18、 private int theSize; 19、 private Node Header; 20、 private Node Tail; 21、 public MyList(){} 22、 public void add(AnyType item){} 23、 public boolean isEmpty(){} 24、 public int size(){} 25、 public AnyType get( int idx){} 26、 public void print(){} 27、 } 28、 /*Node类定义了双向链表中节点的结构,它是一个私有类,而其属性和构造函数都是公有的,这样,其父类可以直接访问其属性,而外部类根本不知道Node类的存在。Data是节点中的数据与,pre指向前一个Node节点,next指向后一个Node节点。其构造函数的实现如下,不解释: 29、 View Code*/ 30、 31、 public Node(AnyType d, Nodep, Node n){ 32、 this.data = d; 33、 this.pre = p; 34、 this.next = n; 35、 } 36、 37、 public Node(){ 38、 this.data = null; 39、 this.pre = null; 40、 this.next = null; 41、 } 42、 /*下面我们看一下链表的构造函数实现: 43、 View Code*/ 44、 public MyList(){ 45、 theSize = 0; 46、 Header = new Node(null,null,null); 47、 Tail = new Node(null,Header,null); 48、 Header.next = Tail; 49、 } 50、 /*我们构造了一个带有头、尾节点的双向链表,头节点的Next指向尾节点,为节点的pre指向头节点。链表长度起始为0。 51、 继续贴上链表类其它方法的实现,不解释了,应该比较清楚:*/ 52、 //View Code 53、 54、 public void add(AnyType item){ 55、 Node aNode = new Node(item,null,null); 56、 Tail.pre.next = aNode; 57、 aNode.pre = Tail.pre; 58、 aNode.next = Tail; 59、 Tail.pre = aNode; 60、 theSize++; 61、 } 62、 63、 public boolean isEmpty(){ 64、 return ( theSize == 0); 65、 } 66、 67、 public int size(){ 68、 return theSize; 69、 } 70、 71、 public AnyType get( int idx){ 72、 if(idx > theSize-1 || idx < 0) 73、 throw new IndexOutOfBoundsException(); 74、 Node current = new Node(null,Header,null); 75、 for(int i = 0; i 当某个对象被系统收集为无用信息的时候,finalize()将被自动调用,但是jvm不保证finalize()一定被调用,也就是说,finalize()的调用是不确定的... 12、Servlet中forward()与redirect()的区别是什么? redirect() 会丢失request的所有信息 它属于页面级的重定向,仅仅让你的浏览器重新访问一个新的url,作为浏览者,能很明显的看到浏览器url地址的变化,这和点击了一个普通的超链接的后果是一样的。 而 RequestDispatcher 的forward() 方法,是转发,需要request 和 response最为参数,就是将用户的请求,连同请求信息等内容,一起转发到服务器的另外一个servlet去处理,它不会丢失request信息。这一过程是服务器内部完成的,作为访问者,是感觉 不到了,或者说是透明的,因此访客浏览器的url 是不会发生变化的。 forward是转发,redirect是跳转。相同点都是为了两个组件之间的相互调用。forward的运行原理是服务器端内部的调用,所以它不需要通过浏览器来请求,所url地址不会改变,request的作用范围也没有中断过,它的作用域仍然有效。而redirect是重定向,是服务器发送消息告诉浏览器,让浏览器重新向新的地址请求,所以,url地址是会改变的,由于重新请求了,因而request也中断了,重新请求了,它的作用范围也失效了,放在request里面的信息也随之而清空了。 13、请列出你所了解的若干个不同类型的runtime exception NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常。 IllegalArgumentException - 传递非法参数异常。 ArithmeticException - 算术运算异常 ArrayStoreException - 向数组中存放与声明类型不兼容对象异常 IndexOutOfBoundsException - 下标越界异常 NegativeArraySizeException - 创建一个大小为负数的数组错误异常 NumberFormatException - 数字格式异常 SecurityException - 安全异常 UnsupportedOperationException - 不支持的操作异常 14、请说明数据库主键、外键的作用。以及独立主键的好处及坏处 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。 (4)更新主键记录时,同样有级联更新和拒绝执行的选择。 简而言之,SQL的主键和外键就是起约束作用。 15、简述什么是事物?事物存在哪些属性? 数据库事务是指作为单个逻辑工作单元执行的一系列操作。属性:ACID 1、一致性:将事务中所做的操作捆绑成一个原子单元,即对于事务所进行的数据修改等操作,要么全部执行,要么全部不执行。 2、原子性:事务在完成时,必须使所有的数据都保持一致状态,而且在相关数据中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构都应该是正确的。 3、隔离性:由并发事务所做的修改必须与任何其他事务所做的修改相隔离。事务查看数据时数据所处的状态,要么是被另一并发事务修改之前的状态,要么是被另一并发事务修改之后的状态,即事务不会查看由另一个并发事务正在修改的数据。这种隔离方式也叫可串行性。 4、持久性:事务完成之后,它对系统的影响是永久的,即使出现系统故障也是如此。 16、如何写出高性能的SQL语句? (1)整合简单,无关联数据库访问: 如果你有几个简单数据库查询语句,你可以把它们整合