面试随笔
死锁是什么? :
所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程.
产生死锁的条件有四个? :
1.互斥条件:所谓互斥就是进程在某一时间内独占资源。 2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。 4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
如何解决?:要解决死锁,可以从死锁的四个条件出发,只要破坏了一个必要条件,那么我们的死锁就解决了。
红黑树是什么?怎么实现?时间复杂度 ?:
红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。 红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。 除了具备该特性之外,红黑树还包括许多额外的信息。
红黑树的特性: 红黑树是特殊的AVL树,遵循红定理和黑定理 红定理:不能有两个相连的红节点 。黑定理:根节点必须是黑节点,而且所有节点通向NULL的路径上,所经过的黑节点的个数必须相等。
基本操作是添加、删除和旋转。在对红黑树进行添加或删除后,会用到旋转方法。旋转的目的是让树保持红黑树的特性。旋转包括两种:左旋 和 右旋。
红黑树的应用比较广泛,主要是用它来存储有序的数据,它的查找、插入和删除操作的时间复杂度是O(lgn)。
TCP三次握手:
三次握手(three times handshake;three-way handshake)所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。
为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
linux系统,怎么查看某个进程:
ps aux
查看所有进程
ps aux|grep java
查看java进程
ps –ef|grep tomcat
查看所有有关tomcat的进程
ps -ef|grep --color java
高亮要查询的关键字
kill -9 19979
终止线程号位19979的进程
关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
非关系型数据库:NoSql、Cloudant、MongoDb、redis、HBase等
区别: 关系型数据库是采用了二维表格模型来组建数据库。优点是:容易理解,便于使用和维护,支持复杂sql的查询。 缺点是:海量数据读写效率慢,难以横向拓展。
非关系型数据库采用了键值对的形式组建数据库。 优点:效率高,有极高的并发读写性能。 缺点:只能查询存储简单的数据。不能用where字段来查询sql。
相关文章