java基础面试题(持续更新ing)

1.application,session和cookie的区别

方法信息量大小保存时间应用范围保存位置
Application任意大小整个应用程序的生命期所有用户服务器端
Session小量,简单的数据

用户活动时间+一段延迟时间

(一般为20分钟)

单个用户服务器端
Cookie小量,简单的数据可以根据需要设定单个用户客户端

 

application,session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。

session中保存的是键值对,cookie中保存的是字符串。 

session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。 

session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存。

 

Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合。

Session中的信息保存在Web服务器内容中,当session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用session对象保存还是一个不错的选择。

Cookie对象能够长期保存,Web应用程序可以通过获取客户端的cookie值来判断用户的身份来进行验证(实现保持用户长久的登录状态),无需占用任何服务器资源。但是也有缺点,有大小限制,而且如果客户端配置禁止Cookie设置,则被限制使用, 还存在安全风险,可以伪装。

 

涉及知识点:

无状态的HTTP协议:

  协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP协议)是一种通信协议,它允许将超文本标记语言文档(HTML文档)从web服务器传送到客户端的浏览器。

  HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务端的连接就会关闭,再次交换数据需要建立新的连接。也就是说,服务器无法从连接上跟踪会话。

会话跟踪:

  会话,指的是用户登录网站后的一系列动作,比如浏览商品添加到购物车并购买。会话跟踪是web程序常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是cookie和session。cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。

 

Cookie:

  由于HTTP协议是一种无状态的协议,服务器单从网络连接上无从知晓客户身份。比如用户A购买了一件商品放入购物车,当再次购买商品的时候服务器已经无法判断该购物行为是属于用户A的会话还是用户B的会话了。该怎么办了?cookie其实是一小段的文本信息。客户端请求服务器,如果服务器需要记录用户状态,就使用response想客户端浏览器颁发一个cookie,客户端就会把cookie保存起来。

  当浏览器请求该网站的时候,浏览器把请求网址连同该cookie一同提交给服务器,服务器检查该cookie,以此来辨认用户状态。服务器还可以根据内容修改cookie的内容。(cookie的内容主要包括名字、值、过期时间、路径和域。路径和域一起构成了cookie的作用范围)。

 

会话cookie和持久cookie:

  若不设置过期时间,则表示这个cookie的生命周期为浏览器的会话期间,关闭浏览器窗口,cookie就会消失,这种生命周期巍峨浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘内而是保存在内存里,当然这种行为并不是规范规定的。

  若设置了过期时间,那么浏览器会把cookie存在硬盘上,关闭浏览器后再次打开浏览器,这些cookie仍然有效直至超过设定的过期时间。存储在硬盘上的cookie可以在浏览器的不同进程间共享。这就是持久cookie。

cookie具有不可跨域名性,浏览器访问百度不会带上谷歌的cookie。

 

session:

session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器的时候,服务器会把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。

 

 

 

2.JSP内置对象

  JSP的内置对象是指在JSP页面系统中已经默认内置的JAVA对象,这些对象不需要开发人员显式声明即可使用。在JSP页面中,可以通过存取JSP内置对象实现与JSP页面和Servlet环境的相互访问。每个内部对象均有对应所属的ServletAPI类型。

  常见JSP内置对象包括request对象、response对象、session对象、out对象、application对象、page对象、exception对象、pageContext对象、config对象。

JSP的内置对象主要有以下特点:

1、由JSP规范提供,不用编写者实例化;(无需声明就可以使用)

2、通过WEB容器实现和管理;

3、所有JSP页面均可使用;

4、只有在脚本元素的表达式代码段中才可使用;(<%=使用内置对象%>或<%使用内置对象%>)

 

 

涉及知识点:

1.Request对象

Request对象是javax.servlet.http.HttpServletRequest类的实例。代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。比如表单中的数据、网页地址后带的参数等。

2.Response对象

Response对象是javax.servlet.http.HttpServletResponse类的实例。代表响应对象,主要用于向客户端发送数据。

3.Out对象

Out对象是javax.servlet.jsp.JspWriter类的实例。主要用于向客户端浏览器输出数据。

4.session对象

