百世集团2016校园招聘开发工程师笔试试卷

本文深入探讨了从按下电脑电源键到系统启动的硬件与软件交互过程,包括bios检测、硬盘读取和操作系统的加载。同时,阐述了网络协议在不同层面上的作用,如HTTP和FTP的应用层,UDP和TCP的传输层,以及IP的网络层。并通过SQL查询展示了如何从数据库记录中筛选特定信息,以及解释了死锁的概念和实例。此外,文章还介绍了虚拟内存的概念和使用,以及解决单向链表中间节点问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、从按下pc的电源键开始,到屏幕上出现windows的欢迎界面为止,请尝试从计算机软硬件的角度来描述一下这期间分别发生了什么事情?


     

      启动bios检测硬件,正常以后读取硬盘系统盘,启动操作系统,看到页面。
 


2、udp、IP、ftp、tcp、http这五个协议如果从网络分层的角度看的话,哪些协议在上层,哪些协议在下层,哪些协议在同一层?


    http、ftp在同一层,应用层,udp、tcp在同一层,传输层,ip在网络层


    


3、有如下表记录:


   LOGIN:  

IDUSER_IDLastLoginTime
10 10022011/11/25 16:31:26
1310002012/1/22   16:27:07
1910002011/10/25 14:13:46
4210002011/11/20 14:20:10
4510012012/4/25  14:17:39
4910012012/5/25   14:22:36

用一句sql查询出登陆次数超过1次的user_id.


  select  user_id from LOGIN group by user_id having count(user_id)>1;


4、什么是死锁,举一个例子


 死锁: 死锁就是两个或两个以上线程在执行的过程中因争夺资源而处于相互等待的状态。

  

  例子:中国人吃饭用两只筷子,美国人吃饭用一把刀和一把叉子,在中国人有一只筷子和一把刀,美国人有一只筷子和一把叉子,

     中国人要美国人给他一只筷子,美国人要中国人给他一把刀互相等待,谁也没吃成饭。


5、虚拟内存的容量只受(D)的限制

A、物理内存的大小   B、磁盘空间的大小    C、数据存放的实际地址      D、计算机地址位数


6、以下程序输出的结果是什么?

public class MyClass{
String str=new String("hello");
char [] ch={'a','b','c'};
public static void main(String[] args) {
	MyClass cs=new MyClass();
	cs.change(cs.str, cs.ch);
	System.out.print(cs.str+" and ");
	System.out.println(cs.ch);
}

public void change(String str,char ch[]){
	str="test";
	ch[0]='s';
}
}
输出结果:hello and sbc



7、对于一个二叉树,其程序遍历次序是ecdfbagb,中序遍历是dfceabbg,后序遍历次序是什么?



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

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

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


前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。


8、查找单向链表的中间节点,请先用文字描述你的思路,再编程实现。


设立两个指针,一个单步走,一个两步走,当大步指针到达链表尾部的时候,小步指针也正好位于链表中间位置。


Node *findMiddleList(Node *head){
if(null=head||null=head->next){
return head;
}
Node *p1=*p2=head;
while(null!=p1->next&&null!=p2->next->next){
p2=p2->next->next;
p1=p1->next;
}
return p1;
}



9、一个数组有2N+1个1万以内的自然数,其中2N个是两两相等的,还有一个是和其他都不等的。问把那个不同的数求出来,请用文字描述你的思路。


10、已知有甲乙两个人,甲一次性要发很多个数据给乙(都是自然数,比如12,200,7这样),然而甲乙两人之间的通信线路只能发送0到9这十个字符,不能发送其他字符,并且只能发送一次(字符串长度不限),请设计出一个协议,当甲乙都遵守这个协议的时候,乙可以从收到的数据中分析出甲发的原始信息。


资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值