前端面试题第二波,要offer的看过来~
快来测试测试自己掌握能力吧!
1. class.forname的作用?为什么要用?
1)、获取Class对象的方式:类名.class、对象.getClass()、Class.forName(“类名”);
2)、通过Class对象自审
3)、动态调用方法
2. 在oracle大数据量下的分页解决方法
页面
DB a:自身特点(limit,rownum,row_num函数) b:ResultSet
数据量少,缓存DB: { r* _2 o: B0 r. V; }9 A
3. mySQl的分页是怎么实现的?
Select * from limit 0,3
4. cookie被禁止后怎样使用session?
request.getSession().setAttribute(“aa”, “ss”);
response.sendRedirect(response.encodeURL(“”));
5. 项目开发经历了哪几个阶段
需求分析及变更管理
项目模型及业务流程分析
系统分析及建模设计
界面设计及代码开发
系统测试,部署和文档编写
维护
6. 谈谈项目的体系统架构:客户层,表示层,业务层,数据层
客户层:用来实现企业级应用系统的操作界面和客户表示,(如HTML和可以显示WEB页面的浏览器).
表示层:主要是为企业提供WEB服务,包括JSP页面和Servlet技术.
业务层:也叫应用层封装了企业所有的业务逻辑(JAVA Bean,JAVA类).
数据层:用来储存企业数据信息,(如oracle,mysql).
7. J2EE规范中的组件技术在项目中用到了哪些?
JSP,servlet.,JDBC,XML, JNDL,JAVABEAN
8. TCP/IP通讯和UDP通迅的区别?
1) TCP/IP面向连接,可靠连接,UDP面向不连接,不可靠连接
2)建立连接经历3次握手,udp无需连接,ip和port封装在datagram数据包中,自寻址。
9. 浏览器和WEB服务器是用什么协议通迅的?
应用层使用的是HTTP协议,传输和路由使用的是TCP/IP
10. 网络通讯中,端口有什么含义。端口的取值范围?
端口用于区分基于TCP/IP通讯的不同应用程序,可以认为是计算机与外界交流的出口。端口取值范围>1024,系统使用的端口范围0 — 1024
11. 说出3个常见协议的默认端口。
21 ftp File Transfer [Control]文件传输协议(控制)
80 http World Wide Web HTTP全球信息网超文本传输协议
25 smtp Simple Mail Transfer简单邮件发送协议
12. socket是什么,它有什么作用?
Socket是通讯的端点。是黑盒子的出入口。对于应用层来说,socket封装了底层的所有通讯细节。
13. TCP/IP通讯的基本步骤是什么?
1)向操作系统注册:让操作系统将一个端口和服务器通讯进程绑定。这个端口就代表了这通讯进程。ServerSocket ss = new ServerSocket(port),服务端通讯进程在port端口监听。
2) Socket socket = serverSocket.accept();取出一个客户端的socket连接。如果没有客户端的连接到来,就一直等待,也就是阻塞状态
3)和服务器建立连接:Socket socket = new Socket(ip地址,port);
如果创建socket对象成功,代表连接建立。如果抛出异常,连接建立不成功。
4)在发送方通过socket获取输出流对象,socket.getOutputStream()并执行写入操作
5)在接收放通过socket获取输入流,socket.getInputStream()并执行读取操作
14. UDP通讯的基本步骤是什么?
创建客服端的DatagramSocket,创建时,定义客服端的监听端口
创建服务端的DatagramSocket,创建时,定义服务端的监听端口
在服务端定义DatagramPaket对象,封装待发送的数据包
服务端讲数据发送出去
客服端接收数据
15. JDBC访问数据库的基本步骤是什么(手写)?
以查询为例:
步骤一:注册并加载驱动程序
Class.forName(“oracle.jdbc.driver.OracleDriver”)
步骤二:创建连接
Connection conn = DriverManager.getConnection(url,user,password);
步骤三:创建sql语句对象
Statement st = conn.createStatement()
步骤四:提交sql语句
String sql = “select * from tablename”;
ResultSet rs = st.executeQuery(sql);
步骤五:显示结果
While(rs.next()){
}
步骤六:关闭连接
Rs.close();
St.close();
Conn.close();
16. 说说preparedStatement和Statement的区别
1)提高效率,数据库系统只编译一次sql语句。而通过statement的sql语句每次数据库系统都会编译。
2)防范sql注入攻击
17. 说说事务的概念,在JDBC编程中处理事务的步骤。
1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。
2) JDBC API中使用事务处理步骤: a.用false作为参数调用setAutoCommit方法; b.执行一或多个关于数据库的操作; c.调用commit方法完成改变; d.恢复上次提交后的改变,调用rollback()方法
18. 数据库连接池的原理。为什么要使用连接池。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。为了解决资源的频繁分配,释放所造成的问题,提供高效率的连接分配,实现连接的高效安全避免了数据库频繁建立,关闭的开销
19. servlet和jsp有什么关系?
1;jsp从本质上讲就是一个servlet
2;Jsp通过编译后,会生成.java文件,它extends与HttpJspBase.
20. 编写一个servlet的步骤。
public calss MyServlet extends HttpServlet(){
public void init(){};
public void destroy(){};
public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServlerException,IOException{};
}
web.xml中配置—-
<servlet>
<serlvet-name> </>
<serlvet-calss></>
</servlet>
<serlvet-mapping>
<serlvet-name></>
<url-pattern>/x</>
</serlvet-mapping>
21.HttpservletResponse的sendError方法的作用
向客户端发送一个错误的HTTP状态码
22.什么情况下使用URL重写
当cookie被禁用后,可以通过URL重写将sessionid附加在URL后发送.
好处:
1.缩短url,隐藏实际路径提高安全性
2易于用户记忆和键入。
3易于被搜索引擎收录
其中详细如下
1.通过URL重写,把动态地址转换成更容易被搜索引擎收录的形式-静态页面地址,是一种对搜索引擎友好的方法。google虽然可以抓取动态页面,但是对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。
2.如果网站改版或目录结构更改时,很多页面的链接可能会发生变化,许多搜索引擎已索引的页面及用户的历史收藏可能会成为死链。使用URL重写技术,则由于可以构建虚拟的网站目录和结构,可有效的防止因改版而使搜索引擎已索引的页面无法访问的问题,在信息量相同的情况下,反而会增加可索引的页面数量。
3.使用URL重写,通过URL到URL、URL到文件名,甚至文件名到文件名的转换,为网站建立了一种新的层次清晰、紧凑简洁的目录结构,隐藏了真实的目录和文件。同时服务器可根据请求中诸如浏览器类型、源IP地址等特征来决定最终提交给客户的内容,或限制某个列表中主机对WEB服务器的访问,极大地提高了网站的安全性。
4.直接生成静态页面虽然能提高访问速度,但由于该静态页面一般是在信息发布时生成的,会出现页面上的其他信息无法更新的问题,除非以后重新生成所有内容页面(重新生成应该是很耗费资源的)。而通过URL重写技术,尽管是以静态网址发出请求,但通过正则表达式匹配后,对应的仍然是动态网页,因此不存在数据更新的问题。
23.doGet和doPost在什么时候调用?区别?
方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
get和post提交的数据量是不一样的.
get好像最多只能在url后跟2K因为get只能发送一个byte的请求
而post则没有限制
建议用Get方法提交数据时,字节大小不要超过1300,也就是1.3KB。超过这个大小就需用POST方法了
24.response对象的作用
setContentType设置内容格式如AJAX时
response.setContentType(“text/xml;charset=gbk”)
setHeader设置响应头response.setHeader(“Cache-Control”,”no-cache”)禁用页面缓存
sendError发送一个错误的HTTP状态码
sendRedirect重定向
25.jsp中import指令的作用
导入需要引用的类
26. 文件上传的步骤与原理
首先<from enctepy=”multiptart/form-data” method=”post”>
表示这个表单用post提交的是二进制文件.
这种方式提交的话,在serlvet中的request.getparamer(“”);是得不到内容的.必须用getIntputStream()来得到字节输入流
通过字节输入流得到3部分:1,分界符.2,头(普通表单域,文件上传域).3,消息体(普通表单域的内容,文件上传域的内容).
27.ajax的步骤与原理
1,创建一个XmlHttpRequest对象.
2,调用open方法(准备发起请求).
open(“提交方式”,”URL地址”,”是否同步(false/true)”).
3,如果是提交方式是post,就需要设置请求头.SetrequestHeard(“content-Type”,application/X-www;1;);
4,设置回调函数XmlRequest.onredystatechang=XX;
5,在服务器端response.setContType(“”);
response.setHeard(“”);
6,通过判断XmlHttpRequest.readystatc==4是否会应.
XmlHttpRequest.status==200判断状态码.
7,用XmlRequest.responseText接受文本内容
或者是用Xmlrequest.XmlResponse接受Xml内容.
前端面试题第二波,要offer的看过来~的更多相关文章
- [前端]前端面试题第二波~[http/tcp/网络篇]
目录: Cookie 是否会被覆盖,localStorage是否会被覆盖? 如何保持登陆状态? Ajax原生 Jsonp的原理.怎么去读取一个script里面的数据. 如果页面初始载入的时候把ajax ...
- 2019前端面试题汇总(主要为Vue)
摘要: 经典面试题. 原文:2019前端面试题汇总(主要为Vue) 作者:前端小酱 Fundebug经授权转载,版权归原作者所有. 毕业之后就在一直合肥小公司工作,没有老司机.没有技术氛围,在技术的道 ...
- 【web前端面试题整理02】前端面试题第二弹袭来,接招!
前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...
- 各大互联网公司前端面试题(js)
对于巩固复习js更是大有裨益. 初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型 ...
- 常见前端面试题之HTML/CSS部分
转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...
- 史上最全前端面试题(含答案)-A篇
HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...
- 【重点--web前端面试题总结】
前端面试题总结 HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应. JavaScri ...
- 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解
1.2017前端面试题及答案总结 |掘金技术征文 "金三银四,金九银十",用来形容求职最好的几个月.但是随着行业的饱和,初中级前端er就业形势不容乐观. 行业状态不可控,我们能做的 ...
- 2010年腾讯前端面试题学习(jquery,html,css部分)
看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,js部分已学习,这是jquery,html和css部分,学习一下:) 原文地址:https://segmentfau ...
随机推荐
- 吉哥系列故事--完美队形 - HDU 4513 (Manacher)
分析:刚开始的想法是匹配出来每个点的最大回文串,然后用每个点的最大不下降序找一个最小值,不过不明白为什么不对....很无奈,再匹配的时候加一些判断就可以过,或许还有什么没想到的地方吧..... 代 ...
- 大数据应用之:MongoDB从入门到精通你不得不知的21个为什么?
一.引言: 互联网的发展和电子商务平台的崛起,催生了大数据时代的来临,作为大数据典型开发框架的MongoDB成为了No-sql数据库的典型代表.MongoDB从入门到精通你不得不知的21个为什么专为大 ...
- Solr开发参考文档(转)
Solr开发文档 Solr 是一种可供企业使用的.基于 Lucene 的搜索服务器,它支持层面搜索.命中醒目显示和多种输出格式.在这篇文章中,将介绍 Solr 并展示如何轻松地将其表现优异的全文本搜索 ...
- maven profile实现多环境打包
快速解决: 项目目录 1.pom文件中添加profile <profiles> <profile> <!-- 本地开发环境 --> <id>dev< ...
- Android AppWidget(转)
AppWidget不知道大家使用这个多不多,这个在手机上也叫做挂件,挂件也就是放在桌面方便用户进行使用的,从android1.6开始挂件支持一些简单的lauout和view,到了android4.0之 ...
- 【转】string常用函数
原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52 ...
- Python之路,Day16 - Django 进阶
Python之路,Day16 - Django 进阶 本节内容 自定义template tags 中间件 CRSF 权限管理 分页 Django分页 https://docs.djangoproj ...
- poj 2117 Electricity
/* Tarjan求割点 */ #include<iostream> #include<cstdio> #include<cstring> #include< ...
- codevs3013单词背诵
/* 手打的哈希+线性的维护 第一问:hash一下 并且用个h记录某个单词要背的 第二问:线性的跑一边 开始队列里装下前一些单词使这一坨符合要求 并且记录出现次数num 然后开始从前面删 删除的条件: ...
- HTML 详细介绍
什么是 HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (ma ...