知识记录

块级元素(哪些是块级元素)

div、p(paragraph)、form、h1,2…、menu、blockquote 、ol(order list)、ul(unorder list)、pre(格式化文本)等都是块级元素。

块级元素:block element

每个块级元素默认占一行高度,一行内添加一个块级元素后无法一般无法添加其他元素(float浮动后除外)。两个块级元素连续编辑时,会在页面自动换行显示。块级元素一般可嵌套块级元素或行内元素;

块级元素一般作为容器出现,用来组织结构,但并不全是如此。有些块级元素,如

只能包含块级元素。其他的块级元素则可以包含 行级元素如

.也有一些则既可以包含块级,也可以包含行级元素。

行内元素:inline element

也叫内联元素、内嵌元素等;行内元素一般都是基于语义级 (semantic) 的基本元素,只能容纳文本或其他内联元素,常见内联元素 “a”。比如 SPAN 元素,IFRAME元素和元素样式的 display : inline 的都是行内元素。例如文字这类元素,各个字母 之间横向排列,到最右端自动折行。

元素继承

不可继承的:display、margin、border、padding、background、height、min-height、max- height、width、min-width、max-width、overflow、position、left、right、top、 bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、 page-bread-before和unicode-bidi。

所有元素可继承:visibility和cursor。

内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction。

块状元素可继承:text-indent和text-align。

列表元素可继承:list-style、list-style-type、list-style-position、list-style-image。

表格元素可继承:border-collapse。

css选择器优先级

  1. ID  #id
  2. class  .class
  3. 标签  p
  4. 通用  *
  5. 属性  [type=”text”]
  6. 伪类  :hover
  7. 伪元素  ::first-line
  8. 子选择器、相邻选择器

第一等:代表内联样式,如: style=””,权值为1000。
第二等:代表ID选择器,如:#content,权值为0100。
第三等:代表类,伪类和属性选择器,如.content,权值为0010。
第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。

css布局中,什么是BFC

一个BFC是一个HTML盒子并且至少满足下列条件中的任何一个:

  • float的值不为none
  • position的值不为static或者relative
  • display的值为 table-cell, table-caption, inline-block, flex, 或者 inline-flex中的其中一个
  • overflow的值不为visible

作用:

  1. 不和浮动元素重叠
  2. 清除内部浮动
  3. 防止垂直 margin 重叠

对触发BFC的方法,能用在自适应布局中的方法如下

  • overflow(hidden/auto),缺点:

    1. overflow:hidden当内容过多时,带有剪裁功能;
    2. overflow:auto当内容过多时,会出现滚动条
  • display:inline-block, 缺点:只适用于IE6、7

  • display:table-cell, 缺点:只适用于IE8+和其他浏览器

float和position:absolute脱离文本流的区别

CSS中脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。

  • 需要注意的是,使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。
  • 而对于使用absolute positioning脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它。

css选择器过程

比如 p span,匹配从右到左:会先找到所有span元素,然后向上找他的父节点们,看是否具有p,有的话匹配成功。

浏览器打开一个网页:

  1. 浏览器通过访问域名查找最近的IP地址,一个例子是如果你想用谷歌浏览器,可以下载一个最新的host版本,当你通过谷歌访问的时候浏览器会首先查找本地的IP地址,达到可以使用谷歌的目的;
  2. 浏览器给web服务器发送一个http请求;
  3. 服务器给浏览器相应一个永久重定向,比如说我们在地址栏输入baidu,虽然没写完整,但是浏览器会通过永久重定向去加上http://www.baidu.com,仍然会让用户访问的到,服务器重定向会防止搜索引擎干预,搜索引擎收到301永久重定向就会把http://baidu.comhttp://www.baidu.com看成一个网站;
  4. 服务器处理请求,如果请求出错就会出现常见的404状态码的情况;
  5. 服务器返回http响应;
  6. 浏览器开始显示HTML;
  7. 浏览器发送一个获取请求,找到嵌入在HTML中的对象,是图片还是文字,是样式表还是行为等等;
  8. 服务器发送异步(AJAX)请求。

DNS解析

  1. 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
  2. 如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
  3. 如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
  4. 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
  5. 如果本地DNS服务器本地区域文mongo件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
  6. 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

get post

  • GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
  • GET书签可收藏,POST为书签不可收藏。GET能被缓存,POST不能缓存 。
  • GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
  • GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中。
  • GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。
  • GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。
  • 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。

树的遍历 先序,中序,后序

  • 前序遍历:根节点->左子树->右子树
  • 中序遍历:左子树->根节点->右子树
  • 后序遍历:左子树->右子树->根节点

如下树:

1
2
3
4
5
6
7
       a
/ \
b c
/ \
d f
\ /
e g

  • 先序: abdefgc
  • 中序: debgfac
  • 后序: edgfbca

后序的最后节点肯定是根节点,和中序配合可以分出左右子树。

else: 二叉树的深度:从root到节点;高度:从叶子到节点

进程

进程间的基本关系为同步与互斥

产生死锁的必要条件:互斥条件,请求与保持条件,不剥夺条件以及循环等待条件

动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。

并发性:任何进程都可以同其他进程一起并发执行

独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进

