百度2015校园招聘软件开发笔试题及答案

2023-05-16

简单题(本题共30分)

请简述Tcp-ip的3次握手以及4次挥手过程?并解释为何关闭连接需要4次挥手(10分)

详细答案参见TCP/IP协议三次握手与四次握手流程解析

  1. TCP三次握手、四次挥手过程如下:

    TCP三次握手与四次挥手过程

    通常情况下,一个正常的TCP连接,都会有三个阶段:1、TCP三次握手; 2、数据传送; 3、TCP四次挥手

    • SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
    • ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
    • FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。
  2. 四次挥手的原因:

    这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。

  3. 不能两次握手连接的原因:

    3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。

    现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

  4. SYN攻击

    在三次握手过程中,服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称为半连接(half-open connect).此时服务器处于Syn_RECV状态.当收到ACK后,服务器转入ESTABLISHED状态.

    Syn攻击就是 攻击客户端 在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直 至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

    Syn攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击.在Linux下可以如下命令检测是否被Syn攻击

    netstat -n -p TCP | grep SYN_RECV

    一般较新的TCP/IP协议栈都对这一过程进行修正来防范Syn攻击,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等.但是不能完全防范syn攻击。

  5. 2MSL TIME_WAIT状态

    TCP四次挥手
    TIME_WAIT状态的存在有两个理由:(1)让4次握手关闭流程更加可靠;4次握手的最后一个ACK是是由主动关闭方发送出去的,若这个ACK丢失,被动关闭方会再次发一个FIN过来。若主动关闭方能够保持一个2MSL的TIME_WAIT状态,则有更大的机会让丢失的ACK被再次发送出去。(2)防止lost duplicate对后续新建正常链接的传输造成破坏。lost duplicate在实际的网络中非常常见,经常是由于路由器产生故障,路径无法收敛,导致一个packet在路由器A,B,C之间做类似死循环的跳转。IP头部有个TTL,限制了一个包在网络中的最大跳数,因此这个包有两种命运,要么最后TTL变为0,在网络中消失;要么TTL在变为0之前路由器路径收敛,它凭借剩余的TTL跳数终于到达目的地。但非常可惜的是TCP通过超时重传机制在早些时候发送了一个跟它一模一样的包,并先于它达到了目的地,因此它的命运也就注定被TCP协议栈抛弃。另外一个概念叫做incarnation connection,指跟上次的socket pair一摸一样的新连接,叫做incarnation of previous connection。lost duplicate加上incarnation connection,则会对我们的传输造成致命的错误。大家都知道TCP是流式的,所有包到达的顺序是不一致的,依靠序列号由TCP协议栈做顺序的拼接;假设一个incarnation connection这时收到的seq=1000, 来了一个lost duplicate为seq=1000, len=1000, 则tcp认为这个lost duplicate合法,并存放入了receive buffer,导致传输出现错误。通过一个2MSL TIME_WAIT状态,确保所有的lost duplicate都会消失掉,避免对新连接造成错误。

    该状态为什么设计在主动关闭这一方:
    (1)发最后ack的是主动关闭一方
    (2)只要有一方保持TIME_WAIT状态,就能起到避免incarnation connection在2MSL内的重新建立,不需要两方都有

    如何正确对待2MSL TIME_WAIT

    RFC要求socket pair在处于TIME_WAIT时,不能再起一个incarnation connection。但绝大部分TCP实现,强加了更为严格的限制。在2MSL等待期间,socket中使用的本地端口在默认情况下不能再被使用。若A 10.234.5.5:1234和B 10.55.55.60:6666建立了连接,A主动关闭,那么在A端只要port为1234,无论对方的port和ip是什么,都不允许再起服务。显而易见这是比RFC更为严格的限制,RFC仅仅是要求socket pair不一致,而实现当中只要这个port处于TIME_WAIT,就不允许起连接。这个限制对主动打开方来说是无所谓的,因为一般用的是临时端口;但对于被动打开方,一般是server,就悲剧了,因为server一般是熟知端口。比如http,一般端口是80,不可能允许这个服务在2MSL内不能起来。解决方案是给服务器的socket设置SO_REUSEADDR选项,这样的话就算熟知端口处于TIME_WAIT状态,在这个端口上依旧可以将服务启动。当然,虽然有了SO_REUSEADDR选项,但sockt pair这个限制依旧存在。比如上面的例子,A通过SO_REUSEADDR选项依旧在1234端口上起了监听,但这时我们若是从B通过6666端口去连它,TCP协议会告诉我们连接失败,原因为Address already in use.