Session 对象是javax.servlet.http.HttpSession类的实例。主要用来保持在服务器与一个客户端之间需要保留的数据,比如在会话期间保持用户的登录信息等,会话状态维持是Web应用开发者必须面对的问题。当客户端关闭网站的所有网页或关闭浏览器时,session对象中保存的数据会自动清除。由于Htp协议是一个无状态协议,不保留会话间的数据,因此通过session对象扩展了htp的功能。比如用户登录一个网站之后,登录信息会暂时保存在session对象中,打开不同的页面时,登录信息是可以共享的,一旦用户关闭浏览器或退出登录,就会清除session对象中保存的登录信息。

5.Application对象

Application对象是javax.servlet.ServletContext类的实例。主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享。

6.PageContext对象

PageContext对象是javax.servlet.jsp.PageContext类的实例。用来管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由JSP容器来完成的。

7.Config对象

Config对象是javax.servlet.ServletConfig类的实例。是代码片段配置对象,表示Servlet的配置。

8.Page(相当于this)对象

Page对象是javax.servlet.jsp.HttpJspPage类的实例。用来处理JSP网页,它指的是JSP页面对象本身,或者说代表编译后的servlet对象,只有在JSP页面范围之内才是合法的。

9.Exception对象

Exception对象是java.lang.Throwable类的实例。处理JSP文件执行时发生的错误和异常只有在JSP页面的page指令中指定isErrorPage=“true”后,才可以在本页面使用exception对象。

需要说明的是,pageContext中的属性默认在当前页面是共享的;session中的属性在当前session中是共享的;application对象中的属性则对所有页面都是共享的。

 

 

3.jsp标签

JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。

JSP的常用标签有  <jsp:include>, <jsp:forward> 和  <jsp:param>

<jsp:include>标签 :用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入

举例: 

<jsp:include page="/xxx/a2.jsp"/>   假设a1.jsp中存在此标签,那么当你访问a1.jsp时,页面内容不仅会显示出a1.jsp还会显示出a2.jsp。

<jsp:forward>标签 :用于把请求转发给另外一个资源。

举例:

    <jsp:forward page="/a2.jsp"/>  假设a1.jsp中存在此标签,那么当你访问a1.jsp时,页面内容会显示出a2.jsp ,但是页面的地址还是显示a1.jsp,

这是因为此跳转属于服务器端跳转。只要是服务器端跳转,则地址栏永远没有变化

<jsp:param>标签 :当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。

 

举例:使用<jsp:param>标签向被包含的页面传递参数

a1.jsp包涵以下代码

<jsp:include page="/a2.jsp">
     <jsp:param name="parm1" value="hello" />
</jsp:include>

a2.jsp包涵以下代码

<%=request.getParameter("parm1")%>

就可以把a1.jsp中parm1的值传到a2.jsp

 

 

举例:使用<jsp:param>标签向要跳转的页面传递参数

a1.jsp包涵以下代码

<jsp:forward page="/a2.jsp">
     <jsp:param name="parm1" value="hello" />
</jsp:forward>

a2.jsp包涵以下代码

<%=request.getParameter("parm1")%>

 

就可以把a1.jsp中parm1的值传到a2.jsp

 

 

 

4.sql优化方法,表拆分,表合并,数据库分页查询,sql注入

sql优化方法: 直接看这篇博客即可 https://blog.csdn.net/qq_38789941/article/details/83744271

数据库分页查询:直接看这篇博客即可 https://blog.csdn.net/use_admin/article/details/83622414

sql注入:直接看这篇博客即可 https://www.cnblogs.com/myseries/p/10821372.html

 

因为答案有大部分都是参考别的博客或者百科,统一底下写参考链接。

https://blog.csdn.net/chenghaibing2008/article/details/8499601

https://www.cnblogs.com/dorra/p/7748662.html

https://blog.csdn.net/u010889616/article/details/52751617

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蛋白质是生物体中普遍存在的一类重要生物大分子,由天然氨基酸通过肽键连接而成。它具有复杂的分子结构和特定的生物功能,是表达生物遗传性状的一类主要物质。 蛋白质的结构可分为四级:一级结构是组成蛋白质多肽链的线性氨基酸序列;二级结构是依靠不同氨基酸之间的C=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物中的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动中发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一类重要物质,对于维持生物体的正常生理功能具有至关重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值