1、面向对象的特征有哪些方?
主要有以下四斚wQ?/span>
1Q?span>.抽象Q抽象就是忽略一个主题中与当前目标无关的那些斚wQ以便更充分地注意与当前目标有关的方面。抽象ƈ不打了解全部问题,而只是选择其中的一部分Q暂时不用部分细节。抽象包括两个方面,一是过E抽象,二是数据抽象?/span>
2Q?span>.l承Q承是一U联l类的层ơ模型,q且允许和鼓q的重用,它提供了一U明表q共性的Ҏ。对象的一个新cd以从现有的类中派生,q个q程UCؓcȝѝ新cȝ承了原始cȝҎ,新类UCؓ原始cȝzc(子类Q,而原始类UCؓ新类的基c(父类Q。派生类可以从它的基c那里承方法和实例变量Qƈ且类可以修改或增加新的方法之更适合Ҏ的需要?/span>
3Q?span>.装Q封装是把过E和数据包围hQ对数据的访问只能通过已定义的界面。面向对象计始于这个基本概念,即现实世界可以被描绘成一pd完全自治、封装的对象Q这些对象通过一个受保护的接口访问其他对象?/span>
4Q?span>. 多态性:多态性是指允怸同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语ah灉|、抽象、行为共享、代码共享的优势Q很好的解决了应用程序函数同名问题?/span>
2?span>final, finally, finalize的区别?
final 用于声明属性,Ҏ和类Q分别表C属性不可变Q方法不可覆盖,cM可ѝ?/span>
finally是异常处理语句结构的一部分Q表CL执行?/span>
finalize?span>Objectcȝ一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回Ӟ例如关闭文g{?/span>
3?span>sleep() ?span> wait() 有什么区?span>?
sleep是线E类Q?span>ThreadQ的ҎQ导致此U程暂停执行指定旉Q给执行Zl其他线E,但是监控状态依然保持,到时后会自动恢复。调?span>sleep不会释放对象锁?/span>
wait?span>ObjectcȝҎQ对此对象调?span>waitҎD本线E放弃对象锁Q进入等待此对象的等待锁定池Q只有针Ҏ对象发出notifyҎQ或notifyAllQ后本线E才q入对象锁定池准备获得对象锁q入q行状态?/span>
4?span>abstract class?span>interface有什么区?span>?
声明Ҏ的存在而不d现它的类被叫做抽象类Q?span>abstract classQ,它用于要创徏一个体现某些基本行为的c,qؓ该类声明ҎQ但不能在该cM实现该类的情c不能创?span>abstract cȝ实例。然而可以创Z个变量,其类型是一个抽象类Qƈ让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法?span>Abstract cȝ子类为它们父cM的所有抽象方法提供实玎ͼ否则它们也是抽象cMؓ。取而代之,在子cM实现该方法。知道其行ؓ的其它类可以在类中实现这些方法?/span>
接口Q?span>interfaceQ是抽象cȝ变体。在接口中,所有方法都是抽象的。多l承性可通过实现q样的接口而获得。接口中的所有方法都是抽象的Q没有一个有E序体。接口只可以定义static final成员变量。接口的实现与子cȝ|除了该实现类不能从接口定义中l承行ؓ。当cd现特D接口时Q它定义Q即程序体l予Q所有这U接口的Ҏ。然后,它可以在实现了该接口的类的Q何对象上调用接口的方法。由于有抽象c,它允怋用接口名作ؓ引用变量的类型。通常的动态联~将生效。引用可以{换到接口cd或从接口cd转换Q?span>instanceof q算W可以用来决定某对象的类是否实现了接口?/span>
5?span>j2ee常用的设计模式?说明工厂模式?/span>
Java中的23U设计模式:
FactoryQ工厂模式)Q?span> BuilderQ徏造模式)Q?span> Factory MethodQ工厂方法模式)Q?/span>
PrototypeQ原始模型模式)Q?span>SingletonQ单例模式)Q?span> FacadeQ门面模式)Q?/span>
AdapterQ适配器模式)Q?span> BridgeQ桥梁模式)Q?span> CompositeQ合成模式)Q?/span>
DecoratorQ装饰模式)Q?span> FlyweightQn元模式)Q?span> ProxyQ代理模式)Q?/span>
CommandQ命令模式)Q?span> InterpreterQ解释器模式Q, VisitorQ访问者模式)Q?/span>
IteratorQP代子模式Q, MediatorQ调停者模式)Q?span> MementoQ备忘录模式Q,
ObserverQ观察者模式)Q?span> StateQ状态模式)Q?span> StrategyQ策略模式)Q?/span>
Template MethodQ模板方法模式)Q?span> Chain Of ResponsibleityQ责任链模式Q?/span>
工厂模式Q工厂模式是一U经常被使用到的模式Q根据工厂模式实现的cd以根据提供的数据生成一l类中某一个类的实例,通常q一l类有一个公q抽象父类q且实现了相同的ҎQ但是这些方法针对不同的数据q行了不同的操作。首先需要定义一个基c,该类的子c通过不同的方法实C基类中的Ҏ。然后需要定义一个工厂类Q工厂类可以Ҏ条g生成不同的子cd例。当得到子类的实例后Q开发h员可以调用基cM的方法而不必考虑到底q回的是哪一个子cȝ实例?/span>
6?span>java中实现多态的机制是什么?
Ҏ的重?span>Overriding和重?span>Overloading?span>Java多态性的不同表现。重?span>Overriding是父cM子类之间多态性的一U表玎ͼ重蝲Overloading是一个类中多态性的一U表现?/span>
7、作用域public,private,protected,以及不写时的区别
区别如下Q?/span>
作用?span> 当前c?span> 同一package 子孙c?span> 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写旉认ؓfriendly
8、说一?span>Servlet的生命周?span>?
{?span>:servlet有良好的生存期的定义Q包括加载和实例化、初始化、处理请求以及服务结束。这个生存期?span>javax.servlet.Servlet接口?span>init,service?span>destroyҎ表达?span> Servlet被服务器实例化后Q容器运行其initҎQ请求到达时q行?span>serviceҎQ?span>serviceҎ自动zNq行与请求对应的doXXXҎQ?span>doGetQ?span>doPostQ等Q当服务器决定将实例销毁的时候调用其destroyҎ?/span>
?span>cgi的区别在?span>servlet处于服务器进E中Q它通过多线E方式运行其serviceҎQ一个实例可以服务于多个hQƈ且其实例一般不会销毁,?span>CGIҎ个请求都产生新的q程Q服务完成后销毁,所以效率上低于servlet?/span>