notes6

1、Java初始化过程是这样的:

①首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;

②然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;

③其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法;

④最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法。

2、Java hashmap:

①HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”;

②HashMap 的实现不是同步的,意味着它不是线程安全的;

③HashMap中的key-value都是存储在Entry数组中的;

④HashMap通过链地址法解决哈希冲突。

3、java中可以有多个重载的main方法,但只有public static void main(String[] args){}是函数入口。

4、JSP内置对象:

request response session out page application exception pagecontext config。

5、视图更新的限制:

①初始View定义的Select语句里如果包含了GROUP BY,DISTINCT,LIMIT或HAVING等命令时;

②如果视图里数据来自多张字表时。

6、结构型模式:

结构型模式是描述如何将类对象结合在一起,形成一个更大的结构,结构模式描述两种不同的东西:类与类的实例。故可以分为类结构模式和对象结构模式。

在GoF设计模式中,结构型模式有:

①.适配器模式 Adapter

适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。两个成熟的类需要通信,但是接口不同,由于开闭原则,我们不能去修改这两个类的接口,所以就需要一个适配器来完成衔接过程。

②.桥接模式 Bridge

桥接模式将抽象部分与它的实现部分分离,是它们都可以独立地变化。它很好的支持了开闭原则和组合锯和复用原则。实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这些多角度分离出来让他们独立变化,减少他们之间的耦合。

③.组合模式 Composite

组合模式将对象组合成树形结构以表示部分-整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。

④.装饰模式 Decorator

装饰模式动态地给一个对象添加一些额外的职责,就增加功能来说,它比生成子类更灵活。也可以这样说,装饰模式把复杂类中的核心职责和装饰功能区分开了,这样既简化了复杂类,有去除了相关类中重复的装饰逻辑。装饰模式没有通过继承原有类来扩展功能,但却达到了一样的目的,而且比继承更加灵活,所以可以说装饰模式是继承关系的一种替代方案。

⑤.外观模式 Facade

外观模式为子系统中的一组接口提供了同意的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式中,客户对各个具体的子系统是不了解的,所以对这些子系统进行了封装,对外只提供了用户所明白的单一而简单的接口,用户直接使用这个接口就可以完成操作,而不用去理睬具体的过程,而且子系统的变化不会影响到用户,这样就做到了信息隐蔽。

⑥.享元模式 Flyweight

享元模式为运用共享技术有效的支持大量细粒度的对象。因为它可以通过共享大幅度地减少单个实例的数目,避免了大量非常相似类的开销。享元模式是一个类别的多个对象共享这个类别的一个对象,而不是各自再实例化各自的对象。这样就达到了节省内存的目的。

⑦.代理模式 Proxy

为其他对象提供一种代理,并由代理对象控制对原对象的引用,以间接控制对原对象的访问。

7、继承具有多态性,可以是本类的引用指向本类对象,也可以是本类的引用指向子类对象。(向上转型是无条件的。)

8、1.静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3。

9、构造方法每次都是构造出新的对象,不存在多个线程同时读写同一对象中的属性的问题,所以不需要同步 。一个子类可以覆盖掉父类的同步方法。

文章目錄
|