中天笔试题

一、接口和抽象类的区别是什么?

  • 相同点:
    都不能被实例化,位于继承树的顶端,是用于被其他类继承或者实现的;
    都可以包含抽象方法,子类都必须要实现抽象方法;
    在实际的开发中,都是接口先行,一般都是先定义接口,然后开发人员实现接口,完成具体方法的实现。
    抽象类是个半成品,可以作为一个模板去使用。

  • 不同点:
    抽象类中可以定义普通方法,但是接口中都是抽象方法和静态变量;
    在抽象类是可以定义静态方法的,接口中不能定义静态方法的;
    在抽象中可以定义构造器的,但是在接口中是不存在构造器这个概念的;
    一个类最多只能有一个直接的父类或者抽象类,但是可以有多个接口的实现。

二、什么是值传递和引用传递?

  • 值传递:
    方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。
  • 引用传递:
    也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的是原始值的内存地址;在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象。

三、线程有几种,你喜欢哪种,为什么?

  • 1.继承Thread类
  • 2.实现Runnable接口
  • 3.应用程序可以使用Executor框架来创建线程池
  • 实现Runnable接口这种方式更受欢迎,因为这不需要继承Thread类。在应用设计中已经继承了别的对象的情况下,这需要多继承(而Java不支持多继承),只能实现接口。

四、什么是数据库的连接池?

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。

五、Servlet是什么?

  • Servlet(服务器端小程序)是使用Java语言编写的服务器端程序,可以生成动态WEB页,Servlet主要运行在服务器端,并由服务器执行调用,是一种按照Servlet标准开发的类。
  • Servlet是在 Web 容器中有浏览器访问地址的特殊 Java 类,一般充当的就是控制器的角色。

六、简述一下servlet的生命周期;

分为三个阶段:
  • 1.初始化阶段 :调用init()方法
  • 2.响应客户请求阶段:调用service()方法
  • 3.终止阶段:调用destroy()方法

七、doPost()和doGet()方法的区别;

相同点:

  • Get和post都能够提交数据
    不同点:
  • 1.通过get方式提交的数据有大小的限制,通常在1024字节左右;而post方式没有数据大小的限制,理论上传送多少数据都可以。
  • 2.通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。
  • 3.通过Get方式提交的数据安全性不高,而Post方式的更加安全

八、HTTP响应的结构是什么?

HTTP响应由三个部分组成:
  • 1.状态码(StatusCode):描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码HttpServletResponse.SC_OK。
  • 2.HTTP头部(HTTPHeader):它们包含了更多关于响应的信息。比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的传输实体内容的编码格式。如何在Serlet中检索HTTP的头部看这里。
  • 3.主体(Body):它包含了响应的内容。它可以包含HTML代码,图片,等等。主体是由传输在HTTP消息中紧跟在头部后面的数据字节组成的。

九、Cookie是什么?说说cookie和session的区别;

  • Cookie:当一个用户通过HTTP访问一个服务器时,这个服务器会将一些Key/Value键值返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时,用户下次访问这个服务器时,数据又将完整地带回给服务器。
cookie 和session 的区别:
  • 1.cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
  • 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
  • 3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。
  • 4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
  • 5.所以个人建议:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中.

十、Jsp的隐含对象是什么?有哪几个?

  • 1、out 来源于java.io.Writer类,它用于发送输出流到客户端。

  • 2、request 来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。

  • 3、response 来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。

  • 4、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。

  • 5、session 来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。

  • 6、application 来源于javax.servlet.ServletContext。

  • 7、config 来源于ServletConfig,它包含了当前JSP/Servlet所在的WEB应用的配置信息。

  • 8、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。

  • 9、exception 用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值