金典java面试题108道之44-65道

23 篇文章 0 订阅
15 篇文章 0 订阅

**

44,Mysql,SqlServer,Oracl各个端口号

**
(1)Mysql:3306 SqlServer:1433 Oracl:1521
**

45,Oracl,Mysql,SqlServer的分页有什么区别??

**
(1)Mysql:采用Limit函数,一般写在SQL语句后面就可以

  select * from emp where .... Limit 10//返回前十行的数据
  select * from emp where .....Limit 10-20//返回10到20之间的数据

(2)SqlServer:SqlServer是通过Top()函数实现的
(3)Oracl:使用row_number()函数
        rownum();函数
**

46,如何对数据库进行优化???

**
(1),不要让数据库做的太多
(2),尽量多使用Sql语句优化器
  (2.1)ROB:基于rale规则的优化器
  (2.2)CBO:基于优化统计分析来自动进行选择最优的方案
(3),尽量少使用存储过程
(4)将不常改变的数据放入缓存当中
**

47,PreparedStatement和Statement的区别???

**
(1)PreparedStatement会对SQL语句进行预编译,也就是说下次再遇到相同的SQL语句他不会在进行编译了,而是直接使用
(2)从安全性的方面考虑,Statement是使用的SQL拼接,特别容易造成SQL注入问题
(3)PreparedStatement在第一次加载的时候消耗非常高,但是之后的执行效率是非常快的
**

48,什么是Tcp协议,什么是ip协议,什么是udp协议,什么是HTTP协议????

**
(1)TCP协议:传输控制协议,它是需要进行连接的作用(三次握手,四次挥手)可靠的传输
(2)HTTP协议:超文本传输协议,提供了客户端到服务端的通讯,HTTP是无状态传输协议,这就意味着HTTP传输协议不会保留任何的请求数据(get,post请求)
(3)UDP协议:它是一种无状态的协议,在传输数据的时候容易丢包。
(4)IP协议:负责将数据从数据源传输到目的地,期间无法保证数据的安全性
**

49,Bom与Dom的概念???

**
(1)Bom(浏览器对象模型):提供了与浏览器交互的对象(警告框,确认框)window对象
在这里插入图片描述
(2)Dom(文档对象模型):是一个与语言无关与平台无关的标准接口规范。
  (2.1).dom结点的获取
   getElementById(id) 通过id属性获取一个结点
  getElementsByName(name) 通过name属性获取结点数组

**

50,TCP中有长连接和短连接的区分,请分别简述他们的区别???

**
(1)长连接:通过保活功能可以长时间的保持客户端与服务端的连接。
   (1.1)保活功能:其实就是为了探测客户端的存活状态而做出的反应
(2)短连接:客户端请求数据,服务端响应数据,并将结果返回给客户端。返回结束后就断开连接。
**

51,Request和Reponse的区别???

**
(1)Request:request对象是服务器对请求中具有请求行、请求头、实体内容的操作的方法,通过这个对象提供的方法,可以获得客户端请求的所有信息。
(2)Response代表响应,于是响应消息中的状态码、响应头、实体内容都可以由它进行操作
**

52,请求转发与重定向的区别???

**

请求转发:

request.getRequestDispatcher().forward();

重定向:

response.sendRedirect()

区别:
(1)转发是在服务器端完成的,重定向是在客户端发生的;
(2)转发的速度快,重定向速度慢;
(3)转发是同一次请求,重定向是两次请求;
(4)转发地址栏没有变化,重定向地址栏有变化;
(5)转发只能在本项目内进行数据传递,而重定向可以拓展到服务器外

**

53, 在表单的请求中,get()请求和post()请求的区别???

**
(1)在安全性方面看,post请求的安全性要比get()请求高
(2)在提交内容大小上面看,get()请求可以提交不能超过8个字节长度的字符,而post()请求在理论上可以是无限长度的
(3)在请求速度上看,get()请求的速度要比Post()请求的速度快多了

**

54,JSP中九大内置对象是什么??四大作用域是什么??

**
(1)九大内置对象:
   (1.1)request(请求对象):获取客户端传递给服务器的信息
   (1.2)repense(响应对象):将服务器处理后的结果返回给客户端
   (1.3)pageContext(页面上下文对象):他可以获得其他对象的属性
   (1.4)session(会话对象):可以将信息存储在session中
   (1.5)application(应用程序对象):将用户的信息存储在服务器中,直到服务器关闭
   (1.6)out(输出对象):向客户端输出信息(out.print(“0000”))
   (1.7)config(配置对象):获取服务器配置信息
   (1.8)page(页面对象):类似于this指针
   (1.9)exception(例外对象):用作显示信息异常
(2)四大作用域:
   (2.1)page:只在当前页面有效,换句话说客户端跳转到别的页面就无效了
   (2.2)request:HTTP请求开始到请求结束。
   (2.3)session:会话开始到会话结束
   (2.4)application:服务器开始到服务器结束
**

55,静态包含和动态包含的区别??

**
(1)语法不同:静态包含<%@include file=“xxx.jsp”%>
    动态包含<jsp:include page=“xxx.jsp”>
