1.面向对象编程和面向接口编程的区别
- 面向接口编程:
面向对象编程中不同的对象协作完成系统的各个功能,对象内部的实现由各个类自己实现。但是随着系统愈发复杂,对象内部功能的实现已经不那么重要了(类自己内部实现),反之对象间的协作能力更为重要,这就是面向接口编程的思想
面向接口编程就是先将业务的逻辑线先提取出来,作为接口,而将具体的代码实现作为实现类来完成。当客户需求变化时,只用更改接口下的实现类就可以 - 面向接口编程优点:
降低耦合性,能极大限度解耦
易于程序扩展
易于程序维护
抽象类和接口的选择
在于使用动机,使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性与协作关系 - 面向接口编程
经典的面向接口编程例子-JDBC
SUN公司提供了JDBC接口的规范,而不同的数据库厂商开发不同的数据库驱动
可以理解为只有实现者和调用者都遵循"面向接口编程"这个准则,制定者的协调目的才能达到。
2.说说java 解析xml有哪些技术?
- DOM解析
是html和xml的应用程序接口(API),DOM文档对象模型,采用树形结构来完成对文档的解析,在解析时,会将整个文档加载到内存中然后形成"节点数",当文档内容过多或者需要解析的文档过多时,会造成服务器内存紧张 - SAX解析
流模型中的"推"模型分析方式。通过事件驱动,每发现一个节点就引发一个事件,事件推给事件处理器,通过回调方法完成解析工作,解析XML文档的逻辑需要应用程序完成 - JDOM解析
Java特定的文档对象模型。自身不包含解析器,使用SAX - DOM4J解析
简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP,提供了一套完整的针对DOM和SAX的解析技术,目前使用较为广泛 - STAX解析
流模型中的拉模型分析方式。提供基于指针和基于迭代器两种方式的支持,JDK1.6新特性
3.抽象类与接口的区别?
4.表单同步提交和异步提交的区别
同步:提交请求->等待服务器处理->处理完毕返回,在此期间浏览器不能做别的事情
异步:请求通过事件触发->服务器处理(服务器任然可以做别的事情)->处理完毕
区别:
同步提交的时候客户端浏览器不能做别的事情,只能等待服务器处理;而异步提交的时候客户端浏览器任然可以做别的
可以理解为吃饭,同步就是我叫你去吃饭,你没听见,我继续叫你,知道你回答我了,一起去吃饭。
异步就是我给你发消息说我去吃饭了,然后我就先走了,你后面自己来