![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面经
weijinqian0
邮件:1184188277@qq.com
展开
-
进程间通讯(IPC)方法主要有以下几种
进程间通讯(IPC)方法主要有以下几种: 管道/FIFO/共享内存/消息队列/信号1.管道中还有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式2.消息队列是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从转载 2016-08-27 10:49:08 · 574 阅读 · 0 评论 -
TCP报文格式
TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、可靠的、基于字节流的传输层协议TCP报文格式:源端口号(2字节): d5 df(54751)目的端口号(2字节): 22 b8(8888)TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接序号(4字节):转载 2016-08-25 15:28:30 · 373 阅读 · 0 评论 -
TCP三次握手四次挥手过程详解
TCP头部: 其中 ACK SYN 序号 这三个部分在以下会用到,它们的介绍也在下面。暂时需要的信息有:ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接转载 2016-08-25 15:31:40 · 267 阅读 · 0 评论 -
TCP的拥塞控制
1.引言 计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。 拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。2.慢开始与拥塞避免转载 2016-08-25 15:36:28 · 212 阅读 · 0 评论 -
TCP滑动窗口与回退N针协议
滑动窗口协议 1.发送端和接收端分别设定发送窗口和接收窗口。 2.三次握手的时候,客户端把自己的缓冲区大小也就是窗口大小发送给服务器,服务器回应是也将窗口大小发送给客户端,服务器客户端都知道了彼此的窗口大小。 3.比如主机A的发送窗口大小为5,主机A可以向主机B发送5个单元,如果B缓冲区满了,A就要等待B确认才能继续发送数据。 4.如果缓冲区中有1个报文被进程读取,主机B就会转载 2016-08-25 15:40:00 · 4928 阅读 · 0 评论 -
HTTP协议的报文结构
HTTP 有两类报文:(1) 请求报文----从客户向服务器发送请求报文,见图6-12(a).(2) 响应报文----从服务器到客户的回答,见图6-12(b).由于 HTTP是面向文本的(text-oriented),因此在报文中的每一个字段都是一些ASCII码串,因而每个字段的长度都是不确定的。HTTP请求报文和响应报文都是由三个部分组成。可以看出,这两种报文格式转载 2016-08-25 15:49:33 · 533 阅读 · 0 评论 -
http1.0和http1.1的区别
一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访转载 2016-08-25 16:15:11 · 320 阅读 · 0 评论 -
HTTP Session和Cookie工作原理
session的工作原理 术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。有时候我们可以转载 2016-08-25 16:30:36 · 262 阅读 · 0 评论 -
牛客上的面经
2016校招,Android开发,一个非重本应届生的坎坷求职路 和大多数的面经不同,我不是大牛,手头也没有3,4个 sp 的 offer 求比较,我只是一个非211,985的本科应届毕业生,想分享一下自己坎坷的求职历程,来给更多求职路上迷茫的应届生一些鼓励,特别是本科应届生。另外还要特别感谢北邮信安研二的赵翔,研三信安的吴博还有清华的金辉,虽然只是做了短短一两个月的同事,但是在之后一直尽转载 2016-08-13 15:00:09 · 4435 阅读 · 0 评论 -
线程池工作机制和原理
书接上文,Java线程池。 接下来记录一下线程池的工作机制和原理线程池的两个核心队列: - 线程等待池,即线程队列BlockingQueue。 - 任务处理池(PoolWorker),即正在工作的Thread列表(HashSet)。线程池的核心参数: - 核心池大小(corePoolSize),即固定大小,设定好之后,线程池的稳定峰值,达到这个值之后池的线程数大小不转载 2017-04-16 16:29:01 · 582 阅读 · 0 评论 -
产生死锁的原因和必要条件+解决死锁的基本方法
死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。 产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当产生死锁转载 2016-08-25 12:21:20 · 274 阅读 · 0 评论 -
虚拟地址,逻辑地址,线性地址,物理地址有什么区别
虚拟地址是由程序产生的由段选择符和段内偏移地址组成的地址。这两部分组成的地址并没有直接访问物理内存,而是要通过分段地址的变换处理后才会对应到相应的物理内存地址。逻辑地址指由程序产生的段内偏移地址。有时把逻辑地址当成虚拟地址,两者并没有明确的界限。线性地址是指虚拟地址到物理地址变换的中间层, 是处理器可寻址的内存空间(称为线性地址空间)中的地址。程序代码会产生逻辑地址,或者说段中的偏移地转载 2016-08-27 10:52:40 · 2293 阅读 · 0 评论 -
堆排序代码
#include#include #include "math.h"using namespacestd;void HeapAdjust( vectorint> &a,int i,int size) //调整堆{ int lchild=2*i; //i的左孩子节点序号 int rchild=2*i+1;原创 2016-08-17 19:58:21 · 453 阅读 · 0 评论 -
super()和this()的区别和用法
1)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。2)super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。 3)super()和this()均需放在构造方法内第一行。 4)尽管转载 2016-09-11 09:31:25 · 302 阅读 · 0 评论 -
有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally转载 2016-08-24 15:03:31 · 255 阅读 · 0 评论 -
生产者与消费者模式
本文是在搜集网络上的相关知识的基础上实现的虽然生产者-消费者模式能够将生产者和消费者的代码彼此解耦开来,但它们的行为仍然会通过共享工作队列间接滴耦合在一起。开发人员总会假设消费者处理工作的速率能够赶上生产者生产工作项的速率。在类库中存在BlockingQueue的多种实现,其中,LinkedBlockingQueue和ArrayBlockingQueue是FIFO队列。Priori原创 2016-08-24 16:36:36 · 357 阅读 · 0 评论 -
12种泛型面试题
1. Java中的泛型是什么 ? 使用泛型的好处是什么?这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人都知道,在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现ClassCastExcep转载 2016-08-25 09:56:59 · 1254 阅读 · 0 评论 -
Java反射的运用
JAVA 反射的应用还是比较多,这里会对反射的一些原理进行介绍,然后我们才知道如何使用和优化。至 于反射的使用介绍,这里就不在过多叙述了,API 上都介绍得有。 要了解JAVA 反射的原理,我们还得对类在虚拟机中的一些知识做简要介绍... 一、类文件的结构: 1.1 虚拟机加载Class文件过程: 在JVM 类加载机制的博原创 2016-08-25 10:15:03 · 810 阅读 · 0 评论 -
反射的原理
一 反射机制的概念:指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法.这种动态获取信息,以及动态调用对象方法的功能叫java语言的反射机制.二 反射机制的应用:生成动态代理,面向切片编程(在调用方法的前后各加栈帧).三 反射机制的原理:1 首先明确的概念: 一切皆对象----类也是对象.2 然后知道类中的转载 2016-08-25 10:22:41 · 408 阅读 · 0 评论 -
线程和进程的区别
1、线程的基本概念 概念:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。 好处 :(1)易于调度。 (2)提高并发性。通过转载 2016-08-25 11:11:28 · 211 阅读 · 0 评论 -
HTTP断点续传
要实现断点续传的功能,通常都需要客户端记录下当前的下载进度,并在需要续传的时候通知服务端本次需要下载的内容片段。HTTP1.1协议(RFC2616)中定义了断点续传相关的HTTP头 Range和Content-Range字段,一个最简单的断点续传实现大概如下: 1.客户端下载一个1024K的文件,已经下载了其中512K 2. 网络中断,客户端请求续传,因此需要在HTTP头中转载 2017-08-17 19:56:04 · 382 阅读 · 0 评论