–Java部分
*private、默认、protected、public作用范围
1)private,同类
2)默认,同类、同包
3)protected,同类,同包,子类
4)public,所有
*抽象类与接口的异同
同:具有抽象方法
异:
1)抽象类可以有构造器,非抽象方法,非公有属性,仅可以单继承抽象类
2)接口仅有公有抽象方法或者公有静态常量,可以同时实现多个接口
通俗说法:接口比抽象类更抽象(接口不能有属性,只能有方法,但抽象类可以,抽象类还可以有具体实现的方法,接口则只能有抽象方法),对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。
个人使用经验:一般在控制层使用抽象类,提取公共初始化方法、框架定制化工具方法等
一般会在业务层使用接口
*List、Set、Collections区别
1)List,有序可重复
2)Set, 无序不可重复
3)Collections,集合工具类
*Collection和Collections的区别
java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。Collections中常用的方法有Collections.sort(),Collectios.max(),Collections.binarySearch(),Collections.replaceAll(),Collections.reverse(),Collections.fill()等等
–JSP,JS部分
–框架部分
–数据库部分
*inner join、left join、 right join区别
1)inner join,两表字段都有值才会显示一条记录
2)left join,两表字段值相同,以及左表字段有值,右表字段值为null,如果用where的话,由表字段为null,查询的时候会报错。
3)right join,与上相反
*数据库优化
1 查询语句的优化,这个主要是根据语句和数据库索引的情况,结合查询计划的分析结果,对性能较低的查询语句进行重写,在执行查询前执行表分析语句也可以算这里;再比如用使用存储过程;
2 数据结构优化,这个包括根据实际的应用中业务逻辑,对数据库的结构进行重新设计,或者创建相关索引里提高查询效率;
3 数据库设置优化,这方面主要是调整数据库和数据结构的相关参数提高应用访问系统的效率;
4 存储结构优化,在数据量较大的情况下,可以考虑通过数据库的存储结构进行优化,比如对数据进行partition,将数据存储在磁盘阵列服务器上等。
对多个表进行连接查询时应遵循的优化原则:
(1) 用于连接的子句的列应被索引、在Where子句中应尽量利用索引,而不是避开索引。
(2) 连接操作应从返回较少行上驱动。
(3) 如果所连接的表A和B,A表长度远远大于B表,建议从较大的A表上驱动。
(4) 如果Where子句中含有选择性条件,Where No=20,将最具有选择性部分放在表达式最后。
(5) 如果只有一个表有索引,另一表无索引,无索引的表通常作为驱动表。如A表的No列以被索引,而B表的No 列没被索引,则应当B表作为驱动表,A表作为被驱动表。
(6) 若用于连接的列和Where子句中其他选择条件列均有索引,则按各个索引对查询的有效性和选择性分别定出级别,结合表中具体数据构成情况,从中选出优化路径,一般需要考虑:子句中哪些列可以使用索引、哪些索引具有唯一性及被查询表行数目等。
*过程主要是针对数据处理。业务性的。视图主要是取得数据。一般来说,视图只是select,没有update,delete功能。过程啥都能干。
-
顶
- 0
-
踩