操作系统的内存管理淘汰算法有哪些,请列出并简要说明?(10分)

进程运行时,若其访问的页面不在内存而需将其调入,但内存已无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的兑换区。选择调出页面的算法就称为页面置换算法。好的页面置换算法应有较低的页面更换频率。

  • 最佳(OPT)置换算法是理论算法,它将不再使用的页面换出,而实际中不能预知哪个页面不再使用,但是这个算法是最优算法,可以作为评测其他算法的性能。
  • 先进先出(FIFO)置换算法优先淘汰最先进入内存中的页面。该算法实现简单,但算法跟内存的实际运行规律不符,不管该页面是否经常使用,这样就有可能导致缺页率增加,导致页面置换次数增加。
  • 最近最少(LRU:least recently used)使用置换算法当需要淘汰某页,选择离当前时间最近的一段时间内最久没有使用过的页先淘汰。在这里采用一个页面集大小的栈存储最近访问的页面。页面按时间顺序压如栈中。如果被访问的页在栈中,则从栈中移出页面,压入栈顶。这样栈底记录离当前时间最近的一段时间内最久没有使用过的页。
  • 最不经常使用(LFU:least frequently used)置换算法 LFU在需要淘汰某一页时,首先淘汰到当前时间为止、被访问次数最少的那一页。这只要在页面集中给每一页增设一个访问计数器即可实现。每当该页被访问时,访问计数器加1,而发生一次缺页中断时,则淘汰计数值最小的那一页,并将所有的计数器清零。
  • 最近最不经常使用(NRU:not recently used)算法 NRU在需要淘汰某一页时,从那些最近一个时期内未被访问的页中任选一页淘汰。只要在页表中增设一个访问位即可实现。当某页被访问时,访问位置1。否则,访问位置0。系统周期性地对所有引用位清零。当需淘汰一页时,从那些访问位为零的页中选一页进行淘汰。如果引用位全0或全1,NRU算法退化为FIFO算法。

详解可参照:操作系统内存管理淘汰算法的实现 和 内存管理的页面置换算法有哪些

进行数据库设计时通常需要遵守哪些范式,请列举并说明?(10分)

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,还又称完美范式)。

  • 第一范式 所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。
  • 第二范式要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。
  • 第三范式 在1NF基础上,任何非主属性不依赖于其它非主属性[在2NF基础上消除传递依赖]

详细讲解参见数据库范式

算法与程序设计题(本题共45分)

寻找一个简单链表的中项,如果存在两个则返回前一个.请给出算法描述并给出代码(15分)

分析:可以借助于两个指针,快慢指针,快指针一次走两步,慢指针一次走一步,当快指针走到尾端时,慢指针即指向中项位置。空间复杂度为0(1)时间复杂度为O(n).

struct ListNode
{
    struct ListNode *next;
    int key;
};

ListNode* getMID(ListNode* head)
{
    if (NULL == head)return NULL;
    ListNode *first = head;
    ListNode *second = head;
    while(NULL != second->next)
    {
        if(NULL == second->next->next)break;
        first = first->next;
        second = second->next->next;
    }
    return first;
}

拓展:借助快慢指针,可以判断单向链表中是否有环,依据就是如果有环,快指针与慢指针总会相遇

在由N个正数的集合S中:找出最大元素C,满足C=A+B,其中A,B都是集合S中元素.请给出算法描述、代码与时间复杂度分析(15分)

