码迷,mamicode.com
首页 > 其他好文 > 详细

名词解释

时间:2018-11-20 15:08:22      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:block   pattern   页面静态化   抓取   nginx   密钥验证   生成   哨兵   pre   

哨兵
队列
懒加载
JNDI查找机制
Clustering 集群
OLTP

On-Line Transaction Processing,联合事务处理过程,也称为面向交易的处理过程,其基本特征是前台接收的用户数据立即传送到计算机中心进行处理,并且在很短的时间内给出的处理结果,是对用户操作快速响应的方式之一。

MSM

Memcached-Session-Manager,用内存管理session

LAMP

Linux + Apache + MySQL + PHP

LNMP

Linux + Nginx+ MySQL + PHP

cd

Change Directory

pwd

Print Working Directory

C/S

Client/Server 客户/服务器模式

B/S

Brower/Server 浏览器/服务模式

dbcp

DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。

缺省

系统默认状态

SQL注入

所谓SQL注入,就是通过一些含有特殊字符的sql语句发送到服务器欺骗服务器并进行攻击。(特殊字符:or, 单引号,--,空格)

AJAX (Asynchronous JAvaScript and XML)

异步的 JavaScript 和 XML。是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

跨域

浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了。

同域

简单的解释就是相同域名,端口相同,协议相同。同源策略:请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同。

jsonp

jsonp 全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案,是一种依靠开发人员创造出的一种非官方跨域数据交互协议。
一个是描述信息的格式,一个是信息传递双方约定的方法。

动态页面

动态页面是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页。

页面静态化

页面静态化,其实就是将动态生成的jsp等页面,变成静态的HTML页面,让用户直接访问。

好处
1、首先就是访问速度,不需要去访问数据库,或者缓存来获取哪些数据,浏览器直接加载渲染html页即可。所以可以大大的提高访问效率;
2、从网站优化来分析,搜索引擎更喜欢静态的网页,静态网页与动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO排名更容易提高。
3、从安全角度讲,静态网页不宜遭到黑客攻击,如果黑客不知道你网站的后台、网站采用程序、数据库的地址,静态网页, 更不容易受到黑客的攻击。
4、从网站稳定性来讲,如果程序、数据库出了问题,会直接影响网站的访问,而静态网页就避免了如此情况,不会因为程序等,而损失网站数据,影响正常打开,损失用户体验,影响网站信任度。

SQL语句大小写

一个说法,SQL语句,在执行的时候,是先转化为大写字母然后执行,如果小写转化大写,如果大写,那就可以省一个转化的时间。

另一个说法,SQL语句所有字符都会转化为符号系统,最后构建成AST。SQL执行效率取决于SQL执行器及执行优化器,如何取数据、计算会快。在词法分析阶段是用正则表达式进行提取的,然后变成AST中的符号。所以并不会像回答中所说的做大小写转换。

Session

在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

Tomcat处理http请求的过程

Tomcat处理HTTP请求原理

tomcat处理连接的详细过程

1、用户在浏览器中输入网址localhost:8080/test/index.jsp,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;

2、Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应;

3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host;

4、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理);

5、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL Pattern为*.jsp的Servlet,对应于JspServlet类;

6、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;

7、Context把执行完之后的HttpServletResponse对象返回给Host;

8、Host把HttpServletResponse对象返回给Engine;

9、Engine把HttpServletResponse对象返回Connector;

10、Connector把HttpServletResponse对象返回给客户Browser。

JWT

JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。一个token分3部分,头部(header)、载荷(payload)和签证(signature) 。

前后端分离

前后端分离是一种架构模式,说通俗点就是后端项目里面看不到页面(JSP|HTML),后端给前端提供接口,前端调用后端提供的REST风格接口就行,前端专注写页面(html|jsp)和渲染(JS|CSS|各种前端框架);后端专注写代码就行。前后端分离的核心:后台提供数据,前端负责显示

REST

每个资源都应该有一个唯一的标识;使用标准的方法来更改资源的状态;Request和Response的自描述;资源多重表述;无状态的服务

REST和RPC之间的区别
1、REST强调资源有唯一的URI;而RPC更加强大过程(动词),由统一的接口来调用它们。
2、REST回归HTTP最初的设计;RPC仅仅只是把HTTP作为传输协议来使用。
3、REST是由超文本驱动的;RPC是由方法驱动的。
4、REST强调HTTP通信的语义可见性,通过消息头和标准的HTTP方法来体现;RPC把语义封装在HTTP消息体中。

