java的三大特性:
1.封装:所谓封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
2.继承:指子类获得父类的属性和方法
3.多态:只一个方法只有一个名称,但可以有许多种形态。也就是程序中可以定义多个同名的方法用“一个接口,多个方法”来描述,可以通过方法的参数和类型引用
java的五大原则:
1.单一职责原则SRP
2.开放封闭原则OCP
3.替换原则LSP
4.依赖原则DIP
5.接口分离原则ISP
排序都有哪几种方法:
插入排序(直接插入排序,希尔排序),
交换排序(冒泡排序,快速排序),
选择排序(直接选择排序,堆排序),
归并排序,
分配排序(箱排序,基数排序)
String,StringBuffer,StringBuilder的区别:
1.String:长度不可变
2.StringBuffer:长度可变,经常修改字符串中的内容那么使用StringBuffer。如果最后需要String,那么调用toString()方法;线程安全的
3.StringBuilder:支持所有相同的操作,不执行同步,速度快;线程不安全的
Overload和Override的区别。Overload的方法是否可以改变返回值类型:
方法的重写(父子类)Override和重载(同一个类)Overload时Java多态性的不同表现。
Overload的方法是可以改变返回值类型的。
final,finally的区别:
final:修饰符;如果一个类被声明为final,代表类不能被继承;变量和方法声明为final,可以保证它们在使用中不被改变;被final声明的变量必须在声明时给定初值,不可修改。
finally:在异常处理时提供finally块来执行任何清除操作;如果抛出异常那么相匹配的catch子句就会执行,然后控制会进入finally块(如果有的话)
常见的几个异常:
java.long.NullPointerException(空指针异常)
java.long.ClassNotFoundExceotion(指定的类不存在)
java.long.ArrayIndexOutOfBuundsException(数组下标越界异常)
IOException(输入输出异常)
抽象类和接口的区别:
1.接口是抽象类的变体,里面所有方法都是抽象方法。而抽象类是声明方法的存在而不去实现他的类
2.接口可以多继承,抽象类不行
3.接口定义方法,不能实现,而抽象类可以实现部分方法
4.接口中基本数据类型为static的 而抽象类不是的
collection树形图:
触发器:
1.是对表进行插入,更新或删除操作时自动执行的存储过程
2.触发器通常用于强制业务规则
3.触发器可以确保数据的完整性和一致性
事务:
1.用户定义的一个操作序列,是一个不可分割的工作单位;如果某一事务成功,则该事务中进行的所有数据更改均会提交,成为数据库中永久保存的部分
2.如果事务遇到错误且必须取消或回滚,则所有数据更改皆被清除
锁:
在多用户环境中对数据访问的限制封锁;加锁后事务就对该对象有了一定的控制,在事务释放它的锁之前,其他事务不能更新此数据对象
索引:
是一个数据库对象,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单,然后根据指定的排序次序排列这些指针
优点:提高查询执行的速度。 强制实施数据的唯一性。 提高表之间联接的速度。
缺点:存储索引要占用磁盘空间。数据修改需要更长的时间,因为索引也要更新。
视图:
1.是一种虚拟表
2.本质上讲就是保存在数据库中的select查询
3.视图并不是数据库中存储的数据值的集合
4.对最终用户的好处 ——限制数据检索更容易——维护应用程序更方便
5.减少网络流通量
6.用来执行管理任务或应用复杂的业务规则
数据库连接池的工作机制是什么:
—J2EE— 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
Servlet的生命周期:
将Servlet类加载到TomCat容器中
Servlet通过调用init()方法进行初始化
Servlet通过调用service()方法处理客户端的请求
Servlet通过调用destroy()方法终止(结束)
GC是什么,为什么要有GC:
GC是垃圾收集的意思,Java提供的GC功能可以自动检测对象是否超过作用域从而达到自动回收内存的母的,Java语言没有提供释放已分配内存的显示操作方法
JSP有哪些内置对象,作用分别是什么:
request:用户端请求
response:服务端回应
session:与请求有关的会话期
pageContext:管理网页属性
appLication:servlet正在执行的内容
out:用来传送回应的输出
config:servlet的构架部件
page:jsp网页本身
exception:针对网页错误,未捕捉的例外
JSP的内置对象及方法:
request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法,response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等).
out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。 pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息 applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息 config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。 page表示从该页面产生的一个servlet实例。
XML有那些解析技术,区别是什么:
DOM:处理大型文件性能下降,会占用较多内存,解析前要把整个文档装入内存
SAX:事件驱动型解析方式,不需要一次装载,只在触发事件时进行解析
对MVC的理解:
MVC设计模式(应用观察式的框架模式)
M:Model,模型,操作数据的业务处理层,并独立与表现层
V:View,视图,通过客户端数据类型显示数据,并返回模型层的执行结果
C:Controter,控制器,视图和模型之间的桥梁,控制数据的流向,接受视图发出的事件并重绘视图
- 优点:
1.视图控制模型分离,提高代码复用
2.提高开发效率
3.便于后期维护,降低维护成本
4.方便多开发人员间的分工 - 缺点:
1.清晰的构架以代码的复杂性为代价,对小项目来说可能反而降低开发效率
2.运行效率相对较低