一、接口和抽象类的区别是什么?
抽象类:
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板
接口:
接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。
二、什么是值传递和引用传递?
值传递:是对于基本数据类型的变量而言的。传递的是该变量的一个副本,改变副本并不影响原变量
引用传递:是对于对象型变量而言的。传递的是该变量地址的一个副本,并不是该对象本身,指向的值是同一个值,所以根据副本地址改变的值会影响原来的值。
三、线程有几种,你喜欢哪种,为什么?
(1)继承Thread类
(2)实现runnable接口
(3)应用程序可以使用executor框架创建线程池
我喜欢实现runnable接口,因为java不支持多继承,实现接口就避免了在继承thread类后还需要继承别的类的情况。
四、什么是数据库的连接池?
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
五、Servlet是什么?
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。在开发中,Servlet一般充当的就是控制器的角色。
六、简述一下servlet的生命周期;
1.创建servlet实例
2.当servlet实例化后,将调用这个对象的init()方法进行初始化
3.再调用对象的service()方法来处理请求,并返回处理结果,在调用service之前,
需保证init初始化已被成功执行
4.当需要释放servlet的时候,调用对象的destroy()方法来结束,并释放资源
七、doPost()和doGet()方法的区别;
1.doGet
GET调用用于获取服务器信息,并将其做为响应返回给客户端。当经由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用GET调用。GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来一些问题,比如用户登录,表单里的用户名和密码需要发送到服务器端,若使用Get调用,就会在浏览器的URL中显示用户名和密码。
2.doPost
它用于客户端把数据传送到服务器端,也会有副作用。但好处是可以隐藏传送给服务器的任何数据。Post适合发送大量的数据。
八、HTTP响应的结构是什么?
1.状态码(StatusCode):描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK。
2.HTTP头部(HTTPHeader):它们包含了更多关于响应的信息。比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输实体内容的编码格式。如何在Serlet中检索HTTP的头部看这里。
3.主体(Body):它包含了响应的内容。它可以包含HTML代码,图片,等等。主体是由传输在HTTP消息中紧跟在头部后面的数据字节组成的。
九、Cookie是什么?说说cookie和session的区别;
Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。
区别:
1、Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。
2、Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session是没有大小限制和服务器的内存大小有关。
3、Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。
4、Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。
十、Jsp的隐含对象是什么?有哪几个?
1.application,它是一个实现了ServletContext接口的类的实例
2.config,它是一个实现了ServletConfig接口的类的实例
3.out,它是一个继承了JspWriter抽象类的类的实例
4.pageContex,它是一个继承了PageContext抽象类的类的实例
5.page,类似this指针,是object类的对象,开发中不常用
6.response,它是一个实现了ServletResponse接口的类(其实就是>HttpServletResponse)的实例
7.session,它是一个实现了HttpSession接口的类的实例
8.exception,它用来处理页面出现的异常,是java.lang.Throwable类的实例
9.request,它是一个实现了ServletRequest接口的类(其实就是>HttpServletRequest)的实例