(2)传参不同:静态包含不可以传递参数,动态包含可以传递
(3)原理不同:静态包含是先合并在执行,动态包含是先翻译在合并
**

56,什么是正则表达式???

**
(1)正则表达式其实就是一种人为定义的规则,他可以在海量的字符串中寻找符合自身规则的字符串
**

57, 什么是cookie???cookie对象的定义??

**
(1)cookie对象可以将用户的信息存储在浏览器当中,方便用户下次使用,比如我们熟悉的三天免登陆就是用cookie实现的,它是由服务器生成的,且他是不安全的
(2)定义:

Cookie c = new Cookie("name","pwd");
c.setMaxAge(24*60*60);//设置cookie保存的天数

**

58,什么是Session??Session对象的定义

**
(1)session是存在于服务端的,可以存储大量的数据信息
(2)为什么要用session???
  (2.1):由于我们的HTTP协议是无状态,无连接的所以导致一个问题的出现,就是用户在打开新的页面,需要重新登录系统,这样才可以获取数据,那么有没有什么方式解决呢?于是session出现了
(3)session的定义:

String name = request.getparameter("name");
session.setAttribute("name",name);//把name存储到session中
session.getAttribut("name");//获取name

**

59,简述一下JNDI

**
(1),JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一
(2),如果没有JNDI的情况的话,程序员如果需要更改数据库的名字,或者更换数据的话,需要修改源代码,大家都知道,一个好的程序是不允许修改源代码的,那么JNDI就诞生了
(3)JNDI的配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <datasources>
     3 <local-tx-datasource>
     4     <jndi-name>MySqlDS</jndi-name>
     5     <connection-url>jdbc:mysql://localhost:3306/lw</connection-url>
     6     <driver-class>com.mysql.jdbc.Driver</driver-class>
     7     <user-name>root</user-name>
     8     <password>rootpassword</password>
     9 <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    10     <metadata>
    11        <type-mapping>mySQL</type-mapping>
    12     </metadata>
    13 </local-tx-datasource>
    14 </datasources>
   

(4)JNDI的引入

Connection conn=null;
try {
  Context ctx=new InitialContext();
  Object datasourceRef=ctx.lookup("java:MySqlDS"); //引用数据源
  DataSource ds=(Datasource)datasourceRef;
  conn=ds.getConnection();
  /* 使用conn进行数据库SQL操作 */
  ......
  c.close();
} 

**

60,简述一下MVC设计模式??

**
(1)MVC–模型–视图–控制(它将业务逻辑,视图,代码进行分离)
(2)M(模型):它主要是对数据进行处理和操作,一般对应数据库
(3)V(视图):将处理好的数据显示给用户
(4)C(控制):它将M和V粘合在一起,起到一个中间调度的作用
(5)优点:降低了代码的耦合度,提高了代码的可维护性
(6)缺点:一般不适合用于小型项目,视图对模型的访问效率太低

**

61,什么是JSTL??他有什么优点???

**
(1)JSTL也叫标准标签库,它是一个不断完善且源代码公开的JSP标签库,它主要的作用是替换JSP页面的JAVA代码,一般和el表达式使用
(2)优点:极大地减少了jsp页面中Java代码
(2.1)简化了WEB程序的开发
(2.2)提高了jsp页面的可移植性
(3)注意:记得导入jar包:http://tomcat.apache.org/taglibs/standard/

**

62,什么是EL表达式??优点是什么??

**
(1)EL表达式其实就是简化了JSP页面里面的java代码
(2)普通引入java代码

<%
       User user  = (User)request.getAttribute("ur');
%>
       <%=user.getName()%>

(3)使用EL表达式引入Java代码

 ${requestScope.ur.name}
 ${sessionScope.ur2.name}

(4)优点:代码量小,阅读性强

**

63,什么是servlet??servlet的生命周期???

**
(1)servlet简单理解他就是运行在服务器上的一个小程序,servlet负责接收客户端的请求,并且把处理好的数据返回给客户端
(2)生命周期:servlet分为三个阶段,分别是init();service();destory()
  (2.1)init():它会在程序运行的时候加载一次,一般用来创建或者加载一些数据
  (2.2)service():他是用来接收客户端的请求,并将处理结果返回给客户端
  (2.3)destory():他是只被调用一次,就是在session销毁的时候调用
**

64,什么是JQuery??他是用来干嘛的??

**
(1)JQuery相当等于JS的函数库,它比JS的浏览兼容性更强,比JS更灵活,更方便简洁
(2)JQuery的基础语法

1.jQuery 基础语法
基础语法是:$(selector).action()
美元符号定义 jQuery
选择符(selector)“查询”和“查找” HTML 元素
jQuery 的 action() 执行对元素的操作

(3)JQuery的选择器

标签选择器
$("p") 选取 <p> 元素。  
类选择器
$(".intro") 选取所有 class="intro" 的。     
id选择器
$("#demo") 选取所有 id="demo" 的 元素。

**

65,什么是Ajax???

**
(1)Ajax采用异步请求的方式,换句话说就是不需要刷新就可以获取数据信息(特点:无刷新(不是全局刷新))
(2)Ajax的语法:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值