快来测试测试自己掌握能力吧!

  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. 说说preparedStatementStatement的区别

  1)提高效率,数据库系统只编译一次sql语句。而通过statement的sql语句每次数据库系统都会编译。

  2)防范sql注入攻击

  17. 说说事务的概念,在JDBC编程中处理事务的步骤。

  1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。

2) JDBC API中使用事务处理步骤: a.用false作为参数调用setAutoCommit方法; b.执行一或多个关于数据库的操作; c.调用commit方法完成改变; d.恢复上次提交后的改变,调用rollback()方法

  18. 数据库连接池的原理。为什么要使用连接池。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。为了解决资源的频繁分配,释放所造成的问题,提供高效率的连接分配,实现连接的高效安全避免了数据库频繁建立,关闭的开销

  19. servletjsp有什么关系?

  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.HttpservletResponsesendError方法的作用

向客户端发送一个错误的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.doGetdoPost在什么时候调用?区别?

方法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.jspimport指令的作用

导入需要引用的类

  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的看过来~的更多相关文章

  1. [前端]前端面试题第二波~[http/tcp/网络篇]

    目录: Cookie 是否会被覆盖,localStorage是否会被覆盖? 如何保持登陆状态? Ajax原生 Jsonp的原理.怎么去读取一个script里面的数据. 如果页面初始载入的时候把ajax ...

  2. 2019前端面试题汇总(主要为Vue)

    摘要: 经典面试题. 原文:2019前端面试题汇总(主要为Vue) 作者:前端小酱 Fundebug经授权转载,版权归原作者所有. 毕业之后就在一直合肥小公司工作,没有老司机.没有技术氛围,在技术的道 ...

  3. 【web前端面试题整理02】前端面试题第二弹袭来,接招!

    前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...

  4. 各大互联网公司前端面试题(js)

    对于巩固复习js更是大有裨益.    初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型 ...

  5. 常见前端面试题之HTML/CSS部分

    转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...

  6. 史上最全前端面试题(含答案)-A篇

    HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...

  7. 【重点--web前端面试题总结】

    前端面试题总结 HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应. JavaScri ...

  8. 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解

    1.2017前端面试题及答案总结 |掘金技术征文 "金三银四,金九银十",用来形容求职最好的几个月.但是随着行业的饱和,初中级前端er就业形势不容乐观. 行业状态不可控,我们能做的 ...

  9. 2010年腾讯前端面试题学习(jquery,html,css部分)

    看了牛人写的回忆文章,里面有2010年腾讯的前端面试题,里面涉及到不少基础性的问题,js部分已学习,这是jquery,html和css部分,学习一下:) 原文地址:https://segmentfau ...

随机推荐

  1. ubuntu编译openwrt前端web界面

    openwrt是由Cisco放出源代码的开放无线路由平台.由于是基于linux内核,所以可以将很多linux平台下的软件移植到此平台下,然后让无线路由拥有很多意想不到的功能,例如拿来做BT下载器,音乐 ...

  2. 从git上下载代码并导入eclipse

    主要分为两步: 1.先从git下载代码到本地git仓库 2.eclipse import导入存在的maven项目

  3. the identity used to sign the executable is no longer valid.解决方法

    the identity used to sign the executable is no longer valid.解决方法 一.重新下载Provisioning Profile 1.到devel ...

  4. Quartz的cronTrigger表达式

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.CronTr ...

  5. CentOS 搭建 FastDFS-5.0.5集群

    转http://www.open-open.com/lib/view/open1435468300700.html 第一步,确定目标: Tracker  192.168.224.20:22122  C ...

  6. SCOI2014 方伯伯的OJ onlinejudge

    终于用自己的方法水过去了. 本地测慢的一组要三四秒,一共要十几秒,BZOJ貌似一共只让跑6s,于是就还T着的. 一开始没看n<=1e8,想的直接splay+map(splay维护名次,map维护 ...

  7. JS常用扩展

    // 清除两边的空格 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''); }; // 合并多 ...

  8. Android应用打包安装过程具体解释

    Android应用打包安装过程(Run as Android Application ): 1,过程:Android Project --> Compilation and Packaging ...

  9. STL——空间配置器(构造和析构基本工具)

    以STL的运用角度而言,空间配置器是最不需要介绍的东西,它总是隐藏在一切组件(更具体地说是指容器,container)的背后,默默工作,默默付出.但若以STL的实现角度而言,第一个需要介绍的就是空间配 ...

  10. log4j配置文件详解---转

    使用步骤注意: 1. 从http://logging.apache.org/log4j/1.2/ 下载文件 2. 在src目录下加入log4j.properties,将jar包放入build -pat ...