(1).继承:java
继承是一种联结类的层次模型,而且容许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类能够从现有的类中派生,这个过程称为类继承。新类继 承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类能够从它的基类那里继承方法和实例变量,而且类能够修改或增 加新的方法使之更适合特殊的须要。算法
(2).封装:编程
封装是把过程和数据包围起来,对数据的访问只能经过已定义的界面。面向对象计算始于这个基本概念,即现实世界能够被描绘成一系列彻底自治、封装的对象,这些对象经过一个受保护的接口访问其余对象。数组
(3).多态:浏览器
多态性是指容许不一样类的对象对同一消息做出响应。多态性包括参数化多态性和包含多态性。多态性语言具备灵活、抽象、行为共享、代码共享的优点,很好的解决了应用程序函数同名问题。安全
JAVA平台提供了两个类:String和StringBuffer,它们能够储存和操做字符串,即包含多个字符的字符数据这个String类提供了数值不可改变字符串而这个StringBuffer类提供的字符串进行修改当你知道字符数据要改变的时候你就可使用StringBuffer典型地,你可使用StringBuffers来动态构造字符数据服务器
ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储数据以便增长和插入元素,它们都容许直接按序号索引元素,可是插入元素要涉及数组元素移动等内存操做,因此索引数据快而插入数据慢,Vector因为使用了synchronized思路方法(线程安全) ,一般性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据须要进行前向或后向遍历,可是插入数据时只须要记录本项先后项便可,因此插入速度较快cookie
Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各类集合的搜索、排序、线程安全化等操做。session
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap容许空(null)键值(key),因为非线程安全,效率上可能高于HashtableJAVA中文站社区门户oC)| g| ax ,HashMap容许将Null做为一个entryde key 或者value,而Hashtable不容许 HashMap把Hashtable的contains思路方法去掉了,改为containsvalue和containsKey由于contains思路方法容易让人引发误解Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。多线程
最大的区别是,Hashtable的思路方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不须要本身为它的思路方法实现同步,而HashMap 就必须为的提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概同样,因此性能不会有很大的差别。
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示老是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,能够覆盖此方法提供垃圾收集时的其余资源回收,例如关闭文件等。
重载(Overload):
(1)方法重载是让类以统一的方式处理不一样类型数据的一种手段。多个同名函数同时存在,具备不一样的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
(2)Java的方法重载,就是在类中能够建立多个方法,它们具备相同的名字,但具备不一样的参数和不一样的定义。调用方法时经过传递给它们的不一样参数个数和参数类型来决定具体使用哪一个方法, 这就是多态性。
(3)重载的时候,方法名要同样,可是参数类型和个数不同,返回值类型能够相同也能够不相同。没法以返回型别做为重载函数的区分标准。
重写(Override):
(1) 父类与子类之间的多态性,对父类的函数进行从新定义。若是在子类中定义某方法与其父类有相同的名称和参数,咱们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不须要从新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做必定的修改,这就须要采用方法的重写。方法重写又称方法覆盖。
(2) 若子类中的方法与父类中的某一方法具备相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可以使用super关键字,该关键字引用了当前类的父类。
(3)子类函数的访问修饰权限不能少于父类的
重写方法的规则:
1.参数列表必须彻底与被重写的方法的相同,不然不能称其为重写而是重载.
2.返回的类型必须一直与被重写的方法的返回类型相同,不然不能称其为重写而是重载.
3.访问修饰符的限制必定要大于被重写方法的访问修饰符(public>protected>default>private)
4.重写方法必定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.例如,
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,能够抛出非检查异常.
而重载的规则:
1.必须具备不一样的参数列表;
2.能够有不一样的返回类型,只要参数列表不一样就能够了;
3.能够有不一样的访问修饰符;
4.能够抛出不一样的异常;
重写和重载的区别在于:
重写多态性起做用,对调用被重载过的方法能够大大减小代码的输入量,同一个方法名只要往里面传递不一样的参数就能够拥有不一样的功能或返回值.
用好重写和重载能够设计一个结构清晰而简洁的类,能够说重写和重载在编写代码过程当中的做用非同通常.
Overloaded的方法是能够改变返回值的类型。
error 表示恢复不是不可能但很困难的状况下的一种严重问题。好比说内存溢出。不可能期望程序能处理这样的状况。
exception 表示一种设计或实现问题。也就是说,它表示若是程序运行正常,从不会发生的状况。
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。可是,一个类却能够实现多个interface。
2.在abstract class 中能够有本身的数据成员,也能够有非abstarct的成员方法,而在interface中,只可以有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中通常不定义数据成员),全部的成员方法都是abstract的。
3.abstract class和interface所反映出的设计理念不一样。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。
4.实现抽象类和接口的类必须实现其中的全部方法。抽象类中能够有非抽象方法。接口中则不能有实现方法。
5.接口中定义的变量默认是public static final 型,且必须给其初值,因此实现类中不能从新定义,也不能改变其值。
6.抽象类中的变量默认是 friendly 型,其值能够在子类中从新定义,也能够从新赋值。
7.接口中的方法默认都是 public,abstract 类型的。
List,Set是继承自Collection,Map不是。
swtich中只能用byte short int char
可以定义成为一个中文的,由于java中以unicode编码,一个char占16个bit,因此放一个中文是没问题的。
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
实现Runnable接口比较好,由于实现类能够实现多个接口,而只能继承一个类。
同步的实现方面有两种,分别是synchronized,wait与notify
字节流,字符流。字节流继承与inputStream/outputStream,字符流继承于inputStreamReader/outputSteamWriter。
字节流在操做的时候自己是不会用到缓冲区(内存)的,是与文件自己直接操做的,而字符流在操做的时候是使用到缓冲区的
字节流在操做文件时,即便不关闭资源(close方法),文件也能输出,可是若是字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,而且可使用flush方法强制进行刷新缓冲区,这时才能在不close的状况下输出内容
在全部的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,包括图片也是按字节完成,而字符是只有在内存中才会造成的,因此使用字节的操做是最多的。
1,初始化阶段
调用init()方法
2,响应客户请求阶段
调用service()方法
3,终止阶段
调用destroy()方法
Http协议是无状态链接,因此是短链接.
boolean,int,byte,char,short,long,float,double,void,String 不是基本类型.
<jsp:forward page=”url”/>
<jsp:include file=”url”/>
前者将当前页面重定向到指定的URL的页面,然后者是在当前页面中包含指定的URL的页面.
request 请求对象 类型 javax.servlet.ServletRequest 做用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 做用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 做用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 做用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 做用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 做用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 做用域 Page
page 页面对象 类型 javax.lang.Object 做用域 Page
exception 例外对象 类型 javax.lang.Throwable 做用域 page
一、request 对象表明的是来自客户端的请求,例如咱们在FORM表单中填写的信息等,是最经常使用的对象
经常使用的方法有:getParameter、getParameterNames 和getParameterValues 经过调用这几个方法来获取请求对象中所包含的参数的值。
二、response 对象表明的是对客户端的响应,也就是说能够经过response 对象来组织发送到客户端的数据。可是因为组织方式比较底层,因此不建议普通读者使用,须要向客户端发送文字时直接使用
三、pageContext 对象直译时能够称做“页面上下文”对象,表明的是当前页面运行的一些属性
经常使用的方法有 :findAttribute、getAttribute、getAttributesScope 和getAttributeNamesInScope
通常状况下pageContext对象用到得也不是不少,只有在项目所面临的状况比较复杂的状况下,才会利用到页面属性来辅助处理。
四、session 对象表明服务器与客户端所创建的会话,当须要在不一样的JSP页面中保留客户信息的状况下使用,好比在线购物、客户轨迹跟踪等。“session” 对象创建在cookie的基础上,因此使用时应注意判断一下客户端是否打开了cookie。经常使用的方法包括getId、 getValue、 getValueNames和putValue等。
概要
HTTP是无状态(stateless)协议;
Web服务器对每个客户端请求都没有历史记忆;
Session用来保存客户端状态信息;
由Web服务器写入;
存于客户端;
客户端的每次访问都把上次的session记录传递给Web Server;
Web服务器读取客户端提交的session来获取客户端的状态信息
五、application 对象负责提供应用程序在服务器中运行时的一些全局信息,经常使用的方法有getMimeType和getRealPath等。
六、out 对象表明了向客户端发送数据的对象,与“response” 对象不一样,经过“out” 对象发送的内容将是浏览器须要显示的内容,是文本一级的,能够经过“out” 对象直接向客户端写一个由程序动态生成HTML文件。经常使用的方法除了pirnt和println以外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是由于“out” 对象内部包含了一个缓冲区,因此须要一些对缓冲区进行操做的方法
七、config 对象提供一些配置信息,经常使用的方法有getInitParameter和getInitParameterNames,以得到Servlet初始化时的参数。
八、page 对象表明了正在运行的由JSP文件产生的类对象,不建议通常读者使用。
九、exception 对象则表明了JSP文件运行时所产生的例外对象,此对象不能在通常JSP文件中直接使用,而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用