进程主要组成部分:

  1. 程序。作用:描述进程要完成的功能。
  2. 数据。作用:程序在执行时所需要的数据和工作区。
  3. PCB。作用:包含进程的描述信息和控制信息。它是进程存在的唯一标志。

假设一个主机的ip地址为192.168.8.123,而子网掩码为255.255.255.248,

步骤一:首先将网络的IP地址和子网掩码都转换成32位二进制字符。  
步骤二:将转换后的二进制的IP地址和子网掩码进行“逻辑与”运算,得到新的32位二进制字符。
步骤三:把得到的新的32位二进制字符转换成十进制,就是主机的网络号了。
  
本例中 255 各位都是1,因此ip前三个都不变;
248: 1111 1000
123: 0111 1011 与运算后: 0111 1000
那么该主机的网络号是192.168.8.120

路由汇聚

  1. 各子网地址的网段以二进制写出。
  2. 比较,从第1位比特开始进行比较,将从开始不相同的比特到末尾位填充为0。由此得到的地址为汇总后的网段的网络地址,其网络位为连续的相同的比特的位数。

假设下面有4个网络:172.18.129.0/24; 172.18.130.0/24 ;172.18.132.0/24 ;172.18.133.0/24
如果这四个进行路由汇聚,能覆盖这四个网络的汇总地址是:
172.18.128.0/21
算法为:129的二进制代码是10000001
130的二进制代码是10000010
132的二进制代码是10000100
133的二进制代码是10000101
这四个数的前五位相同都是10000,所以加上前面的172.18这两部分相同的位数,网络号就是8+8+5=21。而10000000的十进制数是128,所以,路由汇聚的Ip地址就是172.18.128.0。所以最终答案就是172.18.128.0/21。

###计算机网络通常由三个部分组成,
它们是资源子网、通信子网和通信协议。

  1. 所谓通信子网就是计算机网络中负责数据通信的部分;

  2. 资源子网是计算机网络中面向用户的部分,负责全网络面向应用的数据处理工作;

  3. 而通信双方必须共同遵守的规则和约定就称为通信协议,它的存在与否是计算机网络与一般计算机互连系统的根本区别。

面向对象:

抽象,继承,封装,多态性

数据库设计三大范式

  1. 第一范式(确保每列保持原子性)

  2. 第二范式(确保表中的每列都和主键相关)

  3. 第三范式(确保每列都和主键列直接相关,而不是间接相关)

跨域解决:

利用HTML5 postMessage
利用document.domain+iframe的设置
通过服务端niginx配置跨域
利用iframe+location.hash
windows,name实现跨域数据传输

Linux创建文件的指令

  1. touch : 创建空白文件或修改文件时间

  2. cat主要有三大功能:

    • 一次显示整个文件。
    • 从键盘创建一个文件。只能创建新文件,不能编辑已有文件.
    • 将几个文件合并为一个文件
  3. vi/vim可用来创建文件编辑文件并保存

  4. 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;

数据链路层主要功能包括:

差错控制
提供对物理层的控制
流量控制
MAC寻址

网络层

路径选择、路由及逻辑寻址

css3 有哪些新特性

第 1 选择器、第 2 RGBA和透明度、第 3 多栏布局、第 4 多背景图、第 5 Word Wrap、第 6 文字阴影、
第 7 @font-face属性、第 8 圆角(边框半径)、第 9 边框图片、第 10 盒阴影、第 11 盒子大小、第 12 媒体查询、第 13 语音

全双工 半双工

全双工指在发送数据的同时也能够接收数据,两者同步进行。目前的网卡一般都支持全双工。

半双工:数据可以在一个信号载体的的两个方向上传输,但是不能同时传输。

c++ 继承

类的继承后方法属性变化:

private 属性不能够被继承。

  • 使用private继承,父类的protected和public属性在子类中变为private;

  • 使用protected继承,父类的protected和public属性在子类中变为protected;

  • 使用public继承,父类中的protected和public属性不发生改变;

private, public, protected 访问标号的访问范围:

private:只能由1.该类中的函数、2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。

protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。

public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问

全概率 贝叶斯

如果事件组B1,B2,…. 满足

  1. B1,B2….两两互斥,即 Bi ∩ Bj = ∅ ,i≠j , i,j=1,2,….,且P(Bi)>0,i=1,2,….;
  2. B1∪B2∪….=Ω ,则称事件组 B1,B2,…是样本空间Ω的一个划分

全概率 : P(A) = P(A|B1)P(B1) + P(A|B2)P(B2)…

贝叶斯 : P(Bi|A)=P(A|Bi)*P(Bi)/P(A)

Spring

AOP: 面向切片编程

将无关业务,但又被频繁用到的方法,封装起来,通过xml配置,调用。

IOC 控制反转:

当调用其他类的方法,不需要new一个实例,通过配置,由注射器控制类来进行依赖注入(DI),

mongo

优点

  1. 弱一致性
  2. 内置gridfs
  3. 文档类型存储
  4. 效率高

缺点:

  1. 不支持事务
  2. 内存消耗大

适用:

  1. 基于文档存储,json存储
  2. 尺寸大,价值低的数据
  3. 频繁插入更新查询的数据
  4. 高伸缩性数据系统,内置mapreduce
  5. 缓存

不适用:

  1. 针对事务
  2. 需要SQL