算法步骤:

  1. 首先对集合进行排序,从小到大排序,可以选择排序算法较快的快速|归并|堆排序, nlog(n) 复杂度
  2. 找最大满足条件的元素C。两层循环,外层循环从大到小依次寻找C。内层循环,分别从头尾向中间寻找元素A B,是的 C = A + B,找到后即跳出两层循环。时间复杂度 O(n2)

程序复杂度为 O(n2)

int FindSum(int A[],int n){
    sort(A,A+n);

    int left,right,sum;

    for(int i = n - 1;i >= 2;--i){
        left = 0,right = i - 1;

        while(left < right){
            sum = A[left] + A[right];
            if(sum == A[i]){
                return A[i];
            }
            else if(sum > A[i]){
                --right;
            }
            else{
                ++left;
            }
        }
    }
    return -1;
}

使用堆栈(Stack)来模拟队列(FIFO)功能,要求数据必须存储在堆栈内部.需要实现enqueue(入栈),dequeue(出栈),isEmpty(判空)三个功能,并给出单元测试.(15分)

思路:两个堆栈实现队列
s1为入栈的,s2为出栈的
1. 入队列:直接压入s1即可
2. 出队列:如果s2不为空,把s2中的栈顶元素直接弹出;否则,把s1的所有元素全部弹出压入s2中,再弹出s2的栈顶元素.

stack<int> A;
stack<int> B;
//入队
void enqueue(int value[],int len)
{
    for (int i = 0; i < len; i++)
    {
        A.push(value[i]);
    }
    if (B.empty())
    {
        while(!A.empty())
        {
            B.push(A.top());
            A.pop();
        }
    }
}
出队
void dequeue()
{
    while(!B.empty())
    {
        B.pop();
        //其他操作
    }    
    while(!A.empty())
    {
        B.push(A.top());
        A.pop();
    }
    while(!B.empty())
    {
        B.pop();
        //其他操作
    }
}
//判断是否为空
bool isEmpty()
{
     return (A.empty() && B.empty());
}

拓展:通过队列实现栈

两个队列A与B,两个队列指针,指针qQueue指向一个非空队列(当然如果A、B都是空的话,指向其一),指针tmp始终指向另外一个空队列
1. 入栈: 直接进入qQueue指向的队列;
2. 出栈: qQueue指向的队列是否为空,非空时,将其指向的队列数据移动pop到tmp指向的队列,获取最后一个数据即可,交换qQueue与tmp。

详细讲解参见两个栈实现队列 两个队列实现栈

系统设计题(本题共25分)

手机推送服务设计,在各个手机端应用都有一定的云控制能力,可以再某些情况下云端发送各种数据或者命令道手机端,例如发送一个强制升级的命令或者手机app配置变换的数据包,以及发送一个信息给特定人群(某个地区)
请设计一个以长链接为主的云端控制服务,为了聚焦主要问题,可以忽略掉低速手机网络(例如:2g网络)手机终端等因素\用户登录的需求.服务需要承担定向、定量的推送需求,在设计中要尽量高的吞吐能力和容错能力。
需要完成
a)基本的模块视图
b)链接管理主要设计思路。单台机器承担更多链接,但是链接多了后管理链接(链接中断、链接查找)都会出现性能瓶颈,请尝试给出思路。
c)尝试给出提高容错能力(避免因为某台物理机器或者某个机器上的程序挂掉导致整个系统不可用)的思路

后续分析…

参考:

  • http://www.cnblogs.com/newpanderking/p/3972280.html
  • 深入浅出TCP协议的2MSL TIME_WAIT状态
  • Linux中TCP连接过程简介
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