事务

在事务中的多个操作,要么都成功,要么都失败。

进程(Processor)

启动一个LOL.exe就叫一个进程。接着又启动一个DOTA.exe,这叫两个进程。

线程(Thread)

线程是在进程内部同时做的事情,比如在LOL里,有很多事情要同时做,比如"盖伦” 击杀“提莫”,同时“赏金猎人”又在击杀“盲僧”,这就是由多线程来实现的。

什么是单例?

单例对象的类必须保证只有一个实例存在——这是维基百科上对单例的定义,这也可以作为对意图实现单例模式的代码进行检验的标准。

参考 在java中写出完美的单例模式

懒汉式单例

是指指全局的单例实例在第一次被使用时构建。

饿汉式单例

是指全局的单例实例在类装载时构建的实现方式。由于类装载的过程是由类加载器(ClassLoader)来执行的,这个过程也是由JVM来保证同步的,所以这种方式先天就有一个优势——能够免疫许多由多线程引起的问题。

什么时候是类装载时?

不严格的说,大致有这么几个条件会触发一个类被加载:
1、new一个对象时
2、使用反射创建它的实例时
3、子类被加载时,如果父类还没被加载,就先加载父类
4、jvm启动时执行的主类会首先被加载

什么是原子操作(atomic)?

简单来说,原子操作(atomic)就是不可分割的操作,在计算机中,就是指不会因为线程调度被打断的操作。

比如,简单的赋值是一个原子操作:

m = 6; // 这是个原子操作

假如m原先的值为0,那么对于这个操作,要么执行成功m变成了6,要么是没执行m还是0,而不会出现诸如m=3这种中间态——即使是在并发的线程中。

而,声明并赋值就不是一个原子操作:

int n = 6; // 这不是一个原子操作

对于这个语句,至少有两个操作:①声明一个变量n ②给n赋值为6。

这样就会有一个中间状态:变量n已经被声明了但是还没有被赋值的状态。

这样,在多线程中,由于线程执行顺序的不确定性,如果两个线程都使用m,就可能会导致不稳定的结果出现。

什么是指令重排?

简单来说,就是计算机为了提高执行效率,会做的一些优化,在不影响最终结果的情况下,可能会对一些语句的执行顺序进行调整。

比如,这一段代码:

int a ;   // 语句1 

a = 8 ;   // 语句2

int b = 9 ;     // 语句3

int c = a + b ; // 语句4

正常来说,对于顺序结构,执行的顺序是自上到下,也即1234。

但是,由于指令重排的原因,因为不影响最终的结果,所以,实际执行的顺序可能会变成3124或者1324。

由于语句3和4没有原子性的问题,语句3和语句4也可能会拆分成原子操作,再重排。

也就是说,对于非原子性的操作,在不影响最终结果的情况下,其拆分成的原子操作可能会被重新排列执行顺序。

冒泡排序

冒泡排序是一种简单的排序算法。将序列中所有元素两两比较,将最大的放在最后面。将剩余序列中所有元素两两比较,将最大的放在最后面。重复第二步,直到只剩下一个数。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

直接插入排序

把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。

直接插入排序(Straight Insertion Sorting)的基本思想:在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

希尔排序(递减增量排序算法)

希尔排序是基于插入排序而提出改进方法的排序算法。将数的个数设为n,取奇数k=n/2,将下标差值为k的数分为一组,构成有序序列。再取k=k/2 ,将下标差值为k的书分为一组,构成有序序列。重复第二步,直到k=1执行简单插入排序。

简单选择排序

遍历整个序列,将最小的数放在最前面。遍历剩下的序列,将最小的数放在最前面。 重复第二步,直到只剩下一个数

堆排序

将序列构建成大顶堆。将根节点与最后一个节点交换,然后断开最后一个节点。重复第一、二步,直到所有节点断开。

快速排序

选择第一个数为p,小于p的数放在左边,大于p的数放在右边。递归的将p左边和右边的数都按照第一步进行,直到不能递归。

归并排序

选择相邻两个数组成一个有序序列。选择相邻的两个有序序列组成一个有序序列。重复第二步,直到全部组成一个有序序列。

基数排序

将所有的数的个位数取出,按照个位数进行排序,构成一个序列。将新构成的所有的数的十位数取出,按照十位数进行排序,构成一个序列。

名词解释

标签:block   pattern   页面静态化   抓取   nginx   密钥验证   生成   哨兵   pre   

原文地址:https://www.cnblogs.com/acuii/p/9988385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!