下面是小编帮大家整理的哈尔滨阿里巴巴笔试题,本文共12篇,希望对大家带来帮助,欢迎大家分享。
篇1:阿里巴巴校招笔试哈尔滨站笔试题
阿里巴巴校招笔试哈尔滨站笔试题
1、宿舍内5个同学一起玩对战游戏,每场比赛有一些人作为红方,另一些人作为蓝方。请问至少需要多少场比赛,才能使任意两个人之间有一场红方对蓝方和蓝方对红方的比赛?答案为4场
2、一个有10亿条记录的文本文件,已按照关键字排好序存储,
请设计算法,可以快速的从文件中查找指字关键字的记录。
3. 请描述一下TCP建立连接的三次握手过程
4. 在互联网时代,系统稳定性、可用性要求越来越高,请列举至少4中技术解决硬件、系统、网络等层面的.单点问题。
5. 请设计出一个搜索引擎爬虫的架构图,并说明你设计的爬虫需要如何优化来提升性能。
篇2:哈尔滨阿里巴巴笔试题目
哈尔滨阿里巴巴笔试题目
1. 单选题
1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数
A: h(K)=K/N;
B: h(K)=1;
C: h(K)=K mod N;
D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数
2. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:
A: 堆排序 B:插入排序
C: 冒泡排序 D:快速排序
3. 下面说法错误的是:
A: CISC计算机比RISC计算机指令多
B: 在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间
C:增加流水线段数理论上可以提高CPU频率
D:冯诺依曼体系结构的主要特征是存储程序的工作方式
4. 不属于冯诺依曼体系结构必要组成部分是:
A:CPU B: Cache C:RAM D:ROM
5. 一个栈的入栈序列式ABCDE则不可能的出栈序列是:
A:DECBA B:DCEBA C:ECDBA D:ABCDE
6.你认为可以完成编写一个C语言编译器的语言是:
A:汇编 B:C语言 C:VB D:以上全可以
7. 关于C++/JAVA类中的static成员和对象成员的说法正确的是:
A:static成员变量在对象构造时候生成
B: static成员函数在对象成员函数中无法调用
C: 虚成员函数不可能是static成员函数
D: static成员函数不能访问static成员变量
8:看不清
9:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:
A: 从就绪变为运行 B:从运行变为就绪
C: 从运行变为阻塞 D:从阻塞变为就绪
10:下面算法的时间复杂度为:
Int f(unsigned int n)
{
If(n==0||n==1)
Return 1;
Else
Return n*f(n-1);
}
A: O(1) B:O(n) C:O(N*N) D:O(n!)
11: n从1开始,每个操作可以选择对n加1或者对n加倍,若想获得整数,最少需要多少个操作。
A:18 B:24 C:21 D;不可能
12:对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头节点的数组大小为:
A: n B: n+1 C: n-1 D:n+边数
13:不全
14:如下函数,在32bit系统foo(2^31-3)的值是:
Int foo(int x)
{
Return x&-x;
}
A: 0 B: 1 C:2 D:4
15:对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为:
A: O(n),O(n) B:O(n),O(1) C:O(1),O(n) D:O(n),O(n)
16:在32为系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是:
Struct A
{
Int a;short b;int c;char d;
};
Struct B
{int a;short b;char c;int c;};
A: 16,16 B:13,12 C:16,12 D:11,16
17:袋中有红球,黄球,白球各一个,每次任意取一个放回,如此连续3次,则下列事件中概率是8/9的是:
A: 颜色全相同 B:颜色全不相同C:颜色全相同D:颜色无红色
18:一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是:
A: 每张牌出现在n个位置上的概率相等
B: 每张牌出现在n个位置上的概率独立
C: 任何连续位置上的两张牌的内容独立
D: n张牌的任何两个不同排列出现的概率相等
19:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:
A: 10 B:11 C:14: D:15
20:递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为:
A: O(n) B:O(d) C:O(logn) D:(nlogn)
第二部分:多选
21:两个线程运行在双核机器上,每个线程主线程如下,线程1:x=1;r1=y;线程2:y=1;r2=x;X和y是全局变量,初始为0。以下哪一个是r1和r2的可能值:
A: r1=1,r2=1
B: r1=1,r2=0
C:r1=0,r2=0
D:r1=0,r2=1
22.关于Linux系统的负载,以下表述正确的是:
A: 通过就绪和运行的进程数来反映
B: 通过TOP命令查看
C: 通过uptime查看
D: Load:2.5,1.3,1.1表示系统的负载压力在逐渐变小
23:关于排序算法的以下说法,错误的是:
A: 快速排序的平均时间复杂度O(nlogn),最坏O(N^2)
B:堆排序平均时间复杂度O(nlogn),最坏O(nlogn)
C:冒泡排序平均时间复杂度O(n^2),最坏O(n^2)
D:归并排序的平均时间复杂度O(nlogn),最坏O(n^2)
24:假设函数rand_k会随机返回一个【1,k】之间的随机数(k>=2),并且每个证书出现的概率相等,
目前有rand_7,通过调用rand_7和四则运算符,并适当增加逻辑判断和循环控制逻辑,下列函数可以实现的有:
A:rand_3 B:rand_21 C:rand_23 D:rand_49
3.(6分)两个较长的单向链表a和b,为了找出及诶单noed满足node in a
并且node in b。请设计空间使用尽量小的算法(用c/c++,java 或者伪代码)
答案网上找的
我们定义节点的距离为节点到链表开始所经过的'节点数。如果两个链表长度相同,则相交节点其在两个链表上的距离一定相等。对于长度不同的两个链表,我们可以采用对齐的方式,使其向长度短的链表对齐。这样就可以应用上面的思路。具体算法如下:
struct node
{
int v;
node *next;
};
/*
返回链表的长度
链表为空 返回0
*/
size_t listLen(node * p)
{
size_t num = 0;
while (p!=NULL)
{
num++;
p = p->next;
}
return num;
}
// 如果找到了 则返回指针 指向公共节点
// 如果不存在 则返回空指针
node * findFirstCommenNode(node * pheada, node * pheadb)
{
size_t lenA = listLen(pheada);
size_t lenB = listLen(pheadb);
node * plistA = pheada;
node * plistB = pheadb;
//调整长度
//plistA 指向较长的一个
if (lenA < lenB)
{
plistB = pheada;
plistA = pheadb;
size_t t = lenA;
lenA = lenB;
lenB = t;
}
while(lenA >lenB)
{
plistA = plistA->next;
--lenA;
}
//一样长了
//寻找公共节点
while (plistA!=NULL && plistA != plistB)
{
plistA = plistA->next;
plistB = plistB->next;
}
return plistA;
}
算法的空间复杂度O(1),时间复杂度O(m+n),效果不错吧。
2、当存储数据量超出单节点数据管理能力的时候,可以采用的办法有数据库sharding的解决方案,也就是按照一定的规律把数据分散存储在多个数据管理节点N中(节点编号为0,1,2,,,,N-1)。
假设存储的数据时a 请完成为数据a计算存储节点的程序。
#define N 5
int hash(int element){
return element*2654435761;
}
int shardingIndex(int a){
int p = hash(a);
_________________________; //这里是空格
return p;
}
3、(8分)宿舍内5个同学一起玩对战游戏。每场比赛有一些人作为红方,另一些人作为蓝方。请问至少需要多少场比赛,才能使任意两个人之间有一场红方对蓝方和蓝方对红方的比赛?
4、一个有10亿条记录的文本文件,已按照关键字排好序存储。请设计算法,可以快速的从文件中查找指字关键字的记录
篇3:阿里巴巴笔试题
以下分享的这15道选择题,是阿里巴巴公司招聘人才时,经常考的笔试题,如果感兴趣的朋友,可以收藏和分享此文!
1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?
A、7 B、8 C、9 D、10
2、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s6、s5、s1,则顺序栈的容量至少应为多少?
A、2 B、3 C、4 D、5
3、下列关于文件索引结构的叙述中,哪一个是错误的?
A、采用索引结构,逻辑上连续的文件存放在连续的物理块中
B、系统为每个文件建立一张索引表
C、索引结构的优点是访问速度快,文件长度可以动态变化
D、索引结构的缺点是存储开销大
4、【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是()
A、【2、1、4、3、9、5、8、6、7】
B、【1、2、5、4、3、9、8、6、7】
C、【2、3、1、4、7、9、5、8、6】
D、【1、2、5、4、3、9、7、8、6】
5、某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小是()字节。
A、10 B、2^10 C、2^14 D、2^24
6、在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。两个钢珠相撞后,以相同速度反向运动。假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最长可能时间是()
A、30 B、26 C、38 D、33
7、std::vector::iterator重载了下面哪些运算符?
A、++ B、>>C、*(前置) D、==
8、下列运算符,在C++语言中不能重载的是()
A、* B、?: C、:: D、delete
9、在排序方法中,元素比较次数与元素的初始排列无关的是()
A、Shell 排序 B、归并排序 C、直接插入排序 D、选择排序
A、C肯定不选的,归并排序的在merge中是跟序列有关,如果有序,比较次数最少n/2,最糟是元素错落n-1。而选择排序比较次数与关键字的初始状态无关,总的比较次数N=(n-1)+(n-2)+...+1=n*(n-1)/2。所以 应该是选择排序!
10、给定如下代码: int x[4]={0}; int y[4]={1}; 数组x和y的值为()
A、{0,0,0,0},{1,1,1,1}
B、{0,0,0,0},{1,0,0,0}
C、{0,不确定},{1,不确定}
D、与编译器相关
10、给出以下定义,下列哪些操作是合法的?
const char *p1 = “hello”;
char* const p2 = “world”;
A、p1++ B、p1[2]='w'; C、p2[2]='l'; D、p2++
11、假设在n进制下,下面的等式成立,n值是() 567*456=150216
A、9 B、10 C、12 D、18
假设是X进制,则567=7+6*X+5*X^2,456=6+5*X+4*X^2,所以564*456=(7+6*X+5*X^2)*(6+5*X+4*X^2)而150216=6+X+2*X^2+5*x^4+X^5,由于567*456=150216,则6+X+2*X^2+5*x^4+X^5=(7+6*X+5*X^2)*(6+5*X+4*X^2),最后解出来X=18
12、关于struct和class,下列说法正确的是()
A、struct的成员默认是public,class的成员默认是private
B、struct不能继承,class可以继承
C、struct可以有无参构造函数
D、struct的成员变量只能是public
若不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;都可使用public/private/protected修饰符,都可以有无参构造函数
13、定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
A、int (*(*F)(int, int))(int)
B、int (*F)(int, int)
C、int (*(*F)(int, int))
D、*(*F)(int, int)(int)
14、声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
A、(int *p[10])(int*);
B、int [10]*p(int *);
C、int (*(*p)[10])(int *);
D、int ((int *)[10])*p;
E、以上选项都不正确
15、一个栈的输入序列为123.....n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()
A、不确定
B、n-i+1
C、i
D、n-i
IBM Java笔试题 宝洁笔试面试真题 华为Java笔试题目
篇4:阿里巴巴笔试题
一、论述题
(1)至今为止你认为对你影响最大的一本书是什么?
(2)你认为应聘的该职位能为你带来什么?
(3)你最常登录的三个会员制网站是什么?有什么特色?
二、简答题
(1)请预测淘宝一天交易额有多少,并说明理由。
(2)预测脸谱网全球手机用户
(3)阿里巴巴的搜索引擎和谷歌的搜索引擎的异同点。
三 、综合体
给出了淘宝网上10件商品进行排序,并说明理由
延伸:
阿里巴巴数据分析师面试题目
前段时间看到阿里的校招,我果断投了一份简历,今天就去在线面试一下,特地把题目复制出来供大伙参考参考哈
有点坑爹啊,虽然只有4道题,但是每题都很坑爹,考试时间是120分钟,足够吧?
Q1.商业设计的一个特点是它的目的性非常强 , 精准直接快速的传达信息是它要实现的目的 , 现在如果需要设计一个配有宣传语的图片广告 , 下面是一个最简单的工作流程 , 但顺序已经被打乱了 , 请重新理顺工作步骤 , 如果对步骤有所补充 , 欢迎添加。
图形设计明确宣传目的策划宣传语绘制草图与需求方沟通
这里我学习了软件设计流程这门课程加上百度了一下,算是写出来了。结果呢,就不知道了
Q2.你知道无印良品这个日本的品牌么 , 说说它在的产品在视觉上是如何做到与众不同的 , 如果不知道 , 找一个你熟悉的出众的牌子来说 , 阐述其特点以及你对这个品牌的理解或是看法.
说实话什么 无印良品,听都么听过,百度发现这是个没有logo的品牌。我不熟悉只好作罢,改写qq了,这个还是蛮好写的,毕竟更贴近生活啊!其实我想写什么阿里巴巴等他们公司的品牌,发现我对他们不熟悉,怕写错了就悲剧⊙n⊙b汗
Q3.我们现在需要做一个宣传一款只有简单通话功能的非智能手机的平面广告 , 但是又不想使用手机的图片做为主体 , 能帮我们想出一个方案么 , 用文字简单描述它 ,另外 , 用几个字概括你思考的出发点吧 , 还有其他的 点 么,有的话多说几个加分.
这个设计广告,稍微想了一下,给它弄了张我设计的图片,哈哈,不知道可以不?
Q4.请吐槽一个网络产品的缺点 , 描述让你觉得最不满意的地方 , 视觉设计的'缺陷也好、功能缺陷也好,说明理由并给出改进建议 .
[ 提示:建议候选产品有新浪微博、淘宝首页、微信、旺旺QQ 脸谱网等,或者你自己选定的一个产品 ]
哇,吐槽什么的我挺喜欢的,但是直觉告诉我最好写有关于阿里产品的,而且不能写的太损!!!所以为就挑了新浪微博来吐槽,吐槽的地方就是网页版微博的登陆问题,相信大家都碰到过,总是登陆超时登陆失败等等,让人无比头疼,改进的方法无非就是网页版的一些优化,什么兼容性啊乱扯了下,但是也没瞎说阿里巴巴数据分析师面试题目阿里巴巴数据分析师面试题目。
篇5:阿里巴巴笔试题
一、论述题
(1)至今为止你认为对你影响最大的一本书是什么?
(2)你认为应聘的该职位能为你带来什么?
(3)你最常登录的三个会员制网站是什么?有什么特色?
二、简答题
(1)请预测淘宝一天交易额有多少,并说明理由,
最新阿里巴巴笔试题
,
(2)预测FACEBOOK全球手机用户
(3)阿里巴巴的搜索引擎和谷歌的搜索引擎的异同点。
三 、综合体
给出了淘宝网上10件商品进行排序,并说明理由
篇6:阿里巴巴笔试题
阿里巴巴笔试题
共两题:
1. 关于图片文件存储的一个开放性的题目,没什么好说的,
2. 有一颗树,每一个树节点存储着一个数字,现在想要找到两个相同的.节点(这两个节点存储的数字及其所有子树均相等)。
以下是我答题时候的思路,欢迎大家讨论。
思路1:
1) 首先通过一个遍历(如前序遍历)得到一个数字序列,并对树中的叶子节点在这个序列中做标记(现在问题退化为在一个数字串中找出重复的字符串,且这些字符串应该是以标记的叶子节点结尾的)
2) 采用后缀树可以很方便的求得相同的数字串序列
3) 验证2)中得到的结果(应该是一个小结果集) 是否满足要求,验证的时间复杂度应该是比较小的
思路2:
1) 对树中的每一个节点设定一个权值,这个权值为其所有子节点的权值及其自身数字值之间的乘积(可能需要bignumber,或者考虑将这些数字进行移位异或)
2) 采用后序遍历,计算每一个节点的权值,并顺带记录其树深度,
统计权值和深度均相同的节点
3) 验证2)中得到的结果是否满足要求,验证的时间复杂度应该是比较小的
篇7:阿里巴巴DBA笔试题
,
在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBO。RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。
CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的'初始响应时间,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。
4:如何定位重要(消耗资源多)的SQL
select sql_text from v$sql where disk_reads >1000 or (executions >0 and buffer_gets/executions >30000);
复制代码
5:如何跟踪某个session的SQL
exec dbms_system.set_sql_trace_in_session(sid,serial#,sql_trace);
select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);
exec dbms_system.set_ev(sid,&serial#,&event_10046,&level_12,'');
复制代码
6:SQL调整最关注的是什么
查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))
篇8:阿里巴巴实习生笔试题
阿里巴巴实习生笔试题
二进制来编码字符串”abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要______位的二进制字符串,
有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)
数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是______。
• 线性链表
• 二叉链表
• 栈与队列
• 循环队列
下列关于无向连通图特性的叙述中,正确的是______。
Ⅰ.所有顶点的度之和为偶数
Ⅱ.边数大于顶点个数
Ⅲ.至少有一个顶点的度为1
• 只有Ⅰ
• 只有Ⅱ
• Ⅰ和Ⅱ
• Ⅰ和Ⅲ
某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的 缓存时间)分别是90ns、80ns、70ns和60ns,则该计算机的CPU时钟周期至少是____。
• 90ns
• 80ns
• 70ns
• 60ns
主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是 。
• 500
• 700
• 800
• 1000
IP数据报头采用______字节序,在此字节序下从低地址到高地址0×1234的表示形式为______。
• big_endian, 0×12 0×34 0 0
• little_endian,0×34 0×12 0 0
• big_endian, 0 0 0×12 0×34
• little_endian,0 0 0×34 0×12
假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过S和Q,即每一个元素必须先进栈,之后再出栈进入队列。若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的'容量至少应该为______。
• 3
• 4
• 5
• 6
硬件设备的寿命通常符合指数分布,即无记忆性,也就是如果一个设备当前正常工作,那么剩余预期寿命和已经工作的时间无关。假定某种设备1000台,在一年之内坏掉500台(无维修),那么在有维修(设备坏掉立刻换新的)的情况下,一年之内需要换______台该设备。
• 400台
• 500台
• 753台
• 1000台
下述描述中,正确的是____。
• char const * pointer表示pointer指向的内存区域的内容不能修改
• const char *pointer表示pointer不能指向别的内存地址
• char * const pointer 表示pointer指向的内存区域的内容不能修改
• const char * const pointer在C++语言中不合法
在linux中,列举当前目录下文件的是哪个命令______,
• ps
• cd
• mv
• ls
某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是______。
• 45231
• 42351
• 12345
• 54321
需要频繁的插入删除操作使用什么结构比较合适______。
• 数组
• 队列
• 链表
• 栈
你有一个3X3X3的立方体。你现在在正面左上的顶点,需要移动到对角线的背面右下的顶点中。每次移动不限距离,但只能从前至后、从左至右、从上至下运动,即不允许斜向或后退。有______种方法。
• 9
• 90
• 180
• 1680
一个容器类数据结构,读写平均,使用锁机制保证线程安全。如果要综合提高该数据结构的访问性能,最好的办法是______。
• 只对写操作加锁,不对读操作加锁
• 读操作不加锁,采用copyOnWrite的方式实现写操作
• 分区段加锁
• 无法做到
下面序列中,哪一种序列 不可能是一个二叉搜索树的后序遍历结果?
• 1,2,3,4,5
• 1,2,5,4,3
• 5,4,3,2,1
• 3,5,1,4,2
小数值1.5625的二进制表示是____。
• 101.1001
• 0.001
• 101.111
• 1.1001
有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该采用的存储方法是______。(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)
• A按行存,B按行存
• A按行存,B按列存
• A按列存,B按行存
• A按列存,B按列存
有n条随机的二进制流(n非常大),有n个接收器收集数据,遇到1就停止,并把之前收到的二进制传存储起来,最后0的个数大约有_______个。
• n
• n/2
• 2n
• 3n/2
下列叙述中正确的是____。
• 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
篇9:阿里巴巴程序笔试题
阿里巴巴笔试1,当硬盘中已经安装有win ,通过dos下运行pq magic,提示pq magic不能在基于nt的系统上运行。现要求在dos下运行pq magic,不能删除win2000,请给出解决办法。
阿里巴巴笔试2,解释硬盘的lba模式和chs模式的区别。
阿里巴巴笔试3,出现网络故障,使先软后硬还是先硬后软,请给出你自己的看法。
阿里巴巴笔试4,如果一个web服务器要提供2000人同时在线,请给出服务器硬件最低要求和目前市场估价。
阿里巴巴笔试5,是否有组建200台以上计算机的局域网络的经验?有的话,请给出实施纲要。
阿里巴巴笔试6,清除病毒的方法:是依靠杀毒软件还是手工?如果有手工清除病毒的经验,请给出清除的大致步骤。
阿里巴巴笔试7,你觉得你离一名合格的网管,还有多大的差距?
阿里巴巴笔试8,我们为什么要聘用你?
篇10:阿里巴巴程序笔试题
收到了阿里巴巴的笔试通知,今天下午坐了一个半小时的车,才到了阿里巴巴笔试的地方。人还真是不少,不过有点真让人郁闷,看了下笔试的名单,求职C++程序员的只有17人,而JAVA程序员竟然有100多人,真是后悔当时为什么要学JAVA(貌似记得当时觉得C++太难了)。反正也不知道他们水平怎么样,就硬着头皮考考。考试时间是1小时,后来因为题量有点大,就延长了20分钟。那题目还真的不是很难,可惜我不会做,只能说那些题目很基础,看来平时还是要注意下基础的知识。
趁现在对题目还有印象,先贴上来给大家一个参考:
阿里巴巴笔试1~3 逻辑题(就是那些有点考验你智商的或者考验你逻辑能力的题目)
JAVA基础题
阿里巴巴笔试4、抽象类与接口有什么不同?
阿里巴巴笔试5、关于线程的题目,记不清了。
算法题
阿里巴巴笔试6、写出2乘以17效率最高的算法?
阿里巴巴笔试7、编程题(题目太长,略)。好像还是关于JAVA的知识点
阿里巴巴笔试8、简述final、fianlly和finalize的区别?
阿里巴巴笔试9、简述ArrayLists和LinkedList的区别?
阿里巴巴笔试10、在try的括号里面有return一个值,那是否还执行finally里的代码。是在return前执行还是return后执行。
篇11:阿里巴巴程序笔试题
设计模式题
简述templates和××××(忘了)的区别?
数据库题
阿里巴巴笔试12、创建学生表S,课程表C,学生选课表SC。写出建表的SQL语句。
阿里巴巴笔试13、写出返回选了全部课程的学生的SQL语句。
阿里巴巴笔试14、写出返回至少选了5门课的学生的SQL语句。
javascript题
阿里巴巴笔试15、实现点击页面上的一个链接,然后隐藏这个链接的javascript代码。
测试知识题
阿里巴巴笔试16、简述什么是测试驱动开发(TDD)。
补充题
阿里巴巴笔试17、说说你希望从阿里巴巴得到什么。用3个名词概括。
题目大致就是这样,我是不太会做,希望给后来者一个参考,希望大家能够注重基础。
篇12:阿里巴巴招聘笔试题
1、iBatis相比JDBC优势的优势有哪些?
答:简单易上手、开发速度快、面向对象,数据库可移植。
(此处应该将优缺点一起分析,才是满意得到回答)
延伸学习:
MyBatis和iBatis的区别:
ibatis本是apache的一个开源项目,2010年这个项目由apache software foundation 迁移到了google code,并且改名为mybatis
(1)Mybatis实现了接口绑定,使用更加方便:
在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,而Mybatis实现了DAO接口与xml映射文件的绑定,
(2)对象关系映射的改进,效率更高
iBatis:
优点 : 代码量减少、简单易上手、SQL语句和代码分离(便于修改)、数据库可移植
缺点:SQL语句需要自己写、参数只能有一个
Hibernate:
优点:对象关系数据库映射、完全面向对象、提供缓存机制、HQL编程
缺点:不能灵活使用原生SQL、无法对SQL优化、全表映射效率低下、N+1的问题
JDBC、iBatis、Hibernate明显对比:
JDBC更为灵活,更加有效率,系统运行速度快。但是代码繁琐复杂,有的时候用了存储过程就不方便数据库移植了。
hibernate,iBatis 关系数据库框架,开发速度快,更加面向对象,可以移植更换数据库,但影响系统性能。
JDBC:手动
手动写sql,不能直接传入一个对象、不能直接返回一个对象。
iBatis的特点:半自动化
手动写sql,能直接传入一个对象、能直接返回一个对象。
Hibernate:全自动
不写sql,自动封装,能直接传入一个对象、能直接返回一个对象。
2、PrepareStatement相比statement,有哪些优点?
答:
(1)直接使用Statement,驱动程序一般不会对sql语句作处理而直接交给数据库;
使用PreparedStament,形成预编译的过程,并且会对语句作字符集的转换(至少在sql server)中如此。
如此,有两个好处:对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch;另外,可以比较好地解决系统的本地化问题。
(2)PreparedStatement还能有效的防止危险字符的注入,也就是sql注入的问题。(但是必须使用“对?赋值的方法”才管用)
3、TCP/IP对应于OSI七层模型的哪些层?
答:
OSI七层模型分别是:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。
TCP/IP协议不是TCP和IP协议的合称,而是指因特网整个TCP/IP协议族。从协议分层模型方面来看,TCP/IP由四个层次组成:网络接口层、网络层、传输层和应用层。
延伸学习:
应用层:由用户自己规定,只要形成的消息能与表示层接口。这包括各机互访协议,分布式数据库协议等。
表示层:是在满足用户需求的基础上,尽可能的节省传输费用而设置的。如文本压缩、常用词转换、加密、变更文件格式等。这就是说,只要能表示用户所需的信息,形式上可以改变,并尽可能形成标准格式,以利于传送。
对话层:是为用户之间对话的进行而设置的 ,这包括建立和拆除对话,确定对话对象。如不是授权的对话者,就不予送出信息,以达到可靠的要求,这一层也可与传输层合并。
传输层:就是使主机之间或信源和信宿之间能互通信息。这一层因此也可以被称为源--宿层或端--端层,这一般是主机操作系统的一部分。它负责把上一层(对话层)来的信息传输给网络层,后者已能保证把各信息包送达目的地,本层把信息处理得适于网内传送,包括把信息分给各种网络去传递,也可规定服务方式,如点对点通信或点对多的广播式通信。
网络层:是规定通信网内的路由选择等方式,以使建立用户间的信息报传输设施。这包括地址的标明,把消息分成信息包或把信息包组成消息,一些调整阻塞所需的规定,路由选择等。这些功能可由计算机的输入输出设备来完成,也可专用一些具有处理功能的接口板来完成。
数据链路层:是规定建立链路的过程。这在信息包传送过程中就需有一定的帧结构,其中包括收发数据的相互应答。
物理层:是规定一些机电性能。例如代表“0”和“1”的电压值、匹配阻抗、每个比特的时长以及插脚的多少和功能等。也包括工作方式如双工、单工或半双工,建立通信的启动和终止等,这一层协议满足后,从上一层看去,已提供了一个合适的数字新到,也就是数据已可通过它传输出去。
4、为什么3次握手,4次挥手?
3次握手建立连接:
第一次握手:建立连接时,客户端发送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连接成功)状态,完成三次握手。
4次挥手断开连接:
对于一个已经建立的连接,TCP使用改进的4次挥手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下:
第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。
第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。
第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。
第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。
5、进程和线程区别是什么?
答:
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。
进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。
线程与进程的区别归纳:
地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信――需要进程同步和互斥手段的辅助,以保证数据的一致性。
调度和切换:线程上下文切换比进程上下文切换要快得多。
★笔试题
文档为doc格式