百度2015校园招聘软件开发笔试题及答案 的相关文章

  • Visual Studio 2017/2015远程调试Linux程序(opencv)

    liu
  • 面试经历---YY欢聚时代(2015年11月21日上午初试、25日下午复试)

    YY欢聚时代一年多前去面试过一次 xff0c 当时鄙视了 xff0c 在现在的公司呆了1年半了 xff0c 感觉做得很不爽 xff0c 而且薪资又不满意 xff0c 所以想找个新工作 xff0c 就想去YY面试 下面将两次YY面试的经历写出
  • MySQL DataSource 性能对比(2015-8-19)

    1 本地性能测试耗时 xff08 一 xff09 共同条件 xff1a 测试程序与数据库在同一台主机上 xff0c 各DataSource均采用默认配置 xff0c 每个线程循环1000次 xff0c 查询语句为select from ta
  • vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序

    安装 Visual Studio 2015 安装时注意将跨平台移动开发 gt Visual C 43 43 移动开发 gt Viaual C 43 43 Android 开发的选项勾上 安装PUTTY Visual Studio依赖putt
  • 我的2014作的一手好死,2015求轻虐

    真的好想上来开头就写 新的一年 xff0c 全新的自己 xff0c 但是这样自欺欺人的话我还是别说了 xff0c 省得一大批损友又来吐嘈我 2015年希望找到自己的另一半这样的话我也不想再提了 xff0c 因为这样写了两年 依旧单身 xff
  • 2015-2016 ACM-ICPC Pacific Northwest Regional Contest Div.2( Problem V Gears)

    题目地址 xff1a 点击打开链接 题意 xff1a 给你很多齿轮 xff0c 让你判断第一个齿轮和第n个齿轮的关系 有三种关系题目中已经给出 解题思路 xff1a 算是比较直观的一个dfs题目了 xff0c 重点是怎么样处理这个dfs 结
  • VS 2015运行报错

    VS 2015运行报错 xff1a L N K 1104 无法打开文件 kernel 32 lib xff0c L N K 1158 xff1a 无法运行 34 r c e x e xff0c L N K 156 必须定义入口点 34 的问
  • 高等工程数学期末试题2015

    华中师范大学计算机学院 高等工程数学往年试题
  • Luogu 2146 [NOI 2015] 软件包管理器

    传送门思路参考代码 传送门 思路 唉 xff0c 我太弱了 xff0c 什么都不会 xff0c 好不容易遇到一道傻逼题 xff0c 又出了个傻逼错误 xff0c 爆得只剩 30 30 分了 唉 xff0c 我太弱啦 xff01 显然 xff
  • 再见2014,你好2015

    过去就是过去了 2014年再见 xff0c 2015年你好 xff01 回首 总结也只是慰藉 1999年12月至今 xff0c 经历了整整十五个曾经 xff0c 这其中的波折 xff0c 怎是我这样的小辈能够理解的 借这个平台也只是为了感谢
  • 2015考研数学复习全书【数一】

    2015考研数学复习全书 数一 链接 https pan baidu com s 1nuXM0fINXRKCYbyy o kSg 提取码 vr45 复制这段内容后打开百度网盘手机App xff0c 操作更方便哦
  • 我的2014作的一手好死,2015求轻虐

    真的好想上来开头就写 新的一年 xff0c 全新的自己 xff0c 但是这样自欺欺人的话我还是别说了 xff0c 省得一大批损友又来吐嘈我 2015年希望找到自己的另一半这样的话我也不想再提了 xff0c 因为这样写了两年 依旧单身 xff
  • 我的2014作的一手好死,2015求轻虐

    真的好想上来开头就写 新的一年 xff0c 全新的自己 xff0c 但是这样自欺欺人的话我还是别说了 xff0c 省得一大批损友又来吐嘈我 2015年希望找到自己的另一半这样的话我也不想再提了 xff0c 因为这样写了两年 依旧单身 xff
  • 浙江省赛2015 _ L _ ZOJ 3880

    水题 题目 xff1a ZOJ 3880 There is a popular multiplayer online battle arena game called Demacia of the Ancients There are lo
  • 浙江省赛2015 _ G - Lunch Time -> ZOJ - 3875

    水题 这道题比赛当时没有做出来 原因是 ends xff0c C 43 43 对ends的处理是在缓冲区插入 0 然后刷新 xff0c 而不是空格 xff0c 能输出空格是因为Windows对 0 默认的处理方式是输出一个空格 xff0c
  • 面试经历---YY欢聚时代(2015年11月21日上午初试、25日下午复试)

    YY欢聚时代一年多前去面试过一次 xff0c 当时鄙视了 xff0c 在现在的公司呆了1年半了 xff0c 感觉做得很不爽 xff0c 而且薪资又不满意 xff0c 所以想找个新工作 xff0c 就想去YY面试 下面将两次YY面试的经历写出
  • 百度2015校园招聘软件开发笔试题及答案

    简单题 xff08 本题共30分 xff09 请简述Tcp ip的3次握手以及4次挥手过程 xff1f 并解释为何关闭连接需要4次挥手 10分 详细答案参见TCP IP协议三次握手与四次握手流程解析 TCP三次握手 四次挥手过程如下 通常情
  • 【2015-2016,我在路上】

    前言 xff1a 每天 xff0c 每时 xff0c 每分 xff0c 时光的步伐永远不会停止 xff0c 当我提起笔 xff0c 写下的这一瞬间 xff0c 时间又是一年 xff0c 一年的时光 xff0c 在没逝去时 xff0c 感觉很
  • 【2015/IE】Variational Autoencoder based Anomaly Detection using Reconstruction Probability

    原文首发于个人站点 xff1a 基于变分自编码器重构概率的异常检测模型 个人公众号 xff1a DreamHub 文章链接 xff1a Variational Autoencoder based Anomaly Detection usin
  • 再见2015,一个小白领的格调

    当我一直沉默着做事情的时候 时间就像一条脱缰的野狗一样 肆意狂奔 快到让我忘记了买回老家过冬的衣服便放春节了 以至于现在我还满脑子的考虑穿什么过冬 而不是感叹15年已经过完 2015年1月1日 六个小伙伴在吃烤肉 依次诉说各自的新年计划 我

