计算机面试基础
文章平均质量分 75
介绍计算机基础面试知识,包括计算机网络,操作系统,编程语言等
fesng
CSDN年度博客之星和博客专家,毕业长期在一线互联网专注于Android开发以及Android漏洞挖掘研究。
展开
-
Http的1.0和1.1以及2.0的区别详解
Http的1.0问题1:短连接http是基于Tcp协议的,由于是短连接,每个http的;连接和断开都会对应Tcp的3次握手,慢启动连接和四次挥手断开。(通过设置Connection: keep-alive可以解决)问题2:阻塞客户端同时发起的请求数目是固定的,如果太多就会排队阻塞。Http 1.1的优化优化1:长连接一个Tcp连接通道可以并行多个http的请求和关闭。但是服务端还是客户端请求的先后顺序并且处理的。所以服务器依然会阻塞。优化2:缓存优化缓存处理,在HTTP1.0中主要使用he原创 2020-09-10 01:06:48 · 1891 阅读 · 0 评论 -
Https详解
Http的缺陷1.加密性2.完整性3.冒充攻击Https的过程1.客户端发送版本号,支持的摘要算法,加密算法和随机串1给服务端2.服务端返回选定的摘要算法和加密算法,以及申请的证书,加密的公钥和随机串2.如果需要双向校验也需要客户端发送自己的证书。3.客户端生成随机串3,并且把随机串3及其摘要用公钥加密发给服务端。4.服务端解密之后,通过摘要确认完整性。然后双端分别用随机串1,2,3生成对称秘钥。服务端使用对称秘钥加密一段信息和摘要发给客户端。5、客户端收到解密之后,确认完整性之后,可以通原创 2020-09-09 02:49:08 · 848 阅读 · 0 评论 -
Http Post和Get方法的区别
1.使用场景不同get,post,put,delete,分别对应对资源的查,改,增,删,另外其余方法的含义:OPTIONS 返回服务器支持的 HTTP 方法。CONNECT 把请求连接转换到透明的 TCP/IP 通道。HEAD 与 GET 相同,但只返回 HTTP 报头,不返回文档主体。2.幂等性不一样。幂等是一个数学概念,幂等每次操作的结果一样。get是幂等的,资源没有改变。post对应修改操作,所以post不是幂等的。所以相应的:3.get能缓存和收藏,以及后退/刷新无影响,post原创 2020-09-09 00:02:51 · 463 阅读 · 0 评论 -
2019年推荐的技术书单
包括再次看的和首次看的书,很多书多次看收获很大,温故而知新,比如《重构》。摘录基本觉得不错的书1.《Android开发艺术探索》2.《Android 源码设计模式解析与实战》3.Android软件安全与逆向分析4.深入理解java虚拟机5.《重构》6.《Android插件化开发指南》7.《计算广告》...原创 2019-12-31 01:50:43 · 612 阅读 · 0 评论 -
程序员面试考察的5个方面
面试时程序员绕不过去的话题,我的理解是具体分为如下5个方面:1.基本功正所谓美团说的基本功,程序员面试的基本功,每个人的理解不一样。但无外乎几个方面:编程语言+数据结构+算法+平台编程经验。平台编程经验举个例子是你用java,你能够在后端框架写程序还是能够移动端开发安卓。编码规范编码规范不是背一下就行了,背后体现的是项目经验的积累,如何写出高质量的代码,比如编写的代码稳定,可靠,满足安全...原创 2019-12-26 00:28:23 · 2354 阅读 · 1 评论 -
linux的重定向管道详解
重定向标准 I/OLinux shell(比如 Bash)接收或发送序列和字符串流 形式的输入或输出。每个字符都独立于与之相邻的字符。字符没有被组织成结构化记录或固定大小的块。不管实际的字符串流进入或来自文件、键盘、显示窗口或其他 I/O 设备,都使用文件 I/O 技术来访问流。Linux shell 使用 3 种标准的 I/O 流,每种流都与一个文件描述符相关联: stdout 是标准输出流,它原创 2017-02-23 19:02:37 · 1862 阅读 · 0 评论 -
ubuntu设置swap(交换内存)
ubuntu设置swap(交换内存)1.首先用命令free查看系统内Swap 分区大小 total used free shared buffers cache Mem: 1002 964 38 0 21 410 -/+ buffers/cache: 532 470 Swap: 1024 24 10002.添加swap文件mkdir swapcd swapsu原创 2017-02-23 16:20:56 · 11966 阅读 · 3 评论 -
论文写作技巧-三线表,文献引用,页眉页脚
对于论文来说,最常见的表格形式就是三线表,清晰明了。由于我是在linux下,不支持Word,所以我用WPS for Linux来演示。三线表的制作1.选中表格,右键 2.选中边框和底纹 3.如图先选择,无,去除边框,然后再点击添加 4.第一行添加边框,只是选中第一行既可。页眉和页脚1.点击章节菜单,选择页眉和页脚如下图: 2.设置首页不同和奇偶页不同,如下图: 引用1.生成引用原创 2017-01-08 22:34:44 · 2532 阅读 · 0 评论 -
ubuntu挂载的NTFS文件编译失败问题
错误:编译Android源代码时候出现,权限拒绝的错误 解决方法:sudo apt-get install ntfs-configsudo ntfs-config我的微信二维码如下,欢迎交流讨论欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧微信订阅号二维码如下:原创 2016-11-22 17:16:00 · 1383 阅读 · 0 评论 -
下载Android源代码编译错误总结
错误1:prebuilts/sdk/api/18.txt:22055: error 9: Removed public method android.telephony.gsm.SmsMessage.calculateLength(或者其他的类似错误)解决方法:1.http://blog.csdn.net/lpjishu/article/details/53256914 2.make updat原创 2016-11-21 18:08:54 · 2525 阅读 · 0 评论 -
openJdk和sun Jdk区别和安装
openJdk和sun jdk的区别使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK,那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,OpenJDK是JDK的开放原始码版本,以GPL(General Public License)协议的形式放出(题主提到的open就是指的开源)。在JDK7的原创 2016-11-21 15:43:32 · 6195 阅读 · 0 评论 -
ubuntu切换java版本
众所周知,ubuntu经常需要安装不同的java版本,他们之间的切换就是一个很大的问题1.Chose another Java loader:sudo update-alternatives –config java2.Chose another compiler (this is what you need):sudo update-alternatives –config javac3.Chos原创 2016-11-21 10:29:58 · 9580 阅读 · 2 评论 -
Java泛型详解
由于博客的特殊显示原因,尖括号用()代替泛型概述Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。优缺点从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明显的错误。而从不好...原创 2016-09-25 23:43:15 · 5761 阅读 · 1 评论 -
Java程序员的必备知识-类加载机制详解
类加载器的概念类加载器是一个用来加载类文件的类。Java源代码通过javac编译器编译成类文件。然后JVM来执行类文件中的字节码来执行程序。类加载器负责加载文件系统、网络或其他来源的类文件。JVM中类加载器的树状层次结构Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的。引导类加载器(bootstrap class loader):它用来加载 Ja原创 2016-09-25 21:31:40 · 2364 阅读 · 0 评论 -
ceil和floor函数的编程实践
ceil()向上取整floor向下取整题目在最近几场魔兽争霸赛中,赫柏对自己的表现都不满意。 为了尽快提升战力,赫柏来到了雷鸣交易行并找到了幻兽师格丽,打算让格丽为自己的七阶幻兽升星。 经过漫长的等待以后,幻兽顺利升到了满星,赫柏很满意,打算给格丽一些小费。赫柏给小费是有原则的:1.最终给格丽的钱必须是5的倍数; 2.小费必须占最终支付费用的5%~10%之间(包含边界)。升星总共耗费A魔卡,赫原创 2016-09-19 11:04:42 · 1369 阅读 · 0 评论 -
程序员易混淆的10个基础概念
1.java初始化过程:初始化父类中的静态成员变量和静态代码块 ; 初始化子类中的静态成员变量和静态代码块 ; 3.初始化父类的普通成员变量和代码块,再执行父类的构造方法;4.初始化子类的普通成员变量和代码块,再执行子类的构造方法; 2.instance是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例3.linux的启动过程文件/sbin/init在核心完整原创 2016-09-19 10:46:13 · 2042 阅读 · 1 评论 -
计算机9个基础知识点
1.编译型语言和解释型语言的区别编译型语言:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的。编译程序将源程序翻译成目标程序后保存在另一个文件原创 2016-09-08 21:37:36 · 2479 阅读 · 0 评论 -
最大流问题
举例描述最大流问题是一个很经典的问题,很多人对此也很熟悉,它能够等同于一个线性规划问题。下面给出最大流问题的一个基本描述:如下图所示,s是源点,t为汇点,每条边上数字的含义是边能够允许流过的最大流量。可以将边看成管道,0/3代表该管道每秒最多能通过3个单位的流量,0代表当前流量。最大流问题即是说,从s点到t点,最大允许流量是多少?公式描述 的流量等于流出该点的流量。这个可以理解为流量守恒,就如同电原创 2016-09-06 16:45:15 · 6756 阅读 · 0 评论 -
二叉树的性质
二叉树概述在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。性质概述二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树原创 2016-09-06 11:10:23 · 1826 阅读 · 2 评论 -
哈夫曼树和哈夫曼编码
哈夫曼树给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。基本概念哈夫曼树(霍夫曼树)又称为最优树.1、路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点原创 2016-09-04 11:56:45 · 1896 阅读 · 0 评论 -
操作系统基础(一)
操作系统把CPU的时间片分配给用户进程,再由用户进程的管理器将时间分配给用户线程。那么,用户进程能得到的时间片即为所有用户线程共享虚拟存储器的最大容量 = min(内存+外存,2^n)。n为计算机的地址总线位数。1.多道批处理 系统在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。 在多道批处理系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“原创 2016-09-04 02:31:22 · 1403 阅读 · 0 评论 -
计算机网络基础(三)
arp协议:1,ARP协议和RARP协议是作用于数据链路层的,ARP协议的作用是将IP地址转换为物理地址,它的工作原理是,将ARP请求报文广播到所在网络上的所有主机,报文中含有目的主机的IP地址,只有目标主机可以返回一个ARP应答报文,报文中含有该主机的物理地址。2,网络层的协议是IP协议和ICMP协议。3,传输层的协议是TCP和UDP。4.arp属于网络层TCP三次握手SYN_SENT是客户端发送原创 2016-09-04 01:15:19 · 1232 阅读 · 0 评论 -
计算机网络基础(二)
OSI的基本协议物理层:RJ45 、 CLOCK 、 IEEE802.3 (中继器,集线器,网关) - 数据链路:PPP 、 FR 、 HDLC 、 VLAN 、 MAC (网桥,交换机) - 网络层:IP 、 ICMP 、 ARP 、 RARP 、 OSPF 、 IPX 、 RIP 、 IGRP 、 (路由器) - 传输层:TCP 、 UDP 、 SPX - 会话层: NFS 、 SQL 、 NE原创 2016-09-04 00:43:45 · 1263 阅读 · 0 评论 -
加密算法-RSA
RSA概述RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。原创 2016-09-03 23:52:02 · 1883 阅读 · 0 评论 -
网络基础概念(一)
NAT:NAT(Network Address Translation,网络地址转换)。 NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。 通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭 NAT不仅能解决了lP地址不足的问题,而且还原创 2016-09-03 23:09:13 · 1679 阅读 · 0 评论 -
HashMap方法介绍
1. Map的遍历方式(1) for each map.entrySet()Map<String, String> map = new HashMap<String, String>();for (Entry<String, String> entry : map.entrySet()) { entry.getKey(); entry.getValue();}(2) 显示调用m原创 2016-09-02 15:36:09 · 2110 阅读 · 0 评论 -
Collections类解析
最常用的排序:需要实现Comparable接口1.什么是Comparable接口此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比原创 2016-09-02 15:16:09 · 1155 阅读 · 0 评论 -
路由算法总结
概述通信子网络源节点和目的节点提供了多条传输路径的可能性。网络节点在收到一个分组后,要确定向下一节点传送的路径,这就是路由选择。考虑的因素在数据报方式中网络节点要为每个分组路由做出选择;而在虚电路方式中,只需在连接建立时确定路由。确定路由选择的策略称路由算法。设计路由算法时要考虑诸多技术要素。首先是路由算法所基于的性能指标,一种是选择最短路由,一种是选择最优路由;其次要考虑通信子网是采用虚电路还是数原创 2016-09-02 14:50:54 · 18834 阅读 · 3 评论 -
OSI七层网络模型
概述:OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。 OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 ;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。 应用层与其它计算机进行通讯的一个应用,它是原创 2016-09-02 12:27:12 · 2483 阅读 · 0 评论 -
IP地址分类
IP地址编址方案:IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用。介绍:Internet上的每台主机(Host)都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet 能够运行的基础。IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段原创 2016-09-01 20:24:31 · 2006 阅读 · 0 评论 -
子网掩码讲解
定义:子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在原创 2016-09-01 20:14:03 · 5144 阅读 · 0 评论 -
面试之路(31)-操作系统之信号量
信号量的定义:为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。信号量是一个特殊的变量,程序对其访问都是原子操作,且原创 2016-05-11 21:48:59 · 5503 阅读 · 0 评论 -
Http的会话跟踪和跨站攻击(xss)
会话跟踪什么是会话?客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话。什么是会话跟踪?会话跟踪指的是对同一个用户对服务器的连续的请求和接受响应的监视。为什么需要会话跟踪?浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是”无状态”的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次的请求需要重新连接,这样就需要判断是否是同一个用户,所以才有原创 2016-03-17 21:05:16 · 3422 阅读 · 1 评论 -
Http的定义及其基本概念介绍
HTTP的特性HTTP构建于TCP/IP协议之上,默认端口号是80 HTTP是无连接无状态的HTTP报文请求报文 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而 HTTP 中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作原创 2016-03-17 21:00:54 · 1867 阅读 · 1 评论 -
TCP的基本概念三次握手,四次挥手
TCP的特性TCP提供一种面向连接的、可靠的字节流服务 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP TCP使用校验和,确认和重传机制来保证可靠传输 TCP使用累积确认 TCP使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制 三次握手与四次挥手所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共原创 2016-03-17 22:50:18 · 2382 阅读 · 1 评论 -
详解MVC,MVP,MVVM
一:mvcmvc结构: 视图(View):用户界面。 控制器(Controller):业务逻辑 模型(Model):数据保存mvc各部分的通信方式mvc互动模式通过 View 接受指令,传递给 Controller。 另一种是直接通过controller接受指令。 mvc的历史MVC 的概念最早出现在二十世纪八十年代的 施乐帕克 实验室中(对,就是那个发明图形用户界面和鼠标的实验室),原创 2016-04-17 22:28:46 · 4623 阅读 · 0 评论 -
面试之路(4)-TCP/IP/HTTP概述
tcp/ip基础知识TCP/IP全称是Transmission Control Protocol/Internet Protocol。IP地址共32位,4字节。IP地址分为两部分:网络标识和主机标识。A类IP地址:第一段为网络标识,剩下三段为主机标识。网络地址最高位必须为零。网络标识长度为7位,主机标识长度为24位。A类网络的主机数最多可以达到1600多台。B类IP地址:第一、二段位网络标识,第三、原创 2016-04-20 00:26:06 · 6203 阅读 · 0 评论 -
操作系统内存详解
本文主要参考两篇博客,读后整理出来,以供大家阅读,链接如下:http://blog.jobbole.com/95499/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io http://blog.xiaohansong.com/2015/10/05/Linux%E5%86%85%E5%AD%98%E5%AF...原创 2016-04-25 23:13:41 · 12029 阅读 · 0 评论 -
【12】-进程和线程定义,概念,区别详解
进程的定义及基本概念:狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。组成进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程原创 2016-04-29 18:31:57 · 10619 阅读 · 0 评论