一、 接口和抽象类的区别是什么?
构造器:接口不存在构造器,抽象类存有构造器
方法体:接口可以定义抽象方法不能存有方法体,抽象类既可以定义抽象方法也可以存有方法体。
静态方法:接口不可以定义静态方法,抽象类可以定义静态方法。
继承:接口可以多继承,抽象类只能单继承
二、 什么是值传递和引用传递?
值传递参数会被创造出一个副本,原本的值是不会改变的。
引用传递开辟副本后占据空间还是原来的同一个地址,对对象的相关属性的修改那么原对象的相关属性也会发生改变
三、 线程有几种,你喜欢哪种,为什么?
多线程和单线程
当有工作线程需要执行很长时间时,此时用多线程依然可以保持键盘和鼠标的事件。
如果需要执行许多任务时,此时利用多线程采用分治策略将任务进行分摊,此时会提高计算效率。
当执行任务时此时有线程出现阻塞状态,此时利用多线程则能够充分利用已经被空闲无所事事的线程。
如果客户端出现并发同时来多个请求,此时我们利用多线程则能够完全处理这样的情况。
四、 什么是数据库的连接池?
官方: 数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
个人理解: 创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。
五、 Servlet是什么?
JSP:Java Server Page(java服务器页面),是一个动态的网页技术标准简单的去理解 JSP就是 HTML+Java 代码
在 Web容器中有浏览器访问地址的特殊 Java 类。
在开发中,Servlet一般充当的就是控制器的角色。
六、 简述一下servlet的生命周期;
Servlet的生命周期:第一次请求的时候,Servlet实例被创建,立即调用init方法进行初始化。实例通过service方法提供服务。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service方法,service方法再根据请求方式分别调用doXXX()(doGet、doPost)方法服务器关闭或者移除服务时,调用destroy方法进行销毁。
(1)加载和实例化
当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。
(2) 初始化
实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。
(3)服务
初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。
(4)销毁
当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。
七、doPost()和doGet()方法的区别。
(1)通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。
(2)通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。
(3)通过Get方式提交的数据安全性不高,而Post方式的更加安全。
八、 HTTP响应的结构是什么?
http响应有三部分: ①响应码——回应客户端此次响应是否成功,主要的状态码有404(找不到请求的资源),500(服务器内部错误),200(成功响应) ②消息头:服务器与客户端通信的暗码,告诉客户端该怎么执行某些操作。比如,contentType,charSet,等 ③响应正文:传递服务器响应给客户端要显示的内容,可以是下载文件或者显示界面。
九、 Cookie是什么?说说cookie和session的区别;
1、Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。
2、Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。
3、Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。
4、Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。
十、 Jsp的隐含对象是什么?有哪几个?
2.Request :HttpServletRequest的一个对象
3.session :HttpServlet 的一个对象。代表浏览器和服务器的一次会话,是HttpSession的一个对象。
4.application :ServletContext 的一个对象。代表当前WEB应用。