随机推荐

  • 【详细】linux安装weblogic12c-附详细截图

    linux安装weblogic12c目录 环境配置jdk安装创建目录 xff0c 用户 xff0c 组修改hosts文件设置DISPLAY配置防火墙安装weblogic配置weblogic server环境配置nodemanager pro
  • python 中Dict 转 Json

    最近在公司需要写个小工具 xff0c 运用到的python xff0c 然后需要将Dict转成Json 之前遇到转换Json失败 xff0c 然后以为复杂的Entity结构 xff0c 不能用Json的库Json dump xff0c 进行
  • Zabbix监控

    由于本人工作职责的一部分 xff0c 需要用Zabbix监控 xff0c 所以在此贴一下Zabbix监控 实在觉得Zabbix监控做的太牛掰 xff0c 先打Tag xff0c 周末再来补全
  • 看完23岁的我在干嘛之后有感

    现在我已经25岁了 xff0c 先说我23岁的时候吧 xff0c 23岁我在干嘛 xff0c 刚上研究生 xff0c 好像貌似一切都挺顺的 xff0c 考研成功 xff0c 进入北京比较好的一所大学读计算机 xff1b 然后是和前任分手 x
  • Libev源码解析

    最近在看libev源码 xff0c 算是对libev的源码有个比较清晰的了解 总共分3部分来介绍libev 1 Libev是什么 Libev是基于Reactor模式的一个高性能 xff0c 支持高并发的事件库 它本身不仅支持IO xff0c
  • Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面 .相机.录影机....

    Android开发之Intent跳转到系统应用中的拨号界面 联系人界面 短信界面 现在开发中的功能需要直接跳转到拨号 联系人 短信界面等等 xff0c 查找了很多资料 xff0c 自己整理了一下 安装已经存在的apk String file
  • C++ STL中判断list为空,size()==0和empty()有什么区别

    关于两个的区别 xff0c 首先size 61 61 0为bool表达式 xff0c empty 为函数调用 xff0c 这一点很明显 查看源代码 xff0c bool empty const return M node gt M next
  • 安装Intellij,编译第一个android程序出错

    今天安装了最新的Intellij社区最新版 xff0c 安装完成后 xff0c 发现编译第一个android程序 xff0c 出现如下编译错误 Cannot run program 34 D Android platform tools a
  • 【霸指拓客】抖音自动引流脚本源码终端开发

    lt lt 抖音自动引流脚本源码 gt gt auto 等待广告加载 launchApp 34 抖音极速版 34 sleep Math random 100 43 10000 click 34 我知道了 34 sleep 3000 back
  • 关于BeanUtils 那点屌事

    今天出现一个线上bug 我在排查代码的时候 xff0c 两个高开在我身后陪我排查代码 xff0c 慌的一批 xff0c 害怕让他们看见不爽的代码 xff0c 结果还真发现了 xff0c 然后被屌了 xff0c 如下 List lt Stud
  • 爬虫requests使用代理报错Your proxy appears to only use HTTP and not HTTPS...

    python版本 xff1a 3 9 4 requests版本 xff1a 2 28 2 详细报错如下 Max retries exceeded span class token keyword with span url span cla
  • 【网络安全】Kali linux超详细入门教程,Linux初学者勿进

    学习网络安全的同学应该都听过 Kali Linux 的大名 xff0c Kali Linux 相比与普通 Linux 附带了大量入侵和渗透的工具和软件 xff0c 在渗透测试和白帽子方面处于业界领先 正是因为这个原因 xff0c 许多人都会
  • Ubuntu登录管理员账户时,输入密码后一直在登录界面循环

    Ubuntu登录管理员账户时 xff0c 输入密码后 xff0c 一直在登录界面循环 xff0c 进不去系统界面 百度了好久 xff0c 也没有找到解决的办法 xff0c 我只能说百度真够可以的了 果断翻墙Google xff0c 找到不少
  • PreparedStatement和Statement的区别与联系

    一 概念 1 PreparedStatement xff1a PreparedStatement是java sql包下面的一个接口 xff0c 用来执行SQL语句查询 xff0c 通过调用connection preparedStateme
  • C#编程规范

    http www cnblogs com zyh nhy archive 2007 10 11 921250 html 第一章 概述 规范制定原则 1 方便代码的交流和维护 2 不影响编码的效率 xff0c 不与大众习惯冲突 3 使代码更美
  • c++,vc6.0 报错unreferenced local variable

    c 43 43 xff0c vc6 0 报错 unreferenced local variable 原因 xff0c 有的东西没有用到 xff0c 如果真的没有用的话可以直接删掉
  • Servlet学习之生成随机数

    令页面生成一个每五秒产生一个数字的动态图 span class token keyword package span com span class token punctuation span servlet span class toke
  • 程序员也该懂点UI细节

    虽然说项目开发过程中 xff0c 美工和程序各司其职 但是很多时候程序员本身也要知道一些UI设计的细节 一 每个页面的功能上要突出重点 比如说你首页是想引导更多用户注册的话 xff0c 你就要把注册按钮突出出来 如果你首页是你想引导用户更快
  • ftp 客户端软件的传输模式ASCII和二进制

    FTP可用多种格式传输文件 xff0c 通常由系统决定 xff0c 大多数系统 包括UNIX系统 只有两种模式 xff1a 文本模式和二进制模式 文本传输器使用ASCII字符 xff0c 并由回车键和换行符分开 xff0c 而二进制不用转换
  • 百度2015校园招聘软件开发笔试题及答案

    简单题 xff08 本题共30分 xff09 请简述Tcp ip的3次握手以及4次挥手过程 xff1f 并解释为何关闭连接需要4次挥手 10分 详细答案参见TCP IP协议三次握手与四次握手流程解析 TCP三次握手 四次挥手过程如下 通常情